이 글에서는 주로 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를 추가하세요.
(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()
이전 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!