paramiko实现远程配置软件脚本
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章运用了实例代码展示paramiko实现远程配置软件脚本,代码非常详细,可供感兴趣的小伙伴们参考借鉴,希望对大家有所帮助。# -*- coding: utf-8 -*-import parami
千家信息网最后更新 2026年11月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安全错误
数据库的锁怎样保障安全
互联网黑科技
哈尔滨大商圈互联网科技有限公司
中国互联网科技工作委员会毛军
互联网科技公司税收优惠
互联网科技社
深圳科技互联网
互联网科技类展会
科技伦理 互联网公司
互联网科技公司招聘
卫星互联网科技股票
团飞科技与伯堂互联网服务平台
互联网企业和科技型企业
金融科技与互联网金融相同和不同
移动互联网科技公司
佛山市翊博互联网络科技有限公司
长沙互联网科技
恒生互联网科技业指数调整周期
美国互联网科技公司
工业互联网科技成果转化
互联网公司属于科技吗
博彦科技互联网金融
互联网科技资迅
互联网科技博主是什么意思
哈尔滨新华互联网科技学院
互联网金融科技公司干啥的
贵州叶脉互联网科技有限公司所属行业
阿里互联网科技企业
互联网科技如何创业
上海创道互联网络科技有限公司
科技美学互联网 艺术