使用Fabric模块编写的批量同步文件的python脚本

98 篇文章 1 订阅
19 篇文章 0 订阅

在进行运维管理时,经常会遇到批量同步文件的场景,有关这个场景我们可以使用fabric模块编写python脚本来实现。 有关fabric的安装与介绍,我前面的头条文章都有讲,大家有兴趣可以想前看看。运维工具之轻量级自动化运维工具Fabric源码安装 ,还有:Linux轻量级自动化运维工具Fabric命令行入口fab基本使用

脚本模拟的是同步多台服务器的/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文件是否一致。

表示已经同步成功。最后将脚本的完整版贴给大家。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值