Pythonのマルチプロセスバッチ管理ホスト。

  1. シーン解析。

           

   2.コード例は、



1.安装相关支持包

PIP3インストールpycryptoの
pip3.6インストールparamiko 

2远程执行命令示例代码。

#!は/ usr / binに/のenv python36 
インポート処理マルチプロセッシングから
の輸入paramikoの
インポートsysを
ユーザー名= 'ルート' 
パスワード= 'Pする@ ssw0rd' 
ポート= 22 
TimeOutの= 60 
:DEF RUNCMD(IP、CMD)
    S = paramiko.SSHClient()
    s.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    してみてください:
        s.connect(ホスト名= IP、ポート=ポート、ユーザ名=ユーザ名、パスワード=パスワード、タイムアウト= TimeOutの)
        標準入力、標準出力、標準エラー出力= 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の稼働時間

image.png


4.パッケージのリモートコマンドの実行やファイルのアップロード。

#!は/ usr / binに/パイソンのenv 
# - * -コーディング:UTF-8 - * - 
インポートparamikoの
 
クラスSSHConnection(オブジェクト):
 
    DEF __init __(自己、ホスト= '192.168.12.68'、ポート= 22であり、ユーザ名=「locojoy 'PWD =' 123321QQ「):! 
        self.host =ホスト
        self.port =ポート
        self.username =ユーザー名は
        PWD = self.pwd 
        自己.__ K =なし
 
    DEF RUN(セルフ):
        self.connect()リモートサーバ#に接続されています
        self.upload下( 'db.py'、 '/ tmpに/ 1.py')# リモートサーバーのファイルアップロードを/ tmp /ディレクトリにローカルdb.pyとは1.py改名さ
        self.cmd(「DFを「)#dfコマンド実行
        self.close()#は接続を閉じる
 
    (セルフ)を接続DEF:
        交通paramiko.Transport =((self.host、self.port))
        transport.connect(ユーザ名= self.username、パスワード= self.pwd)
        自己.__輸送=輸送
 
    DEF近い(自己):
        自己.__ transport.close()
 
    DEF(自己、LOCAL_PATH、TARGET_PATH)アップロード:
        SFTP = paramiko.SFTPClient.from_transport(自己.__輸送)
        sftp.put(LOCAL_PATH、TARGET_PATH)
 
    DEF CMD(自己、コマンド) :
        SSH = paramiko.SSHClient()
        ssh._transport =自己.__輸送
        #执行命令
        STDIN、STDOUT、標準エラー= ssh.exec_command(コマンド)
        #获取命令结果
        結果= stdout.read()
        プリント(結果)
        リターン結果
 
OBJ = SSHConnection ()
obj.run()

おすすめ

転載: blog.51cto.com/breaklinux/2421126