Python的pxssh实现ssh登录之批量“打杂”

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python的pxssh实现ssh登录之批量“打杂”相关的知识,希望对你有一定的参考价值。

一、简单概要

    这是我在生产环境用的一个脚本,根据实际运维情况编写,说白了就是人比较懒,不想打杂。哈哈!不明白的同学可以@我哦!,感谢!


二、代码

#!/usr/bin/env python
from pexpect import pxssh
import os

try:
    s = pxssh.pxssh()
    for i in range(64,65):    #在这个位置定义起始和结束的数字用于IP的主机号
    ipaddr = ‘192.168.1.%s‘ % i    #生成一个完整的IP地址
    os.environ[‘ip‘]=str(ipaddr)    #变量呼唤,python变量可以在shell里拿
    print ‘ssh connection host:%s‘ % ipaddr
        s.login(ipaddr,‘root‘,‘123456‘)    #登录主机(ip,用户,密码)
    print ‘login ok!‘    #提示登录ok而已,仅此而已
    print ‘Create (/etc/ceph/) directory...‘    #登录进去就得干活了,比如创建目录
    s.sendline(‘mkdir -p /etc/ceph‘)
    print ‘create ok!‘
    print ‘Issued by the configuration file...‘
    os.system(‘sshpass -p 123456 scp /etc/ceph/* [email protected]$ip:/etc/ceph‘) #这个文件是下发文件,这里跟pxssh没关系
    print ‘file issued ok!‘
    print ‘Issued by the script...‘
    s.sendline(‘mkdir -p /openstack‘) #这里也是在远程主机执行命令,其他的都类似
    os.system(‘sshpass -p 123456 scp /root/osd.sh [email protected]$ip:/openstack‘)
    os.system(‘sshpass -p 123456 scp /root/com.txt [email protected]$ip:/openstack‘)
    print ‘script issued ok!‘
    print ‘Run the script...‘
        s.sendline(‘sh /openstack/osd.sh‘)
    print ‘script run ok!‘
    s.prompt()
    print ‘host:%s completes, exit the ssh...‘ % ipaddr
    s.logout()
    print ‘exit ok!‘
except pxssh.ExceptionPxssh, e:
    print "pxssh failed on login"
    print str(e)


本文出自 “IT屌丝聚集地Q群223843163” 博客,请务必保留此出处http://trtan.blog.51cto.com/8272891/1866032

以上是关于Python的pxssh实现ssh登录之批量“打杂”的主要内容,如果未能解决你的问题,请参考以下文章

Python SSH登陆--pexpect,pxssh

ssh批量登录并执行命令(python实现)

pxssh模块——python

如何使用python远程登录一个操作系统,并执行某条命令

python 之pxssh“大变身”让它成为可交互小程序

Pexpect pxssh 连接时指定cipher