ホームページ  >  記事  >  バックエンド開発  >  Pythonのparamikoモジュールを使った遠隔制御と送信の例

Pythonのparamikoモジュールを使った遠隔制御と送信の例

黄舟
黄舟オリジナル
2017-10-13 11:00:112764ブラウズ

この記事では主に 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在缺省目录下

ユーザー名が指定されており、ユーザーパスワードを入力する必要がありますコマンドの実行後; ユーザー名が指定されていない場合は、コマンドの実行後にユーザー名とパスワードが必要になります。 SFTPClient オブジェクト。以前の SSH 接続を再利用します。そのため、sftp を使用してファイルを転送する場合、ユーザーを再度認証する必要はありません。ファイル

アップロードを実装します:


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()

Official Document

以上がPythonのparamikoモジュールを使った遠隔制御と送信の例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。