【发布时间】:2016-01-09 20:48:40
【问题描述】:
我想编写一个 python 脚本到 ssh 远程机器并运行命令 netstat -antp | grep httpd 在 Cron 作业中运行这个脚本。
在这里,我正在寻找httpd 服务并检查端口号(例如 80)。只有一台远程机器可以有 80 其余应该有不同的端口号,如 8888 或 8080。
在运行 python 脚本时我想作为参数的远程机器列表。
下面是我的代码sn-p:
import subprocess
import sys
machine_list= sys.argv[1]
for machine in machine_list:
command = "sudo netstat -antp | grep httpd"
ssh = subprocess.Popen(["ssh", "%s" % machine, command],
shell=False,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
result = ssh.stdout.readlines()
问题是每次我运行它都会询问我远程机器的密码。如果在 cron 中运行,我无法手动输入密码。 可以做什么?
【问题讨论】:
标签: python ssh passwords subprocess