需要模組:paramiko
pip3 install paramiko
import paramiko
import sys
import getpass
def rcmd (host,password,cmd,port=22,username='root'):
ssh = paramiko.sshclient()
ssh.set_missing_host_key_policy(paramiko.autoaddpolicy()) #
ssh.connect(host,username=username,password=password,port=port)
stdin,stdout,stderr = ssh.exec_command(cmd) #分別儲存,標準輸入,標準輸出,錯誤輸出
data = stdout.read().decode('utf8')
error = stderr.read().decode('utf8')
if data:#如果存標準輸出,列印
print('[%s:out]:\n%s' % (host,data))
if error:
print('[%s:error]:\n%s' % (host,error))
ssh.close()
if __name__ == '__main__':
# rcmd('192.168.4.11','123456','useradd zzz')
password = getpass.getpass()
ips = sys.argv[1]
with open(ips) as fobj: #迴圈匯入位址
for lines in fobj:
ip = lines.strip()
rcmd(ip,password,sys.argv[2])
多執行緒優化版:
import paramiko
import sys
import getpass
import threading
import os
def rcmd (host,password,cmd,port=22,username='root'):
ssh = paramiko.sshclient()
ssh.set_missing_host_key_policy(paramiko.autoaddpolicy()) #
ssh.connect(host,username=username,password=password,port=port)
stdin,stdout,stderr = ssh.exec_command(cmd) #分別儲存,標準輸入,標準輸出,錯誤輸出
data = stdout.read().decode('utf8')
error = stderr.read().decode('utf8')
if data:#如果存標準輸出,列印
print('[%s:out]:\n%s' % (host,data))
if error:
print('[%s:error]:\n%s' % (host,error))
ssh.close()
if __name__ == '__main__':
if len(sys.argv) != 3:
print('%s 引數使用不正確' % (sys.argv[0]))
exit(1)
password = getpass.getpass()
ips = sys.argv[1]
cmd = sys.argv[2]
if not os.path.isfile(ips):
print('找不到檔案!',ips)
exit(2)
with open(ips) as fobj: #迴圈匯入位址
for lines in fobj:
ip = lines.strip()
t = threading.thread(target=rcmd,args=(ip,password,cmd))
t.start()
Python3多執行緒
學習python執行緒 python3 執行緒中常用的兩個模組為 thread threading 推薦使用 thread 模組已被廢棄。使用者可以使用 threading 模組代替。所以,在 python3 中不能再使用 thread 模組。為了相容性,python3 將 thread 重新命名為...
python3 多執行緒
多執行緒簡介 執行緒 thread 也稱輕量級程序,時作業系統能夠進行運算排程的最小單位,它被包涵在程序之中,時程序中的實際運作單位。執行緒自身不擁有資源,只擁有一些在執行中必不可少的資源,但他可與同屬乙個程序的其他執行緒共享程序所擁有的全部資源。乙個執行緒可以建立和撤銷另乙個執行緒,同一程序中的多...
python3 多執行緒,執行緒鎖
python使用多執行緒,不一定執行速度快,這裡引入gil global interpreter lock python直譯器中任意時刻都只有乙個執行緒在執行 gil執行過程 1 設定乙個gil 2 切換執行緒去準備執行任務 runnale就緒狀態 3 執行 4 可能出現的狀態 執行緒任務執行結束 ...