本指令碼通過填寫位置引數來實現批量部署遠端主機的功能,位置引數1填寫主機ip列表,位置引數2填寫執行命令(執行命令寫在" "內)
#!/root/bin/python
import paramiko
import sys
import getpass
import threading
defrcmd
(host,user =
'student'
,passwd =
none
,port=
22,commands =
none):
ssh = paramiko.sshclient(
) ssh.set_missing_host_key_policy(paramiko.autoaddpolicy())
ssh.connect(host,username=user,password=passwd,port=port)
stdin,stdout,stderr = ssh.exec_command(commands)
out = stdout.read(
) err = stderr.read(
)if out:
print
('[\033[032;1m%s\033[0m] out:\n%s'
%(host,out.decode())
)if err:
print
('[\033[31;1m%s\033[0m] error:\n%s'
%(host,err.decode())
)if __name__ ==
'__main__':if
len(sys.ar**)!=3
:print
('usage:%s ipfile "commands"'
% sys.ar**[0]
) exit(1)
ifnot os.path.isfile(sys.ar**[1]
):print
('no such file :%s'
% sys.ar**[1]
) exit(2)
ipfile = sys.ar**[1]
commands = sys.ar**[2]
passwd = getpass.getpass(
)with
open
(ipfile)
as fobj:
for line in fobj:
ip = line.strip(
)# rcmd(ip,passwd=passwd,commands=commands)
t = threading.thread(target=rcmd,args=
(ip,
),kwargs=
) t.start(
)
EXPECT 指令碼 批量 遠端互動
在shell自動部署專案中對自動部署免去使用者互動很痛苦 expect eof 這個一定要加,與spawn對應表示捕獲終端輸出資訊終止,類似於if.endif expect指令碼必須以interact或expect eof結束,執行自動化任務通常expect eof就夠了。設定expect永不超時。...
python 批量改名指令碼
第66屆艾美獎上,絕命毒師 一舉拿下了劇情類最佳劇集 最佳男主 最佳男女配角和最佳劇本5項重要大獎,成為艾美獎最大的贏家。這部歷時六年,共62集的劇集憑藉metacritic metacritic的評分是收錄各 的評分,並綜合得出的評分 99分 滿分100 的成績,成為寫入健力士世界紀錄大全的 世界...
python批量造數指令碼
coding utf8 from pymysql import connect,cursors from pymysql.err import operationalerror import sys,time class database 類名和模組名一致,robot匯入時不用寫類名 def ini...