python編寫批量遠端主機執行相同命令的腳步

2021-10-07 21:14:01 字數 1702 閱讀 8794

1.首先把你要遠端的所有主機ip寫到乙個檔案裡(每行乙個),我創造的檔名是host.txt並在裡面寫入了兩個遠端主機的ip分別是192.168.1.11和192.168.1.12,然後執行下面的**檢視這兩個主機上面是否有root和jk這兩個使用者

import getpass

import paramiko

import threading

import sys

import os

defrcmd

(host,user=

"root"

,passwd=

none

,commands=

none

,port=22)

: ssh = paramiko.sshclient(

) ssh.set_missing_host_key_policy(paramiko.autoaddpolicy())

ssh.connect(host,username=user,password=passwd,port=port)

stdin,out,err = ssh.exec_command(commands)

out = out.read(

) err = err.read(

)if out:

print

('\033[32m%s\033[0m 正確輸出:\n%s'

%(host,err.decode())

)if err:

print

('\033[31m%s\033[0m 錯誤輸出:\n %s'

%(host,err.decode())

) ssh.close(

)if __name__ ==

'__main__':if

len(sys.ar**)!=3

:print

('引數不夠'

) exit(1)

ifnot os.path.exists(sys.ar**[1]

):print

('檔案不存在'

) exit(2)

ipfile = sys.ar**[1]

command = sys.ar**[2]

passwd = getpass.getpass

with

open

(ipfile)

as f2:

for line in f2:

ip = line.strip(

) t = threading.thread(target=rcmd,args=

(ip,

),kwargs=

) t.start(

)

python rcmd.py host.txt "id root"

//第乙個引數是程式名,第二個是存放遠端ip的檔案,第三個是要執行的命令

python指令碼實現批量遠端部署主機

本指令碼通過填寫位置引數來實現批量部署遠端主機的功能,位置引數1填寫主機ip列表,位置引數2填寫執行命令 執行命令寫在 內 root bin python import paramiko import sys import getpass import threading defrcmd host,...

expect轉義符及遠端主機執行命令

expect send對 expect等待輸出並判定特定的字元,通常是提示符,當字元匹配,則send下一步的操作 若字元與expect期望的輸出不乙隻時,往往會報錯退出。expect不支援太複雜的命令,一般都是按照既定的返回執行下一步的操作,比較呆板,但很多時候還是很有用的 在命令send時,往往有...

pssh PSSH批量遠端管理主機

安裝 wget tar zxvf pssh 2.3.1.tar.gz cd pssh 2.3.1 python setup.py install 或者yum install y pssh使用yum安裝後,只能使用pssh,但是編譯安裝後會包括其他命令也安裝了 pscp prsync pnuke ps...