장면 분석;
2. 예 코드;
1.安装相关支持包 pip3 설치 pycrypto의 pip3.6 설치 paramiko 2.远程执行命令示例代码; #!는 / usr / 빈 / ENV의 python36 가져 오기 프로세스의 멀티 프로세싱에서 수입 paramiko의 수입에서 sys 사용자 이름 = '루트' 암호 = 'P의 @의 ssw0rd' 포트 = 22 시간 초과 = 60 데프 runcmd를 (IP, cmd를) : S = paramiko.SSHClient () s.set_missing_host_key_policy (paramiko.AutoAddPolicy ()) 시도 : s.connect를 (호스트 = IP, 포트 = 포트, 사용자 이름 = 사용자 이름, 암호 = 암호 제한 시간 = 시간 초과) 표준 입력, 표준 출력, 표준 에러 = s.exec_command (cmd를) 결과 = stdout.read () 인쇄 (IP, 결과) 을 제외 : 인쇄 ( "존재하지 않는") + IP DEF ipProcess는 () 시도 : 에 cmd = sys.argv에 [1] I에 대한 범위 (4,16) IP = '. 172.21.38 % S'% I의 p = 프로세스 (목표 = runcmd를, 인수의 = (IP를 cmd를)) p.start () IndexError 제외 : 인쇄 ( "입력 명령하시기 바랍니다") __name__ == '__main__'의 경우 : ipProcess ()
3. 구현의 결과;
python3.6의 bbc_init.py 가동 시간
4. 패키지 원격 명령 실행 및 파일 업로드;
#! / usr / bin / python 부분을 ENV의 # - * - 코딩 :. UTF-8 - * - 가져 오기 paramiko의 클래스 SSHConnection (객체) 는 def __init의 __ (자체, 호스트 = '192.168.12.68', 포트 = 22이며, 사용자 이름 = 'locojoy 'PWD ='123321QQ ') :! self.host = 호스트 self.port = 포트 self.username = 사용자 이름 self.pwd의 PWD = 자기 .__ K = 없음 DEF RUN (자동) : self.connect () 원격 서버 번호에 연결 self.upload에서 ( 'db.py', '/ tmp를 / 1.py') # 원격 서버의 파일 업로드 / tmp를 / 디렉토리에 로컬 db.py 및 1.py 이름 self.cmd ( 'DF를 ') # 안양 명령 실행 self.close () # 접속 가까이 ) (DEF 연결 셀프 : 전송 paramiko.Transport = ((self.host, self.port)) transport.connect (사용자 이름 = self.username, 암호 = self.pwd) 자기 .__ 전송 = 전송 데프 가까운 (자동) : 자기 .__ transport.close () : 데프 (자동, local_path, target_path) 업로드 SFTP = paramiko.SFTPClient합니다. from_transport (자기 .__ 전송) sftp.put (local_path, target_path) DEF cmd를 (자기 명령) SSH = paramiko.SSHClient () ssh._transport = 자기 .__ 전송 #执行命令 표준 입력, 표준 출력, 열려진 = ssh.exec_command (명령 ) #获取命令结果 결과 stdout.read = () 출력 (결과) 반환 결과 OBJ SSHConnection = () obj.run ()