#报错提示 import paramiko import time import threading # 执行命令的函数 def execute_commands_on_server(hostname, username, password, host): try: # 连接到服务器 client = paramiko.SSHClient() client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) client.connect(hostname=hostname, username=username, password=password) # 执行命令 shell = client.invoke_shell() #启动docker shell.send("cd /root/pdf_parser/zzb_data_prod\n") time.sleep(1) shell.send("conda activate py310\n") time.sleep(1) shell.send("ps -ef | grep app.py | grep -v grep | awk '{print $2}' | xargs -r kill -9\n") time.sleep(1) shell.send("nohup python app.py > app.log 2>&1 &\n") time.sleep(1) # 读取输出 output = shell.recv(2048).decode() print(f"Output from {hostname}:\n{output}") except paramiko.SSHException as e: print(f"SSH connection error with {hostname}: {e}") finally: client.close() # 创建线程函数 def thread_function(server): execute_commands_on_server(server['hostname'], server['username'], server['password'], server['host']) servers = [ #{'hostname': '192.168.0.163', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'企业服务器1'}, #{'hostname': '192.168.0.26', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'企业服务器2'}, #{'hostname': '192.168.0.2', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'企业服务器3'}, #{'hostname': '192.168.0.128', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'企业服务器4'}, #{'hostname': '192.168.0.136', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'企业服务器5'}, #{'hostname': '192.168.0.239', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'企业服务器6'}, {'hostname': '192.168.0.108', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'监管服务器1'}, {'hostname': '192.168.0.131', 'username': 'root', 'password': 's6fQeVQmxxNv','host':'监管服务器2'}, # ] # 创建并启动线程 threads = [] for server in servers: thread = threading.Thread(target=thread_function, args=(server,)) threads.append(thread) thread.start() # 等待所有线程完成 for thread in threads: thread.join() print("All commands executed.")