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

2021-09-28 18:44:26 字數 1470 閱讀 7616

本指令碼通過填寫位置引數來實現批量部署遠端主機的功能,位置引數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...