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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/746759.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于Transfomer的思考

为何诞生 在说transformer是什么,有什么优势之类的之前,先谈一谈它因何而诞生。transformer诞生最重要的原因是早先的语言模型,比如RNN,由于其本身的训练机制导致其并行度不高,特别是遇到一些长句子的情况下。其次&…

抖音开放平台第三方开发,实现代小程序备案申请

大家好,我是小悟 抖音小程序备案整体流程总共分为五个环节:备案信息填写、平台初审、工信部短信核验、通管局审核和备案成功。 服务商可以代小程序发起备案申请。在申请小程序备案之前,需要确保小程序基本信息已填写完成、小程序至少存在一个…

硬件笔记(26)---- 高速电路中滤波电容的选取

先要知道电容的等效电路 其中ESL取决于电容的类型和封装,一般用贴片陶瓷电容为例,对于直插式电解电容,他们的ESL很大。按下表,封装越大,ESL越大,但是0612有些例外 0612和1206就是 长短边的区别,…

什么是MVC三层结构

1.MVC(三层结构) MVC(Model-View-Controller)是一种常见的软件设计模式,用于将应用程序的逻辑和界面分离成三个不同的组件。每个组件负责特定的任务,从而提高代码的可维护性和可扩展性。 以前的模式。 遇到…

力扣_动态规划3—地下城游戏

题目 恶魔们抓住了公主并将她关在了地下城 dungeon 的 右下角 。地下城是由 m x n 个房间组成的二维网格。我们英勇的骑士最初被安置在 左上角 的房间里,他必须穿过地下城并通过对抗恶魔来拯救公主。 骑士的初始健康点数为一个正整数。如果他的健康点数在某一时刻…

一文解读ISO26262安全标准:功能安全管理

一文解读ISO26262安全标准:功能安全管理 1 安全生命周期1.1 概念阶段1.2 产品开发阶段1.3 生产发布后续阶段 2 安全管理的角色和职责3 安全活动的裁剪4 安全活动的评审5 安全活动的评估6 交付物 下文的表中,一些方法的推荐等级说明: “”表示…

【网络安全渗透】常见文件上传漏洞处理与防范

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 所属的专栏:网络安全渗透 景天的主页:景天科技苑 文章目录 1.文件上传漏洞1.1. 描述1.2. 危害1.3. 有关文件上传的知识1.4…

【兔子机器人】修改GO、车轮电机ID(软件方法、硬件方法)以及修正VMC腿部初始化夹角

一、GO电机修改ID 1、硬件方法 利用上位机直接修改GO电机的id号: 打开调试助手,点击“调试”,查询电机,修改id号,即可。 但先将四个GO电机连接线拔掉,不然会将连接的电机一并修改。 利用24V电源给GO电机…

Java_12 杨辉三角 II

杨辉三角 II 给定一个非负索引 rowIndex,返回「杨辉三角」的第 rowIndex 行。 在「杨辉三角」中,每个数是它左上方和右上方的数的和。 示例 1: 输入: rowIndex 3 输出: [1,3,3,1] 示例 2: 输入: rowIndex 0 输出: [1] 示例 3: 输入: rowIndex 1 输…

【应急响应靶场web2】

文章目录 前言 一、应急响应 1、背景 2、webshell查杀 3、日志排查 1)apache日志 2)nginx日志 3)ftp日志 4、隐藏账户 5、文件筛选 二、漏洞复现 总结 前言 靶场来源:知攻善防实验室 一、应急响应 1、背景 小李在某…

VMware 配置虚拟机网络

之前需要完成的任务 (1)、下载和安装VMware-Workstation-Pro.exe软件,推荐16.0版本 (2)、下载centOS7镜像,可以在阿里云下载。 (3)、VM创建一个虚拟机,并且使用本地已下载…

中东社媒Snapchat如何注册?

Snapchat是一款图片分享软件应用。利用该应用程序,用户可以拍照、录制影片、撰写文字和图画,并传送到自己在该应用上的好友列表。现如今,Snapchat也成为独立战引流然而,即使如此受欢迎,Snapchat的注册使用仍然是新手的难题&#x…

Elasticsearch8.x版本Java客户端Elasticsearch Java API Client中常用API练习

Es的java API客户端 在Es7.15版本之后,es官方将它的高级客户端RestHighLevelClient标记为弃用状态。同时推出了全新的java API客户端Elasticsearch Java API Client,该客户端也将在Elasticsearch8.0及以后版本中成为官方推荐使用的客户端。 Elasticsea…

Java基于 Springboot+Vue 的招生管理系统,前后端分离

博主介绍:✌程序员徐师兄、8年大厂程序员经历。全网粉丝15w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

【全志H616】1 --用orangepi控制硬件

【全志H616】1 --用orangepi控制硬件 本文介绍了如歌用orangepi 控制蜂鸣器&超声波模块,通过键盘输入1、2、3、4来控制转动角度舵机模块;同时还介绍了利用全志如何配置定时器;以及查看H616引脚状态的命令等… 超声波模块和舵机模块的讲解…

德人合科技 | 公司办公终端、电脑文件资料 \ 数据透明加密防泄密管理软件系统

天锐绿盾是一款全面的企业级数据安全解决方案,它专注于为企业办公终端、电脑文件资料提供数据透明加密防泄密管理。 首页 德人合科技——www.drhchina.com 这款软件系统的主要功能特点包括: 1. **透明加密技术**: 天锐绿盾采用了透明加密技…

Android Gradle 编译过程中的优化

} 但是反射没有办法能很好的识别,所以如果代码中有使用反射需要自行处理,以免被删除。 shrink resource 功能 shrink code流程执行完后删除了无用的代码后,就能确认哪些资源文件没有使用,shrink resource流程就是确定哪些资源…

DB107-ASEMI智能LED灯具专用DB107

编辑:ll DB107-ASEMI智能LED灯具专用DB107 型号:DB107 品牌:ASEMI 封装:DB-4 正向电流(Id):1A 反向耐压(VRRM):1000V 正向浪涌电流:50A 正…

【大厂秋招高频算法】阿里秋招高频算法题汇总

欢迎关注公众号(通过文章导读关注:【11来了】),及时收到 AI 前沿项目工具及新技术的推送! 在我后台回复 「资料」 可领取编程高频电子书! 在我后台回复「面试」可领取硬核面试笔记! 文章导读地址…

BERT:深度学习领域中的语言理解利器

BERT:深度学习领域中的语言理解利器 摘要 BERT(双向编码器表示法自转换器)是一种领先的深度学习模型,它在许多语言理解任务中都显示出卓越的性能。BERT模型基于转换器编码器架构,并通过自监督学习在大量未标记文本数…