linux系統下運用python指令碼遠端登入裝置
阿新 • • 發佈:2019-01-02
python遠端登入
import subprocess import os import time import logging import re import paramiko import string import sys import datetime import threading class RemoteMonitor: ip = '' port = 22 username = '' password = '' def __init__(self,ip,username,password): self.ip = ip self.port = 22 self.username = username self.password = password def sftp_upload(self,local, remote): sf = paramiko.Transport((self.ip, self.port)) sf.connect(username=self.username, password=self.password) sftp = paramiko.SFTPClient.from_transport(sf) try: if os.path.isdir(local): for f in os.listdir(local): sftp.put(os.path.join(local + f), os.path.join(remote + f)) else: sftp.put(local, remote) except Exception, e: print('upload exception:', e) sf.close() def sftp_get(self,remote,local): sf = paramiko.Transport((self.ip, self.port)) sf.connect(username=self.username, password=self.password) sftp = paramiko.SFTPClient.from_transport(sf) sftp.get(remote,local) sf.close() def SSHConnection(self): ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect(self.ip,22,self.username,self.password) self.ssh = ssh def __ExecCommand(self,cmd): stdin, stdout, stderr = self.ssh.exec_command(cmd) result = stdout.readlines() # print (stderr,result,len(result)) return result def ExecCommand(self,cmd): stdin, stdout, stderr = self.ssh.exec_command(cmd) result = stdout.readlines() # print (stderr,result,len(result)) return result if __name__ == "__main__": hostname = sys.argv[1] password=sys.argv[2] monitor = RemoteMonitor(hostname,"nvidia",password) monitor.SSHConnection()