python操作ssh实现服务器日志下载的方法

1330次阅读  |  发布于5年以前

本文实例讲述了python操作ssh实现服务器日志下载的方法。分享给大家供大家参考。具体实现方法如下:


    #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程序设计有所帮助。

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8