Python 多程序批量管理主機

2021-09-27 05:43:19 字數 2519 閱讀 5473

場景分析;

1.運維場景新增物理機機器 需要進行登入機器進行環境標準化; 

2.例項**;

1.安裝相關支援包

pip3 install pycrypto

pip3.6 install paramiko

2.遠端執行命令示例**;

#!/usr/bin/env python36

from multiprocessing import process

import paramiko

import sys

username = 'root'

password = 'p@ssw0rd'

port = 22

timeout = 60

def runcmd(ip,cmd):

s = paramiko.sshclient()

s.set_missing_host_key_policy(paramiko.autoaddpolicy())

try:

s.connect(hostname=ip, port=port, username=username, password=password,timeout=timeout)

stdin, stdout, stderr = s.exec_command(cmd)

result =  stdout.read()

print(ip,result)

except:

print("is not exists") + ip

def ipprocess():

try:

cmd = sys.ar**[1]

for i in range(4,16):

ip = '172.21.38.%s' % i

p = process(target=runcmd,args=(ip,cmd))

p.start()

except indexerror:

print("please input a command")

if __name__ == '__main__':

ipprocess()

3.執行結果;

4.封裝遠端命令執行和檔案上傳;

#!/usr/bin/env python

# -*- coding:utf-8 -*-

import paramiko

class sshconnection(object):

def __init__(self, host='192.168.12.68', port=22, username='locojoy',pwd='123321qq!'):

self.host = host

self.port = port

self.username = username

self.pwd = pwd

self.__k = none

def run(self):

self.connect()  # 連線遠端伺服器

self.upload('db.py','/tmp/1.py')  # 將本地的db.py檔案上傳到遠端伺服器的/tmp/目錄下並改名為1.py

self.cmd('df')  # 執行df 命令

self.close()    # 關閉連線

def connect(self):

transport = paramiko.transport((self.host, self.port))

transport.connect(username=self.username, password=self.pwd)

self.__transport = transport

def close(self):

self.__transport.close()

def upload(self,local_path,target_path):

sftp = paramiko.sftpclient.from_transport(self.__transport)

sftp.put(local_path,target_path)

def cmd(self, command):

ssh = paramiko.sshclient()

ssh._transport = self.__transport

# 執行命令

stdin, stdout, stderr = ssh.exec_command(command)

# 獲取命令結果

result = stdout.read()

print(result)

return result

obj = sshconnection()

obj.run()

python多程序 python多程序

當有多個非相關任務需要處理時,並行能大大提高處理速度。這裡簡要介紹python的multiprocessing模組。簡單多程序編寫 當我們任務數量確定而且比較少的時候,可以手動為每個任務指定乙個程序來執行。import multiprocessing as mp def f a print a if...

python多程序 Python多程序實踐

建立程序方式如下 可以通過lock鎖機制實現共享鎖,但比較常用的方式還是以上這些方式,效率更高,更安全。使用方式 構造 類方法 使用方式 構造 更多型別支援一般使用manager,支援的型別包括list,dict,namespace,lock,rlock,semaphore,boundedsemap...

python多程序 Python多程序程式設計詳解

本文 在 python 3.6 環境下測試通過。多程序 multiprocessing 模組是在 python 2.6 版本中加入的,和多執行緒 threading 模組類似,都是用來做並行運算的。不過python既然有了threading,為什麼還要搞乙個multiprocessing呢?這是因為...