python中想要實現sftp的話可以使用paramiko模塊
官網http://www.paramiko.org/ 其中文檔有很詳細的說明
paramiko很強大,通過python實現SSH協議。可以做到ssh遠程登錄,sftp上傳下載文件。
sftp的實現
1.通過密碼口令認證
#!/usr/bin/python # -*- coding:utf-8 -*- import paramiko remotedir = "/app/ftpuser/" hostname = "192.168.1.100" port = 22 user = "ftpuser" password = "123456" if __name__=="__main__": t = paramiko.Transport((hostname,port)) t.connect(username=user,password=password) sftp = paramiko.SFTPClient.from_transport(t) print sftp.listdir(remotedir) t.close
2.通過密鑰認證
#!/usr/bin/python # -*- coding:utf-8 -*- import paramiko remotedir = "/app/ftpuser/" hostname = "192.168.1.100" port = 22 user = "ftpuser" pkey_file = "/home/aa/.ssh/id_rsa" if __name__=="__main__": key = paramiko.RSAKey.from_private_key_file(pkey_file) t = paramiko.Transport((hostname,port)) t.connect(username=user,pkey=key) sftp = paramiko.SFTPClient.from_transport(t) print sftp.listdir(remotedir) t.close
看,用python實現sftp客戶端訪問的實現很簡單。相比較shell腳本而言,在一些業務邏輯處理方面用python實現更加方便