欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

使用Python之paramiko模塊和threading實現(xiàn)多線程登錄多臺Linux服務(wù)器

        有時候我們需要在多臺Linux服務(wù)器上面執(zhí)行同樣的命令,或者同樣的操作,如果我們每一臺單獨(dú)登錄上去做這樣太麻煩了,所以我們可以考慮使用自動化腳本來實現(xiàn)。我這里使用Python多線程的方式,這樣速度更快,如果使用Shell只能一臺完了執(zhí)行另外一臺效率不高。

創(chuàng)新互聯(lián)執(zhí)著的堅持網(wǎng)站建設(shè),小程序制作;我們不會轉(zhuǎn)行,已經(jīng)持續(xù)穩(wěn)定運(yùn)營十多年。專業(yè)的技術(shù),豐富的成功經(jīng)驗和創(chuàng)作思維,提供一站式互聯(lián)網(wǎng)解決方案,以客戶的口碑塑造品牌,攜手廣大客戶,共同發(fā)展進(jìn)步。

        針對這樣的需要寫了一個Python腳本來完成這樣的工作,大致實現(xiàn)了我需要的效果

實現(xiàn)代碼:

#!/usr/bin/python
#*-*coding:utf8*-*

"""
此腳本適用于批量登錄到Linux操作系統(tǒng),并執(zhí)行一些簡單命令
要求所有服務(wù)器的用戶名密碼一樣,或者密鑰一樣,都能使用同一種方法登錄
執(zhí)行的命令默認(rèn)只輸入第一行,如果要輸出多行需要修改ssh_login函數(shù)
默認(rèn)腳本是以用戶名密碼登錄,也可以改為用密鑰登錄
選項特殊說明:
-c:后面跟要執(zhí)行命令,命令如w,uptime,hostname,date等,如果命令中有空格,需要用雙引號,如"cat /etc/hosts"
-a:后面跟主機(jī),有三種寫法192.168.1.31指單臺主機(jī),192.168.1.31,192.168.132,指定多臺主機(jī),把逗號換成“-”指定區(qū)間

如果有很多主機(jī),但用戶名密碼不一樣,登錄方法也不一樣,可以考慮把這些信息寫入到一個文件,
通過對文件遍歷來完成復(fù)雜環(huán)境的需求
"""

import paramiko
from optparse import OptionParser
import sys
import netaddr
import threading

#使用選項幫助信息可以使用中文
reload(sys)
sys.setdefaultencoding("utf-8")

#定義選項
usage = sys.argv[0] + " [選項]"
parser = OptionParser(usage)
parser.add_option('-c', '--commond',
                  dest='commond',
                  action='store',
                  default=False,
                  help='你要執(zhí)行的命令,如:uptime')
parser.add_option('-a', '--host',
                  dest='host',
                  action='store',
                  default=False,
                  help='需要執(zhí)行命令的主機(jī),跟主機(jī)IP地址,多個IP用逗號分隔,也可以用“-”連接一個主機(jī)范圍')
options, args = parser.parse_args()

def ssh_login(ip, commond):
    "登錄并執(zhí)行命令,可以更改為使用密鑰登錄"
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh.connect(hostname=ip, port=22, username='root', password='p-0p-0p-0')
    stdin, stdout, stderr = ssh.exec_command(commond)
    print('%s\t%s' %(ip, stdout.readline().rstrip()))
    ssh.close()

if __name__ == '__main__':
    if not options.commond:
        print("請指定要執(zhí)行的命令")
        exit(1)
    if not options.host:
        print("請指定主機(jī)")
        exit(1)

    if ',' in options.host:
        ip = options.host.split(',')
        for i in ip:
            t = threading.Thread(target=ssh_login, args=(i, options.commond))   #使用線程方式執(zhí)行,更快
            t.start()
    elif '-' in options.host:
        startip = options.host.split('-')[0]
        endip = options.host.split('-')[1]
        ip = list(netaddr.IPRange(startip, endip))        #netaddr.IPRange()用于計算IP地址區(qū)間內(nèi)的所有IP
        for i in ip:
            t = threading.Thread(target=ssh_login, args=(str(i), options.commond))
            t.start()
    else:
        ip = options.host
        ssh_login(ip, options.commond)

執(zhí)行方式及結(jié)果如下:

使用Python之paramiko模塊和threading實現(xiàn)多線程登錄多臺Linux服務(wù)器

.

當(dāng)前名稱:使用Python之paramiko模塊和threading實現(xiàn)多線程登錄多臺Linux服務(wù)器
分享路徑:http://www.aaarwkj.com/article4/gjgoie.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、全網(wǎng)營銷推廣、網(wǎng)站設(shè)計公司、云服務(wù)器、網(wǎng)頁設(shè)計公司、建站公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)
日本高清一区二区高清| 两性色午夜视频在线观看| 我的农村中年激情熟妇| 精品人妻日韩中文字幕| 国产高清亚洲一区亚洲二区| 人妻免费视频中文字幕| 最新中文字幕成人在线观看| 日本午夜诱惑在线观看| 人妻露脸国语对白字幕| 国产激情福利一区二区| 成人精品国产一区二区| 精品亚洲在线一区二区| 亚洲精品日本一区二区| 日本一区二区三区电影播放| 夫妻性生活视频全过程| av黄色成人在线观看| 青青草免费在线播放视频网站| 婷婷亚洲悠悠色悠在线| 日韩在线视频 一区二区三区| 国产美女自拍视频一区| 欧美高清成人一区二区三区| 日韩有码大片最新自拍| 欧美性生活之欧美日韩| 欧美日韩欧美日韩一区二区| 日韩av中文一区二区| 国产av综合一区二区三区最新| 中文字幕乱码高清欧美日韩| 加勒比视频在线观看一区| 免费观看欧美日韩论理电影| 蜜臀国产午夜在线视频| 长腿丝袜美女亚洲一区二区| 免费观看毛片一区二区三区| 亚洲va在线va天堂va在线| 少妇一夜一次一区二区| 欧美日韩亚洲精品一区二区三区| 亚洲成人精品夫妻av| 亚洲欧美日韩另类自拍| 国产剧情av一区在线观看 | 欧美成人精品免费在线| 国产精品一区日韩专区| 欧美三级在线完整版免费|