python建立多台电脑共用的_使用Python 实现多主机简单的批量管理

1,当前操作系统环境

2,安装python所使用到的模块,使用pip命令安装

yum -y install gcc

#安装pycrypto

tar -xf pycrypto-2.6.tar.gz

cd pycrypto-2.6/

python setup.py build && python setup.py install

#测试,注意大小写

python>> import Crypto

#安装 paramiko

unzip paramiko-1.7.5.zip

cd paramiko-1.7.5

python setup.py build && python setup.py install

#测试:

python>> import paramiko

3,下面我们就可以使用paramiko模块实现多个主机简单批量管理 ,我这里用到了python的多线程threading模块,下面就是一个简单的demo供大家参考

import paramiko

import threading

import time

#首先我们先定义一个主机列表(保证在一台 控制其他主机的服务器上可以免密钥登录多台配控制的主机上,有两种方式,一种是基于用户名和密码的,一种是基于公钥的认证方式)

hosts =[(ip1,username1,password),(ip2,username2,password2),(ip3,username3,password3)]

#创建ssh对象

ssh = paramiko.SSHClient()

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

def run(host_info,cmd):

ip,username,password = hostinfo

ssh.connect(ip,username,pasword)

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

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

print cmd_result

return cmd_result

for i in hosts:

t = threading.Thread(target=run,args=[i,'you input cmd'])

t.start()

4,通过上面的例子基本上及实现了一个多主机简单的批量管理,当然你可以扩展的更具体复杂

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现一个多人聊天室需要涉及到网络编程以及并发编程。在Python中,可以通过TCP协议来实现多人聊天室。 下面是一个跨主机Python+TCP实现多人聊天室的简单示例代码: ```python import socket import threading # 服务器IP地址和端口号 SERVER_HOST = '0.0.0.0' SERVER_PORT = 8000 # 客户端列表 clients = [] def broadcast(message): """ 广播消息给所有客户端 """ for client in clients: client.send(message) def handle_client(client): """ 处理客户端连接 """ while True: try: message = client.recv(1024) if message: print(f"[{client.getpeername()}]: {message.decode('utf-8')}") message_to_broadcast = f"[{client.getpeername()}]: {message.decode('utf-8')}".encode('utf-8') broadcast(message_to_broadcast) else: remove(client) except: remove(client) def remove(client): """ 客户端断开连接 """ if client in clients: clients.remove(client) client.close() if __name__ == "__main__": # 创建服务器套接字 server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) server_socket.bind((SERVER_HOST, SERVER_PORT)) server_socket.listen() print(f"[*] Listening on {SERVER_HOST}:{SERVER_PORT}") while True: client_socket, client_address = server_socket.accept() print(f"[*] Accepted connection from {client_address[0]}:{client_address[1]}") clients.append(client_socket) client_thread = threading.Thread(target=handle_client, args=(client_socket,)) client_thread.start() ``` 在上述代码中,我们使用Python的socket模块来创建TCP服务器和客户端套接字,使用Python的threading模块来进行并发处理。我们定义了一个`broadcast`函数来广播消息给所有客户端,定义了一个`handle_client`函数来处理客户端连接,定义了一个`remove`函数来处理客户端断开连接。 在`handle_client`函数中,我们使用了一个死循环来持续处理客户端发送的消息。当接收到消息时,我们使用`broadcast`函数将该消息广播给所有客户端。当客户端断开连接时,我们使用`remove`函数将该客户端从客户端列表中移除。 在`__main__`函数中,我们创建服务器套接字,监听客户端连接。当有新的客户端连接时,我们将其添加到客户端列表中,并使用一个新的线程来处理该客户端连接。 这是一个简单的跨主机Python+TCP实现多人聊天室的示例代码,你可以在此基础上进行扩展和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值