>백엔드 개발 >파이썬 튜토리얼 >Python에서 paramiko 모듈을 사용한 원격 제어 및 전송의 예

Python에서 paramiko 모듈을 사용한 원격 제어 및 전송의 예

黄舟
黄舟원래의
2017-10-13 11:00:112850검색

이 글에서는 주로 Python의 paramiko 모듈로 구현한 원격 제어 및 전송의 예를 소개합니다. 실용적인 가치가 매우 높습니다. 필요한 친구는 참고할 수 있습니다.

이 글에서는 Python의 paramiko 모듈로 구현한 원격 제어 및 전송의 예를 소개합니다. 다음과 같이 공유하고 싶습니다.

1 원격 제어를 실현하려면


sudo pip install paramiko

2 ssh를 설치하세요.


#LINUX下执行shell
ssh username@ip #输入密码后就可以对远程机器进行操作
ssh username@ip command #输入密码后远程机器就执行command

ssh가 실행된 후 종료하려면 다음을 수행하세요. ssh 프로세스를 종료하십시오.

3 지방 디렉터리는 다음과 같습니다.



import paramiko
hostname = '10.1.111.111'
username = 'root'
password = '111111'
port = 22 #整数不是字符串
paramiko.util.log_to_file('paramiko.log')
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) #允许连接不在know_hosts文件中的主机
ssh.connect(hostname=hostname,port=port,username=username,password=password)
stdin, stdout, stderr = ssh.exec_command("ls") #远程执行shell命令
print(stdout.readlines()) #输出回显结果
ssh.close()

원격으로 명령을 실행할 때 상호 작용이 있으면 stdin.write("")를 사용하여 완료할 수 있습니다.


참고:

(1) stdin에서 비밀번호를 받으려면 sudo 뒤에 -S를 추가하세요.

(2) 명령 끝으로 stdin.write('passwordn') 끝에 n을 추가하세요.

(3) 모든 버퍼를 플러시합니다. 파일 전송

scp 로컬 서버에서 원격 서버로

a='~/Videos'
b='aaa'
ssh.exec_command('cd %s;mkdir %s'%(a,b)) #aaa在a目录下
ssh.exec_command('mkdir aaa') #aaa在缺省目录下

사용자 이름이 지정되고 사용자 비밀번호를 입력해야 합니다. 명령이 실행된 후 사용자 이름이 지정되지 않은 경우 멀리서 명령을 실행한 후 사용자 이름과 비밀번호가 필요합니다. 로컬에 파일 복사


stdin, stdout, stderr = ssh.exec_command('sudo -S ls')
stdin.write('password\n')
stdin.flush()

5 paramiko는 원격 파일 전송을 구현합니다.

이전 SSH 연결을 재사용하는 SFTPClient 객체. 따라서 sftp를 사용하여 파일을 전송할 때 사용자를 다시 인증할 필요가 없습니다. 파일

업로드 구현:


import paramiko
import threading

def ssh_cmd(ip,port,username,passwd,cmd):
  ssh = paramiko.SSHClient()
  ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
  ssh.connect(ip,port,username,passwd)
  for m in cmd:
    stdin, stdout, stderr = ssh.exec_command(m)
    print(stdout.readlines()) 
  ssh.close()

if __name__=='__main__':
  cmd = ['ls','ifconfig']   
  a=threading.Thread(target=ssh_cmd,args=(ip,port,username,passwd,cmd))
  a.start() 
  a.join()

또는 다음과 같이 파일 업로드 및 다운로드 구현:


scp local_file remote_username@remote_ip:remote_file

공식 문서

위 내용은 Python에서 paramiko 모듈을 사용한 원격 제어 및 전송의 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.