用python SSH模塊登錄,并在遠(yuǎn)程機(jī)執(zhí)行shell命令
(在CentOS 7 環(huán)境試驗成功, Redhat 系列應(yīng)該是兼容的。)
先安裝必須的模塊
# yum install python-dev# yum install python-devel# pip install pycrypto# pip install paramiko# pip install ssh
這些都成功后, 編寫一個Python腳本
# vim remote_run.pyimport ssh# 新建一個ssh客戶端對象myclient = ssh.SSHClient()# 設(shè)置成默認(rèn)自動接受密鑰myclient.set_missing_host_key_policy(ssh.AutoAddPolicy())# 連接遠(yuǎn)程主機(jī)myclient.connect("xxx.coder4.com", port=22, username="xxxx", password="xxxx")# 在遠(yuǎn)程機(jī)執(zhí)行shell命令stdin, stdout, stderr = client.exec_command("ls -l")# 讀返回結(jié)果print stdout.read()# 在遠(yuǎn)程機(jī)執(zhí)行python腳本命令stdin, stdout, stderr = client.exec_command("python /home/test.py")
建立一個SSHClient對象以后,除了執(zhí)行命令,還可以開啟一個sftp的session,用于傳輸文件、創(chuàng)建文件夾等等。
# 新建 sftp sessionsftp = client.open_sftp() # 創(chuàng)建目錄sftp.mkdir('abc') # 從遠(yuǎn)程主機(jī)下載文件,如果失敗, 這個可能會拋出異常。sftp.get('test.sh', '/home/testl.sh') # 上傳文件到遠(yuǎn)程主機(jī),也可能會拋出異常sftp.put('/home/test.sh', 'test.sh')
總結(jié)
以上就是本文關(guān)于python SSH模塊登錄,遠(yuǎn)程機(jī)執(zhí)行shell命令實例解析的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!
新聞熱點(diǎn)
疑難解答