Python的pxssh实现ssh登录之批量“打杂”
一、简单概要 这是我在生产环境用的一个脚本,根据实际运维情况编写,说白了就是人比较懒,不想打杂。哈哈!不明白的同学可以@我哦!,感谢! 二、代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 #!/usr/bin/envpython from pexpect import pxssh import os try : for i in range ( 64 , 65 ): #在这个位置定义起始和结束的数字用于IP的主机号 s = pxssh.pxssh() ipaddr = '192.168.1.%s' % i #生成一个完整的IP地址 os.environ[ 'ip' ] = str (ipaddr) #变量呼唤,python变量可以在shell里拿 print 'sshconnectionhost:%s' % ipaddr s.login(ipaddr, 'root' , '123456' ) #登录主机(ip,用户,密码) print 'loginok!' #提示登录ok而已,仅此而已 print 'Create(/etc/ceph/)directory...' #登录进去就得干活了,比如创建目录 s.sendline( 'mkdir-p/etc/ceph' ) print 'createok!' print 'Issuedbytheconfigurationfile...' os.system( 'sshpass-p123456scp/etc/ceph/*root@$ip:/etc/ceph' ) #这个文件是下发文件,这里跟pxssh没关系 print 'fileissuedok!' print 'Issuedbythescript...' s.sendline( 'mkdir-p/openstack' ) #这里也是在远程主机执行命令,其他的都类似 os.system( 'sshpass-p123456scp/root/osd.shroot@$ip:/openstack' ) os.system( 'sshpass-p123456scp/root/com.txtroot@$ip:/openstack' ) print 'scriptissuedok!' print 'Runthescript...' s.sendline( 'sh/openstack/osd.sh' ) print 'scriptrunok!' s.prompt() print 'host:%scompletes,exitthessh...' % ipaddr s.logout() print 'exitok!' except pxssh.ExceptionPxssh,e: print "pxsshfailedonlogin" print str (e) 本文转自 TtrToby 51CTO博客,原文链接:http://blog.51cto.com/freshair/1866032