天天看點

批量執行腳本

  最近由于在研究saltstack和運維平台的搭建,很久沒有寫部落格了,今天同僚說現在三台緩存伺服器總共有幾個站點,每回都遠端ssh上去清理有點麻煩,叫我能不能想想辦法,剛好近段時間剛好學習批量,簡單實作以下(要安裝paramiko子產品,這裡不示範了,大家可以百度一下):

1、執行腳本:

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

#xiaoluo

#!/usr/bin/python 

import paramiko

import time,os,sys

import threading

status=[]

status_dic={}

def ssh2(ip,port,username,passwd,cmd):

    try:

        ssh = paramiko.SSHClient()

        ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

        ssh.connect(ip,port,username,passwd,timeout=5)

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

        cmd_result = stdout.read(),stderr.read()

        for cmd in cmd_result:

                print cmd

        ssh.close()

    except :

        print '%s\tError\n'%(ip)

if __name__=='__main__':

    f=open("/clean_cache/ssh.txt")

    for lines in f.readlines():

        ip=lines.split()[0]

        username=lines.split()[1]

        passwd = lines.split()[2]

        port = int(lines.split()[3])

        print ip,username,passwd,port

        cmd = 'rm -rf /tmp/xiaoluo/*'

        threads = []

        print "Begin......"

        a=threading.Thread(target=ssh2,args=(ip,port,username,passwd,cmd))

        a.start()

實作很簡單:調用paramiko子產品。從ssh.txt這個檔案下面去讀取,使用的使用者名密碼,端口号。通過讀寫檔案的方式去擷取,然後就能多線程批量執行了。

ssh.txt:格式如下:

192.168.10.234   root    OPEsdNdsssl.SHI<+om123{    22

192.168.10.235   root    OPEN>?sdssSkee.com123{     22

192.168.10.236   root    OPE.,.23NIkee.com123{      22

到此就結束了,大家可以根據自己擴充,通過互動的方式,一執行腳本就叫選擇删除的目錄,然後用if判斷哪個目錄要删除就好。

或者批量執行指令傳回結果可以友善我們平時的排錯;cmd那裡可以添加幾個指令:

如:df -h ,free -m,uptime都是可以的。

本文轉自 小羅ge11 51CTO部落格,原文連結:http://blog.51cto.com/xiaoluoge/1609931,如需轉載請自行聯系原作者