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...