情報ガジェットにクロスプラットフォームのアクセス第三版(相続の増加、マルチスレッド、例外処理モジュール、スペースを除く目次をエクセル)

#コーディング= UTF-8 

インポート通し
インポートparamiko
インポートOS
インポート時間
インポートxlrdの
インポートxlwtの
インポートopenpyxl

all_row = []
スレッド= []

クラスread_excel(オブジェクト):
デフ__init __(自己、NUM):
#threading.Thread .__ INIT __(自己)
#self.threadID =スレッドID
self.num = NUM
DEF read_excel(自己):
filePathに= os.path.join(os.getcwd()、 'D:\浙商银行\ IP.xlsx')

WB = openpyxl.load_workbook (filePathに)#打开文件優れ
のWS = WB [ 'シート1']
RES = ws.cell(行= 1、カラム= 1).VALUE#获取单元格的内容
#プリント(RES)
#印刷(wb.sheetnames)#表示すべてのシートファイル名優れ
細胞株#番号(ws.min_row、ws.max_row、ws.max_column、印刷 ws.min_column)、 列数; max_row:最大ライン、max_columnました:カラムの最大
印刷(「********************************************* **********「)
#all_row = []
ws.rowsの行のための: - #はセル(セルオブジェクトを取得)行の発生
ev_row = []
行のセル内用
値=セル。値
value.strip()
プリント( "value.strip():{0}"形式(value.strip()))
ev_row.append(value.strip())
all_row.append(ev_row)
#Print(「ev_row :」、ev_row)
#print(「********************************************** ***************************************「)
#Print(all_row)
#Print(LEN(all_row))
#Print( "all_row [0] [0]:"、[0] [0])all_row

クラスacquisition_of_information(read_excelを:、threading.Thread)の

:__init __ DEF(セルフ、NUM、スレッドID、名前)
#super().__のinit __(自己、NUM)
threading.Threadの.__のinit __(自己)
self.threadID =スレッドID
self.num NUM =
"(印刷スレッドID:名前{0}:{} 1「フォーマット(スレッドID、名前))。
DEF RUN(自己):
インスタンスオブジェクトSSHClient作成
SSH = paramiko.SSHClient()
リモートマシンの公開鍵を特定することなく、#呼び出し方法を可能にしますアクセス
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
LEN1 = LEN(all_row)
印刷( "LEN1:"、LEN1)
は、リモートマシンアドレス、ポート、ユーザー名・パスワードへの接続
範囲内NUMのための(0、LEN1):
FO =オープン(all_row [ NUM] [0] + ".logに"、 "WB +")
fo.truncate()#をクリアファイルの内容
all_row [NUM] [0] .strip ()#は、 コンテンツ空間のスプレッドシート除去ヘッドおよびテール優れ
プリント(「all_rowを{ } 0 [0]:.. 1 {}「形式(NUM、all_row [NUM] [0] .strip()))
[1] all_row [NUM] .strip()#スペースがのスプレッドシート・コンテンツ・ヘッドとテール優れ除去
印刷( "all_row {0} [1]:{} 1"フォーマット(NUMは、all_row [NUM] [1] .strip()))
all_row [NUM] [2] .strip()#を除去し、Excelスプレッドシートのコンテンツヘッダ空間テール
プリント( "all_row {0} [ 2]:{1}"形式(NUM、all_row [NUM] [2] .strip()))
トライ:
ssh.connectは([1] [NUM] [0] .strip()、22 [NUM] .strip(all_row、あるall_row)、[NUM] [2] .strip()all_row)
例外IOError以外
「印刷(サーバへの接続は、IPが失敗します。{0} "形式は、(all_row [NUM] [0]))
他:
印刷("接続されているサーバが正常に、IPは:. {0}「形式は、(all_row [NUM] [0]))
印刷( "NUM:"、NUM)
ディレクトリの作成
標準入力を、標準出力、標準エラー出力= ssh.exec_command( "IP A |グレップ192 | awkの印刷$ {2} '")
fo.write(stdout.read())
STR = " *************************** "\
" ******************** ******* \ N-」
STR = str.encode()
fo.write(STR)
標準入力、標準出力、標準エラー出力= ssh.exec_command( "は、uname -a | grepの-i 'のlinux' |トイレ-l")
RES = stdout.read()
印刷( "RES:"、RES)
であれば解像度== B'1 \ n 'は:
STR = "DF -Ph \ n"
STR = str.encode()
fo.write(STR)
STDIN、STDOUT、標準エラー= ssh.exec_command( "DF -Ph")
fo.write(stdout.read( ))
STR = "***************************" \
「*************** 「************ \ nは
STR = str.encode()
fo.write(STR)
他:
STR = "DF -pg \ n"は
STR = str.encode()
fo.write(STR)
STDIN、STDOUT、標準エラー= ssh.exec_command( "DF -PG")
fo.write(stdout.read())
STR =「*************** ************」\
"*************************** \ n"は
STR = str.encode ()
fo.write(STR)
STR = ".profileに猫\ n"は
STR = str.encode()
fo.write(STR)
標準入力、標準出力、標準エラー出力= ssh.exec_command( "CD /ルート&&猫の.profile")
RES、ERR = stdout.read()、stderr.read()
fo.write(RES)
STR =「************************** * "\
"*************************** \ n」は
STR = str.encode()
fo.write(STR)
STR = "ARP -a \ n"
STR = str.encode()
fo.write(STR)
STDIN、STDOUT、標準エラー= ssh.exec_command( "ARP -a" )
RES、ERR = stdout.read()、stderr.read()
fo.write(RES)
STR =「************************* **」\
"*************************** \ n"は
STR = str.encode()
fo.write(STR)

STR = "は、netstat -rn \ n"
STR = str.encode()
fo.write(STR)
STDIN、STDOUT、標準エラー= ssh.exec_command( "は、netstat -rn")
解像度、ERR = stdout.read()、stderr.read()
fo.write(RES)
STR = "***************************" \
「*********** **************** \ n」は
STR = str.encode()
fo.write(STR)

STR = "猫/etc/rc.local\n"
STR = str.encode ()
fo.write(STR)
STDIN、STDOUT、標準エラー= ssh.exec_command( "CAT /etc/rc.localの")
RES、ERR = stdout.read()、stderr.read()
fo.write(RES)
STR = "***************************" \
「****************** ********* \ n」
STR = str.encode()
fo.write(STR)

STR = "猫/ etc / hostsには" N \
STR = str.encode()
fo.write(STR)
STDIN、STDOUT、標準エラー= ssh.exec_command( "猫の/ etc / hosts")
RES、ERR = stdout.read()、stderr.read()
fo.write( RES)
STR = "***************************" \
「*************** ************ \ n」は
STR = str.encode()
fo.write(STR)

STR = "netstatの-an | grepが* \ n"はLISTEN
STR = str.encode()
FO。書き込み(STR)
標準入力、標準出力、標準エラー出力= ssh.exec_command( "netstatの-an | grepの* LISTEN")
解像度、ERR = stdout.read()、stderr.read()
fo.write(RES)
STR = "***************************" \
「***************** ********** \ n」は
STR = str.encode()
fo.write(STR)

STR = "PS -ef | grepをのJava \ n"は
STR = str.encode()
fo.write(STR )
標準入力、標準出力、標準エラー出力= ssh.exec_command( "PS -ef | grepをjavaの")
RES、ERR = stdout.read()、stderr.read()
fo.write(RES)
STR =「****** ********************* "\
" ************************** * \ n」は
STR = str.encode()
fo.write(STR)

STR = "のps -efを| grepをZABBIX \ n"は
STR = str.encode()
fo.write(STR)
標準入力、標準出力、標準エラー出力= ssh.exec_command( "のps -ef | grepをするZABBIX")
解像度、ERR = stdout.read()、stderr.read()
fo.write(RES)
STR =「* ************************** "\
" ********************* ****** \ n」は
STR = str.encode()
fo.write(STR)

STR = "PS -ef | grepをするCTMする\ n"
STR = str.encode()
fo.write(STR)
標準入力、標準出力、標準エラー出力= ssh.exec_command( "のps -ef | grepをするCTM")
解像度、ERR = stdout.read()、stderr.read()
fo.write(RES)
STR =「********** *****************」\
"*************************** \ n"
STR = str.encode()
fo.write(STR)
STR =「のcrontab -l \ n」
STR = str.encode()
fo.write(STR)
STDIN、STDOUT、標準エラー= ssh.exec_command( "のcrontab -l")
RES、ERR = stdout.read()を、stderr.read()
fo.write (RES)
STR = "--------------------------" \
「*************** ************ "\
"***************************" \
" ----- ---------------------- \ n」
STR = str.encode()
fo.write(STR)
SSH。)(クローズ
)(fo.close
NUM = NUM + 2

デフ__del ___(自己、NUM):
self.num = NUM


クラスprint_all_row(read_excel、threading.Thread):
デフ__init __(自己、NUM、スレッドID、名前):
threading.Thread .__のinit __(自己)
自己。スレッドID =スレッドID
self.num = NUM
プリント( "print_all_row名:"、名前)

DEF(自己)実行:
印刷( "[0] [0] all_row"、[0] [0] all_row)
[all_row」(印刷0] [1]:」、[0] [1])all_row
"[0] [2])all_row:[0] [2] all_row(印刷"

:DEFメイン
())(= time.timeを開始
エクセル= read_excel(0)
excel.read_excel()
スレッド1 = acquisition_of_information(0、 "スレッド-2"、 "zhouhaiwu「)
スレッド2 = acquisition_of_information(1、 "スレッド-3"、 "zhouhaiwu")
thread3 = print_all_row(0、 "スレッド-4"、 "zhouhaiwu")
开启新线程
#thread1.start()
thread1.start()
thread2.start ()
thread3.start()
添加线程到线程列表
#threads.append(スレッド1)
threads.append(スレッド1)
threads.append(スレッド2)
threads.append(thread3)
等待所有线程完成
スレッドでTの場合:
T。 )(参加
( "メインスレッドを終了する")、印刷を
終了= time.time()
()STR(終了)印刷

の場合__name__ == '__main__':
メイン()

おすすめ

転載: www.cnblogs.com/niaocaizhou/p/11110581.html