paramiko实现远程配置软件脚本
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,这篇文章运用了实例代码展示paramiko实现远程配置软件脚本,代码非常详细,可供感兴趣的小伙伴们参考借鉴,希望对大家有所帮助。# -*- coding: utf-8 -*-import parami
千家信息网最后更新 2025年02月01日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安全错误
数据库的锁怎样保障安全
辽宁软件开发排行
k7软件开发环境
数据库如何读取byte[]
奉新软件开发
广州地区软件开发企业排名
智能化软件开发公司
嘉兴app软件开发项目
云南中小学生网络安全知识竞赛
英国的软件开发专业
贵州首选dns服务器怎么填
显示服务器连接不稳定
计算机网络技术中专难吗
打印机服务器 固网
云免流服务器
镍数据库
gis资源软件开发设计
软件开发市场
多线程服务器响应请求时间
软件开发有前途吗值得吗
斯沃数控服务器安装不了
软件和网络技术哪个好就业
网络安全工程师是做什么的呀
无法解析小米电视服务器地址
代办软件开发公司注册
在mysql数据库安全中
美帮帮互联网科技有限公司
打印机服务器 固网
网页数据库建立
一汽汽车金融服务器异常
服务器I和E的区别