Pyrsync使用说明
Pyrsync
调用rsync同步文件,从yaml文件读取配置。简化rsync使用,和方便管理备份项更改。未来将提供web界面添加yaml配置。
安装依赖
sudo pip install -r requirements.txt
sudo yum install -y rsync
使用说明
新建项目yaml配置文件
cp playbook/default.yaml.template playbook/default.yaml
配置好项目使用哪个账户复制,ip、备份目录之类的。
要提前做好要备份的主机公钥认证,好让rsync不用输入密码。
执行 ./pyrsync.py
yaml配置文件说明
actor
项说明
项 | 作用 |
---|---|
name | 做了ssh公钥认证登录的用户 |
IP | 要备份的内容所在的服务器IP |
port | ssh端口 |
action | rsync的参数项可以自由写 如:-avz –delete |
execute
项说明 脚本统一放在script
目录
填写脚本文件名,理论支持shell,Python等,
一定要在脚本开头定义好解析器。如bash #!/bin/bash
项 | 作用 |
---|---|
pre-local | 同步前在本机执行 |
pre-remote | 同步前在远程机执行 |
post-remote | 同步后在远程机执行 |
post-local | 同步后在本机执行 |
playbook
剧本sences
场景项说明一个场景配置一个目录、和一个排除文件,排除文件目录在
exclude
,填写文件名即可。排除支持通配符,一行一个筛选项。cvs.txt是例子。
项 | 作用 |
---|---|
item | 要备份的目录 |
savepath | 保存到本地的目录 |
exclude | 描述排除文件的文件名 在exclude目录 |
使用场景
我要定时对 192.168.168.19上的三个项目的uploads目录进行同步备份。
分别是
- /data/web1/uploads
- /data/web2/uploads
- /data/web3/uploads
还要定时导出MySQL数据库test2,到/data/sql
,并同步备份过来。但是过滤掉.git
目录、.svn
目录。
备份内容保存到本地 /backup/node1
目录
根据上面信息,可以配置一个如下的yaml文件。
test.yaml
(名字可以随意取,后缀一定得是yaml)
1 | actor: |
上面pre-remote
的test.sh内容如下
1 |
|
备份前目录情况如下:
远程机/data/ :
1 | /data |
本机 /backup/node1/:
1 | node1 |
现在执行./pyrsync.py
执行后
1 | /backup/ |