性能工具部署 - 自动在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

相关文章

基于Python实现一个图片拆分工具

《基于Python实现一个图片拆分工具》这篇文章主要为大家详细介绍了如何基于Python实现一个图片拆分工具,可以根据需要的行数和列数进行拆分,感兴趣的小伙伴可以跟随小编一起学习一下... 简单介绍先自己选择输入的图片,默认是输出到项目文件夹中,可以自己选择其他的文件夹,选择需要拆分的行数和列数,可以通过

Python使用pip工具实现包自动更新的多种方法

《Python使用pip工具实现包自动更新的多种方法》本文深入探讨了使用Python的pip工具实现包自动更新的各种方法和技术,我们将从基础概念开始,逐步介绍手动更新方法、自动化脚本编写、结合CI/C... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

SpringBoot+Docker+Graylog 如何让错误自动报警

《SpringBoot+Docker+Graylog如何让错误自动报警》SpringBoot默认使用SLF4J与Logback,支持多日志级别和配置方式,可输出到控制台、文件及远程服务器,集成ELK... 目录01 Spring Boot 默认日志框架解析02 Spring Boot 日志级别详解03 Sp

Python使用OpenCV实现获取视频时长的小工具

《Python使用OpenCV实现获取视频时长的小工具》在处理视频数据时,获取视频的时长是一项常见且基础的需求,本文将详细介绍如何使用Python和OpenCV获取视频时长,并对每一行代码进行深入解析... 目录一、代码实现二、代码解析1. 导入 OpenCV 库2. 定义获取视频时长的函数3. 打开视频文

SQL Server配置管理器无法打开的四种解决方法

《SQLServer配置管理器无法打开的四种解决方法》本文总结了SQLServer配置管理器无法打开的四种解决方法,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录方法一:桌面图标进入方法二:运行窗口进入检查版本号对照表php方法三:查找文件路径方法四:检查 S

Linux中压缩、网络传输与系统监控工具的使用完整指南

《Linux中压缩、网络传输与系统监控工具的使用完整指南》在Linux系统管理中,压缩与传输工具是数据备份和远程协作的桥梁,而系统监控工具则是保障服务器稳定运行的眼睛,下面小编就来和大家详细介绍一下它... 目录引言一、压缩与解压:数据存储与传输的优化核心1. zip/unzip:通用压缩格式的便捷操作2.

Java内存分配与JVM参数详解(推荐)

《Java内存分配与JVM参数详解(推荐)》本文详解JVM内存结构与参数调整,涵盖堆分代、元空间、GC选择及优化策略,帮助开发者提升性能、避免内存泄漏,本文给大家介绍Java内存分配与JVM参数详解,... 目录引言JVM内存结构JVM参数概述堆内存分配年轻代与老年代调整堆内存大小调整年轻代与老年代比例元空

Linux中SSH服务配置的全面指南

《Linux中SSH服务配置的全面指南》作为网络安全工程师,SSH(SecureShell)服务的安全配置是我们日常工作中不可忽视的重要环节,本文将从基础配置到高级安全加固,全面解析SSH服务的各项参... 目录概述基础配置详解端口与监听设置主机密钥配置认证机制强化禁用密码认证禁止root直接登录实现双因素

浏览器插件cursor实现自动注册、续杯的详细过程

《浏览器插件cursor实现自动注册、续杯的详细过程》Cursor简易注册助手脚本通过自动化邮箱填写和验证码获取流程,大大简化了Cursor的注册过程,它不仅提高了注册效率,还通过友好的用户界面和详细... 目录前言功能概述使用方法安装脚本使用流程邮箱输入页面验证码页面实战演示技术实现核心功能实现1. 随机

嵌入式数据库SQLite 3配置使用讲解

《嵌入式数据库SQLite3配置使用讲解》本文强调嵌入式项目中SQLite3数据库的重要性,因其零配置、轻量级、跨平台及事务处理特性,可保障数据溯源与责任明确,详细讲解安装配置、基础语法及SQLit... 目录0、惨痛教训1、SQLite3环境配置(1)、下载安装SQLite库(2)、解压下载的文件(3)、