python paramiko模組的使
- 2020 年 1 月 14 日
- 筆記
一般使用paramiko的功能就是通過ssh遠程執行命令,遠程(上傳、下載)傳輸文件等等
依賴包:/usr/local/python27/bin/pip install pycrypto
下載包 paramiko
#wget http://en.onlinedown.net/down/paramiko-1.7.7.1.zip #unzip paramiko-1.7.7.1.zip #cd paramiko-1.7.7.1 #python setup.py build #python setup.py install #!/usr/bin/env python #vim paramiko.py #!/usr/bin/env python import paramiko \導入模組 hostname='192.168.10.106' \定義需要鏈接的主機 port=22 \定義鏈接的埠 username='root' \定義鏈接的帳號 password='123456' \定義登陸密碼 if __name__=='__main__': \如果當前的模組名稱等於啟動的主模組運行,就執行如下 paramiko.util.log_to_file('paramiko.log') \指定執行的日誌文件,日誌名為paramiko.log s=paramiko.SSHClient() \創建客戶端鏈接服務端的對象s s.load_system_host_keys() \ 載入主機秘鑰 s.connect(hostname,port,username,password) \鏈接主機 stdin,stdout,stderr=s.exec_command('ifconfig') \執行命令 ifconfig stdin:標準輸入stdout:標準輸出 stderr:標準錯誤 print stdout.read() \列印標準輸出的結果 s.close() \關閉鏈接 從伺服器端上傳或下載文件 #!/usr/bin/env python import paramiko 導入模組 import os hostname='192.168.10.106' \定義需要鏈接的主機 port=22 \定義鏈接的埠 username='root' \定義鏈接的帳號 password='123456' \定義登陸密碼 dir_path='/home/soul/temp' \定義請求下載的文件路徑 if __name__=='__main__': t=paramiko.Transport((hostname,port)) \創建一個傳輸對象 t.connect(username=username,password=password) \建立鏈接伺服器 sftp=paramiko.SFTPClient.from_transport(t) \創建一個下載傳輸對象sftp files=sftp.listdir(dir_path) \建立一個files對象,用於存放listdir從指定的路徑dir_path中拿到的文件 for f in files: \定義f從存放的文件中輪詢 print 'Retrieving',f \列印拿到的文件名稱 sftp.get(os.path.join(dir_path,f),f) \從指定路徑下 下載文件 t.close() \關閉鏈接下載:get 上傳put
如從本地將/home/soul/temp/paramiko-1.7.7.1.zip文件上傳到伺服器的/home/路徑下
sftp.put('/home/soul/temp/paramiko-1.7.7.1.zip','/home/paramiko-1.7.7.1.zip')
t.close()