如何使用Fabric模块编写的批量同步文件的python脚本?
程序员文章站
2022-03-29 20:47:51
在进行运维管理时,经常会遇到批量同步文件的场景,有关这个场景我们可以使用fabric模块编写python脚本来实现。 有关fabric的安装与介绍:
脚本模拟的是同步多台服务器的...
在进行运维管理时,经常会遇到批量同步文件的场景,有关这个场景我们可以使用fabric模块编写python脚本来实现。 有关fabric的安装与介绍:
脚本模拟的是同步多台服务器的/etc/hosts文件的内容。
首先,先查看该服务器的/etc/hosts文件内容:
要同步该内容的客户机,需要确保这两台服务器时可以通过网络连通的。
然后在知道要远程控制的多台服务器的IP和登录密码,使用fabric模块进行批量化操作。
在编写脚本时,先将有关模块进行调用。
from fabric.api import * from fabric.colors import * from fabric.context_managers import * # fabric.context_managers 是Fabric上下文管理器,这里使用是因为下面会用到with
定义有关变量,需要说明的是,这里我只在hosts中放置了一个元素,具体可以放置多个IP,以达到批量操作的目的:
env.user = 'root' env.hosts = ['192.168.0.114'] env.password = 'redhatpassword'
定义同步的函数,调用fabric的相关方法:
def put_hosts_file(): print yellow("rsync /etc/hosts File") with settings(warn_only = True): #出现异常时继续执行,不终止 put("/etc/hosts", "/etc/hosts") #put表示上传本地文件到远程主机 print green("rsync file success!")
最后使用循环调用函数就可以了:
for host in env.hosts: env.host_string = host put_hosts_file()
运行脚本后,在192.168.0.114上进行查看/etc/hosts文件是否一致。
表示已经同步成功。最后将脚本的完整版贴给大家。
上一篇: Python基础语法练习实例
下一篇: CentOs 编译php 遇到的一些问题
推荐阅读
-
使用python编写批量卸载手机中安装的android应用脚本
-
python-logging模块的简单使用:如何同时输出到控制台和本地日志文件
-
如何使用Fabric模块编写的批量同步文件的python脚本?
-
使用python编写批量卸载手机中安装的android应用脚本
-
使用python编写批量卸载手机中安装的android应用脚本
-
【网络教程】python如何使用git,gitpython模块的使用,git(gitpython)删除本地文件后,如何从远程仓库重新获取
-
使用python编写批量卸载手机中安装的android应用脚本
-
如何使用Fabric模块编写的批量同步文件的python脚本?