方式一:expect
模板
cat /tmp/ip.txt
10.2.201.1 user userpassword rootpassword
10.2.201.2 user userpassword rootpassword
脚本
yum install expect -y
cat /tmp/login.sh
cat /tmp/ip.txt | while read ip user userpass rootpass
do
expect -c "
set timeout 10;
spawn ssh $user@$ip;
expect {
\"yes/no\" { send \"yes\r\";exp_continue }
\"password:\" { send \"$userpass\r\"; }
};
expect \"itsm\" { send \"su - root\r\" };
expect \"密码:\" { send \"$rootpass\r\"; };
expect \"root\" { send \"uname -r\r\" };
# expect \"root\" { send \"exit \r\" };
# expect \"itsm\" { send \"exit \r\" };
expect eof;
"
done
方式二:pxssh
模板
cat /tmp/ip.txt
192.168.1.10 userpassword rootpassword
192.168.1.11 userpassword rootpassword
192.168.1.12 userpassword rootpassword
脚本
import sys
sys.path.append("/usr/local/python3/lib/python3.7/site-packages/")
from pexpect import pxssh
file = open("/tmp/ip.txt","r")
while True:
line = file.readline()
if line:
var = line.split()
s = pxssh.pxssh()
s.login(var[0], 'itsm',var[1])
s.sendline('su - root')
s.expect('Password:')
s.sendline(var[2])
s.sendline('uname -r')
s.prompt()
print(s.before)
s.sendline('exit')
else:
break
file.close()