을하는 동안 -서브 프로세스의 표준 출력과 표준 에러 나 원격 서버의 디스크 사용량을 알고 싶어하고 내가 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
스크립트는 잘 작동,
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
여기에 서버 B에 대한 SSH를하지 구성 -이 :하지만 문제는 모든 서버에 대한 SSH를 그냥
출력 해당 서버의 빈 출력을 표시 구성되지 않은 경우입니다 d 그래서 모든 빈 ssh 연결에 대해 batchmode가 (BatchMode=yes
)에 있기 때문에 빈 출력이 나옵니다. 그러나 사용자에게 출력이 없었던 이유를 알리고 싶습니다.
내가 ssh를 내가 아래 오류 얻을 구성되지 단절의 쉘에서 동일한 명령을 실행하면
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
내가 특정 서버 곳의 스크립트의 내 출력에 동일한 오류를 원한다을 ssh가 구성되지 않았습니다.
어떤 아이디어가 있습니까?