本文实例讲述了python操作ssh实现服务器日志下载的方法。分享给大家供大家参考。具体实现方法如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
#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 ()
|
希望本文所述对大家的Python程序设计有所帮助。