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/ |