Python3 写的远程批量修改文件内容的脚本
2017-12-29 17:59
645 查看
Python3 写的远程批量修改文件内容的脚本
一、说明:
1、利用Python的paramiko模块,调用远程的shell命令去修改相应文件。
2、有一个专用配置文件,列出服务器清单。
3、Python循环读取配置文件的服务器IP去连接它,并执行相应的命令。
4、主要是有一个正则,匹配Zabbix agent中的IP设置。
[root@mysql-m ~]# sed -i 's/^Server=[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*/Server=33.66.88.99/g' zabbix_agentd.conf
脚本的内容如下:
#! /usr/bin/env python # -*- coding: utf-8 -*- # __author__ = "life" # Email: batistuta1977@163.com # Date: 2017/12/28 import paramiko list_file_content = [] def read_file(): with open('ip-list','rU',encoding='utf-8') as f1: for i in f1.readlines(): list_file_content.append(i.strip()) print(list_file_content) def ssh_conn(hosts): for host in hosts: print(host) ssh = paramiko.SSHClient() # 创建ssh对象 # 允许连接不在know_hosts文件中的主机 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 连接服务器 ssh.connect(hostname=host, port=22, username='root', password='1') # 执行追加文件内容命令 # stdin, stdout, stderr = ssh.exec_command("echo 'nameserver 172.16.50.11' >> /tmp/1.txt") # stdin,stdout,stderr = ssh.exec_command("echo 'nameserver 172.18.50.11\n' >> /tmp/1.txt") # 修改zabbix agent内容 stdin, stdout, stderr = ssh.exec_command\ ("sed -i 's/^Server=[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*/Server=33.66.88.99/g' /etc/zabbix/zabbix_agentd.conf") if __name__ == '__main__': read_file() ssh_conn(list_file_content)
结果如下:
posted @ 2017-12-29 17:59 ld1977 阅读(...) 评论(...) 编辑 收藏
相关文章推荐
- LINUX下批量修改文件内容脚本
- python写的批量操作远程主机脚本(命令执行,上传、下载文件)
- 批量修改cvs下面所有Root文件的python脚本
- Python脚本之批量实现文件内容追加
- Python 远程批量修改密码脚本
- python写的批量操作远程主机脚本(命令执行,上传、下载文件)
- Python 脚本 批量删除目录下文件的特定内容
- python写的批量操作远程主机脚本(命令执行,上传、下载文件)
- python批量修改文件夹及其子文件夹下的文件内容
- Python批量修改文本文件内容的方法
- python写的批量操作远程主机脚本(命令执行,上传、下载文件)
- 利用python fabric模块写的批量操作远程主机脚本(命令执行,上传、下载文件)
- Python批量修改文本文件内容的方法
- 批量修改多个文件内容的脚本
- lunix下shell脚本批量获取文件,批量修改文件内容
- Python批量修改指定目录下的文件名和文件内容
- python写的批量操作远程主机脚本(命令执行,上传、下载文件)
- python写的批量操作远程主机脚本(命令执行,上传、下载文件)
- 批量修改文件名称或者文件内容的shell脚本
- Python脚本- 递归遍历文件夹,获取指定扩展名文件,修改文件内容