paramiko实现远程配置软件脚本
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,这篇文章运用了实例代码展示paramiko实现远程配置软件脚本,代码非常详细,可供感兴趣的小伙伴们参考借鉴,希望对大家有所帮助。# -*- coding: utf-8 -*-import parami
千家信息网最后更新 2025年12月03日paramiko实现远程配置软件脚本
这篇文章运用了实例代码展示paramiko实现远程配置软件脚本,代码非常详细,可供感兴趣的小伙伴们参考借鉴,希望对大家有所帮助。
# -*- coding: utf-8 -*-import paramikoimport sys, osimport datetimeimport subprocessimport timeimport reimport hashlibreload(sys)sys.setdefaultencoding("utf-8")os.environ["PATH"] = "/usr/local/jdk18/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin"os.environ["LANG"] = "en_US.UTF-8"ip_list = ["10.110.189.217","10.110.193.106"]class pub_filebeat(): def __init__(self): self.username = "redis" self.passwd = "123456" self.client_ssh = None self.sftpcliet = None self.port = 22 self.chan = None self.result = None # 创建一个ssh 链接 def create_ssh(self,ip): self.client_ssh = paramiko.SSHClient() self.client_ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) self.client_ssh.connect(ip, self.port, self.username, self.passwd, timeout=5) self.chan = self.client_ssh.invoke_shell() self.flag=None ''' 在现有的ssh链接的基础上获取一个ftp链接 方式一 : transport = self.client_ssh.get_transport() self.sftpcliet = paramiko.SFTPClient.from_transport(transport) 方式二 : self.sftpcliet = self.client_ssh.open_sftp() ''' # # transport = self.client_ssh.get_transport() # self.sftpcliet = paramiko.SFTPClient.from_transport(transport) self.sftpcliet = self.client_ssh.open_sftp() def execute(self,ip): try: self.sendcmd(" sudo su - ") if self.flag == 1: self.sendcmd("redis@yto369") self.sendcmd(" cd /home/redis ") self.sendcmd(" tar -zxvf filebeat623.tar.gz ") self.sendcmd(" sed -i 's/hostip: 10.1.241.99/hostip: %s/g' filebeat623/filebeat.yml ; " % (ip)) self.sendcmd(" nohup filebeat623/filebeat -e -c filebeat623/filebeat.yml > info.log 2>&1 & ") print "%s filebeat 部署完成" % (ip) except Exception,e: print e.message def tranfile(self): try: self.sftpcliet.put("F:\dwchaoyue\ELK\/filebeat623.tar.gz", '/home/redis/filebeat623.tar.gz') except Exception,e: print e.message self.sftpcliet.close() def sendcmd(self,cmd): cmd = cmd + '\r' p = re.compile(r'\[root@.+\s.*\]') self.result = "" self.chan.send(cmd) while True: time.sleep(0.5) ret = self.chan.recv(65535).decode("utf-8") self.result = self.result + ret if 'password' in self.result.split(" "): self.flag = 1 break if p.search(ret): break # 遍历ip 列表 def bianli(self,ip_list): for ip in ip_list: self.create_ssh(ip) if self.check_result() >= 1 : print "%s filebeat 已部署,无需重新部署" % (ip) continue pass self.tranfile() self.execute(ip) if self.check_result() < 1: print "%s filebeat 部署失败 ,请重试" % (ip) self.client_ssh.close() self.sftpcliet.close() def check_result(self): std_in,std_out,std_err = self.client_ssh.exec_command("ps -ef | grep -i filebeat | grep -v 'grep' | wc -l") return int(std_out.read())if __name__ == "__main__": try: pb = pub_filebeat() pb.bianli(ip_list) except Exception, e: print e关于paramiko实现远程配置软件脚本就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
链接
utf-8
脚本
软件
配置
代码
方式
更多
帮助
不错
兴趣
内容
基础
实例
小伙
小伙伴
文章
知识
篇文章
参考
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库输不了字符串
腾讯云数据库 本地备份
网络安全知识答题软件
服务器多ip如何切换使用
东莞莱思网络技术有限公司章程
什么专业能当网络安全工程师
五莲软件开发
网络安全安全运维题库
梦幻西游服务器排行榜
网络安全比赛简讯
网络安全运营项目
csgo服务器会炸怎么回事
高端服务器有什么用
网络安全态势系统
网络安全为网络强国建设
欢聚网络技术
服务器添加路由器
青岛手机app软件开发
网络安全调查方案
华为服务器故障码b03
服务器太差连不上怎么办
本次国家网络安全宣传周主题
win8数据库安装步骤
数据库如何减少依赖
数据库四大特性和事务隔离级别
基层单位网络安全自查报告
苏州采微互联网科技
苏州电话软件开发介绍
数据库处理技术经历了哪五个阶段
mgox4数据库连接断开