Cet article présente principalement le module paramiko de python pour implémenter des exemples de contrôle à distance et de transmission. Il est d'une grande valeur pratique. Les amis dans le besoin peuvent s'y référer
Cet article présente le module paramiko de python pour implémenter le contrôle à distance et la transmission. exemples. , partagez avec tout le monde, les détails sont les suivants :
1 Installation
sudo pip install paramiko
2 ssh pour réaliser la télécommande. control
#LINUX下执行shell ssh username@ip #输入密码后就可以对远程机器进行操作 ssh username@ip command #输入密码后远程机器就执行command
Une fois ssh exécuté, si vous souhaitez quitter, vous pouvez tuer le processus ssh.
3 paramiko implémente la commande ssh
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()
exec_command, séparée par un point-virgule ; signifie exécuter deux commandes l'une après l'autre ; passé en paramètres ; exec_command est une seule session. Une fois l'exécution terminée, il reviendra au répertoire par défaut lors de la connexion, comme suit :
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()
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
<🎜 local ; >
scp remote_username@remote_ip:remote_file local_file
Nouveau Un objet SFTPClient qui réutilise la connexion SSH précédente. Par conséquent, lorsque nous utilisons sftp pour transférer des fichiers, nous n'avons pas besoin d'authentifier à nouveau l'utilisateur. Implémentez le téléchargement du fichier
:
sftp = paramiko.SFTPClient.from_transport(ssh.get_transport()) #sftp = ssh.open_sftp() #两者选其一即可 sftp.put('bbb.c','aaa.c') #文件上传并重命名 sftp.close()
import paramiko t=paramiko.Transport((hostname,port)) t.connect(username=username,password=password) sftp = paramiko.SFTPClient.from_transport(t) sftp.put('bbb.c','aaa.c') #文件上传并重命名 sftp.get('m.py', 'mm.py')#文件下载并重命名 t.close()
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!