利用上班休息时间写了一个小程序,利用 paramiko 实现单次的连接服务器--->执行命令(待完善的功能,应该是一次连接批量执行 command,并且不支持实时命令返回结果, 后续进行完善,在此做此记录)
1 #!/usr/bin/env python 2 # _*_coding:utf-8_*_ 3 # author: 'Edward.Liu' 4 # dateTime: '15/12/4' 5 # motto: 'Good memory as bad written' 6 7 import paramiko 8 import getpass 9 10 11 def ssh_clients(hostname=None, port=22, username=None, password=None, command=None, nbytes=4096): 12 client = paramiko.Transport((hostname, port)) 13 client.connect(username=username, password=password) 14 15 stdout_data = [] 16 stderr_data = [] 17 session = client.open_channel(kind='session') 18 session.exec_command(command) 19 while True: 20 if session.recv_ready(): 21 stdout_data.append(session.recv(nbytes)) 22 if session.recv_stderr_ready(): 23 stderr_data.append(session.recv_stderr(nbytes)) 24 if session.exit_status_ready(): 25 break 26 27 print '