我想知道远程服务器的磁盘使用情况,我想使用ssh 这是我迄今所做的这样做的: -子输出和错误SSH
def disk_usage(server):
msg=""
ps = subprocess.Popen(["ssh", "-o", "BatchMode=yes", "-l", "mygroup", server, "df -k /some/directory"], stdout=subprocess.PIPE)
out, err = ps.communicate()
if err != None:
msg += "\n"+err
else:
msg = out
return msg
Final_msg = ""
server_list= ['server A','server B','server C']
for server in server_list:
Final_msg+="For Server :"+server+"\n"+disk_usage(server)
print Final_msg
该脚本工作正常,但问题是,当对于任何服务器的SSH未配置它只是显示一个空白的输出为该服务器
输出: -
For Server A :
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/cfd/ace 8064048 3581524 4072892 47% /app
For Server B :
For server C :
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/wsa/ace 306423 244524 23243434 90% /app
这里SSH服务器B不配置d所以我得到一个空白输出,因为批处理模式为(BatchMode=yes
)所有的SSH连接,但我想让用户知道为什么没有输出。
当我运行在外壳上的,其中SSH是未配置,我得到下面的错误的服务器相同的命令:
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
我希望同样的错误在我的脚本输出特定的服务器里ssh没有配置。
有什么想法?