# coding=utf-8 import threadingimport paramikoimport osimport timeimport xlrdimport xlwtimport openpyxl all_row = []threads = [] class read_excel(object): def __init__(self, num): #threading.Thread.__init__(self) #self.threadID = threadID self.num = num def read_excel(self): filePath = os.path.join(os.getcwd(), ‘D:\浙商银行\IP.xlsx‘) wb = openpyxl.load_workbook(filePath) # 打开excel文件 ws = wb[‘Sheet1‘] res = ws.cell(row=1, column=1).value # 获取单元格的内容 # print(res) # print(wb.sheetnames) # 显示excel文件的所有sheet名字 print(ws.min_row, ws.max_row, ws.max_column, ws.min_column) # 单元格的行数、列数; max_row:最大行、max_column:最大列 print(‘*******************************************************‘) #all_row = [] for row in ws.rows: # 按行获取单元格(Cell对象) - 生成器 ev_row = [] for cell in row: value = cell.value value.strip() print("value.strip():{0}".format(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]:", all_row[0][0]) class acquisition_of_information(read_excel, threading.Thread): def __init__(self, num, threadID, name): #super().__init__(self, num) threading.Thread.__init__(self) self.threadID = threadID self.num = num print("threadID:{0} name:{1}".format(threadID, name)) def run(self): # 创建SSHClient实例对象 ssh = paramiko.SSHClient() # 调用方法,标识没有远程机器的公钥,允许访问 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) len1 = len(all_row) print("len1:", len1) # 连接远程机器 地址端口用户名密码 for num in range(0, len1): fo = open(all_row[num][0] + ".log", "wb+") fo.truncate() # 清空文件内容 all_row[num][0].strip() # 去除excel表格内容头和尾的空格 print("all_row{0}[0]:{1}".format(num, all_row[num][0].strip())) all_row[num][1].strip() # 去除excel表格内容头和尾的空格 print("all_row{0}[1]:{1}".format(num, all_row[num][1].strip())) all_row[num][2].strip() # 去除excel表格内容头和尾的空格 print("all_row{0}[2]:{1}".format(num, all_row[num][2].strip())) try: ssh.connect(all_row[num][0].strip(), 22, all_row[num][1].strip(), all_row[num][2].strip()) except IOError: print ("连接服务器失败,IP:{0}".format(all_row[num][0])) else: print ("连接服务器成功,IP:{0}".format(all_row[num][0])) print("num:", num) # 创建目录 stdin, stdout, stderr = ssh.exec_command("ip a | grep 192 | awk ‘{print $2}‘") fo.write(stdout.read()) str = "***************************" \ "***************************\n" str = str.encode() fo.write(str) stdin, stdout, stderr = ssh.exec_command("uname -a | grep -i ‘linux‘ | wc -l") res = stdout.read() print("res:", res) if res == b‘1\n‘: str = "df -Ph\n" str = str.encode() fo.write(str) stdin, stdout, stderr = ssh.exec_command("df -Ph") fo.write(stdout.read()) str = "***************************" \ "***************************\n" str = str.encode() fo.write(str) else: str = "df -Pg\n" str = str.encode() fo.write(str) stdin, stdout, stderr = ssh.exec_command("df -Pg") fo.write(stdout.read()) str = "***************************" \ "***************************\n" str = str.encode() fo.write(str) str = "cat .profile\n" str = str.encode() fo.write(str) stdin, stdout, stderr = ssh.exec_command("cd /root && cat .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, stderr = 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, stderr = ssh.exec_command("netstat -rn") res, err = stdout.read(), stderr.read() fo.write(res) str = "***************************" \ "***************************\n" str = str.encode() fo.write(str) str = "cat /etc/rc.local\n" str = str.encode() fo.write(str) stdin, stdout, stderr = 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 = "cat /etc/hosts\n" str = str.encode() fo.write(str) stdin, stdout, stderr = ssh.exec_command("cat /etc/hosts") res, err = stdout.read(), stderr.read() fo.write(res) str = "***************************" \ "***************************\n" str = str.encode() fo.write(str) str = "netstat -an|grep LISTEN*\n" str = str.encode() fo.write(str) stdin, stdout, stderr = ssh.exec_command("netstat -an|grep LISTEN*") res, 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) stdin, stdout, stderr = 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) stdin, stdout, stderr = ssh.exec_command("ps -ef | grep zabbix") res, 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) stdin, stdout, stderr = ssh.exec_command("ps -ef | grep ctm") res, 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, stderr = ssh.exec_command("crontab -l") res, err = stdout.read(), stderr.read() fo.write(res) str = "--------------------------" \ "***************************" \ "***************************" \ "---------------------------\n" str = str.encode() fo.write(str) ssh.close() fo.close() num = num + 2 def __del___(self, num): self.num = num class print_all_row(read_excel, threading.Thread): def __init__(self, num, threadID, name): threading.Thread.__init__(self) self.threadID = threadID self.num = num print("print_all_row name:", name) def run(self): print("all_row[0][0]:", all_row[0][0]) print("all_row[0][1]:", all_row[0][1]) print("all_row[0][2]:", all_row[0][2]) def main(): start = time.time() excel = read_excel(0) excel.read_excel() thread1 = acquisition_of_information(0, "Thread-2", "zhouhaiwu") thread2 = acquisition_of_information(1, "Thread-3", "zhouhaiwu") thread3 = print_all_row(0, "Thread-4", "zhouhaiwu") # 开启新线程 #thread1.start() thread1.start() thread2.start() thread3.start() # 添加线程到线程列表 #threads.append(thread1) threads.append(thread1) threads.append(thread2) threads.append(thread3) # 等待所有线程完成 for t in threads: t.join() print ("Exiting Main Thread") end = time.time() print (str(end)) if __name__ == ‘__main__‘: main()
原文地址:https://www.cnblogs.com/niaocaizhou/p/11110581.html
时间: 2024-10-11 16:15:50