Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python ssh自动化脚本_Python_Linux_Ssh - Fatal编程技术网

python ssh自动化脚本

python ssh自动化脚本,python,linux,ssh,Python,Linux,Ssh,我想构建一个自动化脚本,用于在运行linux的远程服务器上执行大量命令,并检查每个命令的“退出代码”,并将其与一条语句进行比较 到目前为止,作为一名绝对的初学者,我有以下几点: import paramiko client = paramiko.SSHClient() client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) client.connect('192.168.124.154', username='root', pa

我想构建一个自动化脚本,用于在运行linux的远程服务器上执行大量命令,并检查每个命令的“退出代码”,并将其与一条语句进行比较

到目前为止,作为一名绝对的初学者,我有以下几点:

import paramiko

client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect('192.168.124.154', username='root', password='password')

stdin, stdout, stderr = client.exec_command('ls -l')

for line in stdout:
    print line.strip('\n')

client.close()
你能帮我推荐一下吗?

child=pexpect.spawn('ssh admin@'+ip)
child = pexpect.spawn('ssh admin@' +ip)
child.expect ('Login: ')
child.sendline (username)
child.expect ('Password: ')
child.sendline (password)
child.expect('#') # or expect `$`.
child.sendline('<your command>')
child.expect('#')
print child.before
child.expect('登录:') child.sendline(用户名) child.expect('密码:') child.sendline(密码) child.expect(“#”)或expect`$`。 child.sendline(“”) child.expect(“#”) 在之前打印子文件
参考:

使用
pexpect
更简单。

您可以使用该软件包,它正是为此而设计的

所有你需要的是安装附庸和做

from vassal.terminal import Terminal
shell = Terminal(["ssh username@host", "cd scripts", "python foo1.py", "python foo2.py"])
shell.run()

它将在python中启动一个交互式窗口,您可以从中解析退出代码。此外,它将保存您的身份验证凭据,无需反复键入

谢谢@vks!我想用这个脚本实现的是在远程服务器上执行一个命令(这对我来说很清楚),然后验证命令的退出代码,如果成功,然后执行下一步script@vks,这是危险的,正如目前所写的那样——使用
管道更安全。quote(ip)
ip
;否则,如果有人在
$(rm-rf~)
@CharlesDuffy-thanx的IP地址中恶意馈送信息,你就有坏消息了…不知道可能使用Ansible?它使用python和yaml。