性能工具部署 - 自动在30多台机器上部署发流工具,并自动配置各自的参数,一键控制所有节点工具的启动、停止、重启

本文主要是介绍性能工具部署 - 自动在30多台机器上部署发流工具,并自动配置各自的参数,一键控制所有节点工具的启动、停止、重启,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

需求1:脚本快速上传文件到制定目录并解压

import paramiko
import scp
import os
import pexpect# SSH连接信息
ssh_host = '162.14.xx'
ssh_port = 22  # 默认的SSH端口
ssh_username = 'root'  # 登录用户名
ssh_password = 'xx'  # 登录密码
sudo_password = 'xx'  # 登录密码# 本地zip文件路径
local_zip_path = './file.zip'# 远程虚拟机的目标路径
remote_zip_path = '/root'
remote_unzip_path = '/home/paasuser'  # 解压的目标目录
remote_conf_path = '/home/paasuser/file/test.conf'  # 要修改的文件的路径def put_gb(ssh_host=ssh_host):# 创建SSH客户端对象ssh = paramiko.SSHClient()# 允许连接不在know_hosts文件中的主机ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())try:# 连接SSH服务器ssh.connect(ssh_host, port=ssh_port, username=ssh_username, password=ssh_password)# 使用SCP上传zip文件with scp.SCPClient(ssh.get_transport()) as scp_client:scp_client.put(local_zip_path, remote_zip_path)# 发送命令到远程服务器解压zip文件stdin, stdout, stderr = ssh.exec_command(f'unzip {remote_zip_path}/file.zip -d {remote_unzip_path}')print(stdout.read().decode())print(stderr.read().decode())except paramiko.AuthenticationException:print("Authentication failed, please verify your credentials")except paramiko.SSHException as sshException:print(f"Unable to establish SSH connection: {sshException}")except Exception as e:print(f"Error: {e}")finally:# 关闭SSH连接ssh.close()if __name__ == '__main__':# 上传一个文件到服务器下并解压put_gb(ssh_host="xxx")# # 上传所有文件到服务器下# # 所有服务器的IP值# list1 = []# for i in list1:#     put_gb(ssh_host=i)

需求2:根据excel配置好的参数,修改32个节点每个工具的参数值;
1、在excel中输出一张表,该表内容包含各个虚拟机节点的IP、要配置的文件各个参数的值
2、读取excel中的每一行的数据,拿到第一行数据,开始连接第一行的虚拟机,切root,修改指定文件的参数值,值从表格中获取。校验,配置完成。
3、重复执行32次,完成工具的快速部署。

import openpyxl
import pandas"""
从excel中获取数据信息
"""import pandas as pd# Excel文件路径
file_path = 'example.xlsx'# 使用pandas的read_excel函数读取Excel文件
# 这里假设Excel文件使用的是.xlsx格式,且第一行是列名
# 如果不是,则需要相应地调整header参数
df = pd.read_excel(file_path, engine='openpyxl')# 获取第一行的数据
# 注意:Python中索引是从0开始的,所以第一行的索引是0
first_row_data = df.iloc[0]# 输出第一行的数据
print(first_row_data)
"""
姓名     张三
年龄     12
身高    1.5
Name: 0, dtype: object
"""# 输出第一行指定列的值
print("打印第一个的信息")
print(first_row_data["姓名"])
print(first_row_data["年龄"])
"""
打印第一个的信息
张三
12
"""
import paramiko
import scp
import os
import pexpect"""
修改一个文件的参数
"""ssh_host = '162.14.xx'
ssh_port = 22  # 默认的SSH端口
ssh_username = 'root'  # 登录用户名
ssh_password = 'xx'  # 登录密码
sudo_password = 'xx'  # 登录密码
remote_conf_path = '/home/paasuser/file/test.conf'  # 要修改的文件的路径# 使用pexpect切换到root用户并输入密码
child = pexpect.spawn('ssh', [ssh_username + '@' + ssh_host, '-p', str(ssh_port), '-tt'])
child.expect('password:')
child.sendline(ssh_password)
child.expect('$')
child.sendline('sudo -i')
child.expect('\[sudo\] password for ' + ssh_username + ':')
child.sendline(sudo_password)
child.expect('#')# 使用pexpect发送命令修改test.conf文件中的Aa字段值
sed_command = f'sed -i "s/^Aa *= *.*$/Aa = 111/" {remote_conf_path}'
child.sendline(sed_command)
child.expect('#')# 退出root shell
child.sendline('exit')
child.expect(pexpect.EOF)"""
修改所有服务器文件的参数
1、读取excel数据,将{”IP1“:{参数1:值1,参数2:值2,参数3:值3}, "IP2":{参数1:值1,参数2:值2,参数3:值3}}
2、读取第一行数据,连接第一个服务器,切root后修改这个服务器test.conf文件的相关参数值
3、读取第二行数据,连接第二个服务器,一样的操作,值不一样"""

需求3:脚本一键启动、停止所有相机,每个启动时间间隔2分钟。

需求4:脚本定时重启32个节点的发流工具

import paramiko
import scp
import os
import pexpect# SSH连接信息
ssh_host = '162.14.xx'
ssh_port = 22  # 默认的SSH端口
ssh_username = 'root'  # 登录用户名
ssh_password = 'xx'  # 登录密码
sudo_password = 'xx'  # 登录密码# 本地zip文件路径
local_zip_path = './file.zip'# 远程虚拟机的目标路径
remote_zip_path = '/root'
remote_unzip_path = '/home/paasuser'  # 解压的目标目录
remote_conf_path = '/home/paasuser/file/'  # 要修改的文件的路径def put_gb(ssh_host=ssh_host):# 创建SSH客户端对象ssh = paramiko.SSHClient()# 允许连接不在know_hosts文件中的主机ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())try:# 连接SSH服务器ssh.connect(ssh_host, port=ssh_port, username=ssh_username, password=ssh_password)# 使用SCP上传zip文件with scp.SCPClient(ssh.get_transport()) as scp_client:scp_client.put(local_zip_path, remote_zip_path)# 发送命令到远程服务器解压zip文件stdin, stdout, stderr = ssh.exec_command(f'cd {remote_conf_path}')stdin, stdout, stderr = ssh.exec_command(f'sh restart.sh')print(stdout.read().decode())print(stderr.read().decode())except paramiko.AuthenticationException:print("Authentication failed, please verify your credentials")except paramiko.SSHException as sshException:print(f"Unable to establish SSH connection: {sshException}")except Exception as e:print(f"Error: {e}")finally:# 关闭SSH连接ssh.close()if __name__ == '__main__':# 上传一个文件到服务器下并解压put_gb(ssh_host="xxx")# # 上传所有文件到服务器下# # 所有服务器的IP值# list1 = []# for i in list1:#     put_gb(ssh_host=i)

这篇关于性能工具部署 - 自动在30多台机器上部署发流工具,并自动配置各自的参数,一键控制所有节点工具的启动、停止、重启的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/811893

相关文章

ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法

《ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法》本文介绍了Elasticsearch的基本概念,包括文档和字段、索引和映射,还详细描述了如何通过Docker... 目录1、ElasticSearch概念2、ElasticSearch、Kibana和IK分词器部署

部署Vue项目到服务器后404错误的原因及解决方案

《部署Vue项目到服务器后404错误的原因及解决方案》文章介绍了Vue项目部署步骤以及404错误的解决方案,部署步骤包括构建项目、上传文件、配置Web服务器、重启Nginx和访问域名,404错误通常是... 目录一、vue项目部署步骤二、404错误原因及解决方案错误场景原因分析解决方案一、Vue项目部署步骤

Linux流媒体服务器部署流程

《Linux流媒体服务器部署流程》文章详细介绍了流媒体服务器的部署步骤,包括更新系统、安装依赖组件、编译安装Nginx和RTMP模块、配置Nginx和FFmpeg,以及测试流媒体服务器的搭建... 目录流媒体服务器部署部署安装1.更新系统2.安装依赖组件3.解压4.编译安装(添加RTMP和openssl模块

Springboot中分析SQL性能的两种方式详解

《Springboot中分析SQL性能的两种方式详解》文章介绍了SQL性能分析的两种方式:MyBatis-Plus性能分析插件和p6spy框架,MyBatis-Plus插件配置简单,适用于开发和测试环... 目录SQL性能分析的两种方式:功能介绍实现方式:实现步骤:SQL性能分析的两种方式:功能介绍记录

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

redis群集简单部署过程

《redis群集简单部署过程》文章介绍了Redis,一个高性能的键值存储系统,其支持多种数据结构和命令,它还讨论了Redis的服务器端架构、数据存储和获取、协议和命令、高可用性方案、缓存机制以及监控和... 目录Redis介绍1. 基本概念2. 服务器端3. 存储和获取数据4. 协议和命令5. 高可用性6.

TP-Link PDDNS服将于务6月30日正式停运:用户需转向第三方DDNS服务

《TP-LinkPDDNS服将于务6月30日正式停运:用户需转向第三方DDNS服务》近期,路由器制造巨头普联(TP-Link)在用户群体中引发了一系列重要变动,上个月,公司发出了一则通知,明确要求所... 路由器厂商普联(TP-Link)上个月发布公告要求所有用户必须完成实名认证后才能继续使用普联提供的 D

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

Android里面的Service种类以及启动方式

《Android里面的Service种类以及启动方式》Android中的Service分为前台服务和后台服务,前台服务需要亮身份牌并显示通知,后台服务则有启动方式选择,包括startService和b... 目录一句话总结:一、Service 的两种类型:1. 前台服务(必须亮身份牌)2. 后台服务(偷偷干

浅析如何使用Swagger生成带权限控制的API文档

《浅析如何使用Swagger生成带权限控制的API文档》当涉及到权限控制时,如何生成既安全又详细的API文档就成了一个关键问题,所以这篇文章小编就来和大家好好聊聊如何用Swagger来生成带有... 目录准备工作配置 Swagger权限控制给 API 加上权限注解查看文档注意事项在咱们的开发工作里,API