python 操作 ssh

mxw8 9年前發布 | 3K 次閱讀 Python

#coding:utf-8
"""
    ssh操作例子 實現了服務器日志下載
    2012-08-24
    yywolf
"""
import paramiko
import time

hostname="????" port=22 username="app" password="????" if name=="main":

paramiko.util.log.log_to_file('paramiko.log')

s = paramiko.SSHClient()
s.load_system_host_keys()
s.set_missing_host_key_policy(paramiko.AutoAddPolicy())
s.connect(hostname,port,username,password,timeout=4)
stdin,stdout,stderr = s.exec_command("sh ~/log/check")
print stdout.read()
s.close()


#sftp
t = paramiko.Transport((hostname,port))
t.connect(username=username,password=password)
sftp = paramiko.SFTPClient.from_transport(t)
files = sftp.listdir("/home/app/log/")
for f in files:
    print f

filetime = time.strftime('%Y-%m-%d',time.localtime(time.time()))
#需要下載的文件 和下載后的文件名
sftp.get("/home/app/log/server.txt","C:\\Users\\Administrator\\Desktop\\server.txt")    
sftp.get("/home/app/log/"+filetime+".log.zip","C:\Users\Administrator\Desktop\\"+filetime+".log.zip")

#RASkey
pkey_file = "E:\\yy\\tools\\key\\rsa.txt"
key = paramiko.RSAKey.from_private_key_file(pkey_file)
s = paramiko.SSHClient()
s.load_system_host_keys()
s.set_missing_host_key_policy(paramiko.AutoAddPolicy())
s.connect(hostname,port,username,pkey=key)
stdin, stdout, stderr = s.exec_command("ls -l /home/app/log")
print stdout.read()
s.close()

raw_input()</pre> 


 本文由用戶 mxw8 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!