python 利用pexpect进行多机远程命令执行

本文介绍了一种利用Python的Pexpect模块简化SSH命令执行的方法。通过编写Python脚本实现远程执行多个命令,如检查远程服务器的运行时间和磁盘状态等。此方法提高了批量管理和监控远程服务器的效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<p><span style="font-size: small;"><span style="font-size: x-small;"><span style="">在安装之前,确认你的机器安装了</span><span lang="EN-US"><span style="font-family: Calibri;">python,</span></span><span style="">和</span><span lang="EN-US"><span style="font-family: Calibri;">easy_install.</span></span><span style="">通常</span><span lang="EN-US"><span style="font-family: Calibri;">python</span></span><span style="">是自动安装的,如果没有安装</span><span lang="EN-US"><span style="font-family: Calibri;">easy_install</span></span><span style="">,那么</span></span></span><span lang="EN-US"><span style="font-size: small; font-family: Calibri;"><span style="font-size: x-small;">wget -q </span></span><a href="http://peak.telecommunity.com/dist/ez_setup.py"><span style="font-size: small; font-family: Calibri;"><span style="font-size: x-small;">http://peak.telecommunity.com/dist/ez_setup.py</span></span></a><span style="font-size: small; font-family: Calibri;"><span style="font-size: x-small;"> </span></span></span><span style=""><span style="font-size: small;"><span style="font-size: x-small;">获取一下</span></span></span></p>
<p><span lang="EN-US"><span style="font-size: small; font-family: Calibri;"><span style="font-size: x-small;">python ez_setup.py</span></span></span></p>
<p><span style="font-size: small; font-family: Arial;">pexpect是python一个模块,可以通过:<strong>easy_install pexpect</strong> 来安装。<br><br>这里主要是用pexpect执行ssh,查看远程uptime和df -h看硬盘状况。</span></p>
<p></p>
<p><strong><span style="font-size: small; font-family: Arial;">#ssh_cmd.py<br>#coding:utf-8<br><br>import pexpect<br><br>def ssh_cmd(ip, user, passwd, cmd):<br> ssh = pexpect.spawn('ssh %s@%s "%s"' % (user, ip, cmd))<br> r = ''<br> try:<br> i = ssh.expect(['password: ', 'continue connecting (yes/no)?'])<br> if i == 0 :<br> ssh.sendline(passwd)<br> elif i == 1:<br> ssh.sendline('yes')<br> except pexpect.EOF:<br> ssh.close()<br> else:<br> r = ssh.read()<br> ssh.expect(pexpect.EOF)<br> ssh.close()<br> return r<br><br>hosts = '''<br>192.168.0.12:smallfish:1234:df -h,uptime<br>192.168.0.13:smallfish:1234:df -h,uptime<br>'''<br><br>for host in hosts.split("/n"):<br> if host:<br> ip, user, passwd, cmds = host.split(":")<br> for cmd in cmds.split(","):<br> print "-- %s run:%s --" % (ip, cmd)<br> print ssh_cmd(ip, user, passwd, cmd)</span></strong></p>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值