使用 rsync 实现生产数据的增量备份
0x01 使用实例
利用rsync完成增量备份的脚本:
[root@yunwei-beifen beifen]# cat beifen-tool/rsync-100-20-**-**.sh
#!/bin/bash
execute_id=`uuidgen`
log_file="/nfsc/pocdev_vol_000094/beifen-data/100-20-**-**-log.d/`date '+%Y%m%d'`-execute.log"
echo 'Rsync script started time is :' `date` $execute_id >> $log_file
#删除DST端中在SRC已经删除或者不存在的目录,同时排除LOG目录,以降低备份服务器硬盘空间的占用
rsync -azuv --exclude-from='./rsync-100-20-**-**-Exclude.list' --bwlimit=1024 --delete --delete-after root@100.20.**.**:/home/admin /root/beifen/beifen-data/100-20-**-** >> $log_file
echo 'Rsync script finished time is :' `date` $execute_id >> $log_file
[root@yunwei-beifen beifen]#日志目录排除清单:
[root@yunwei-beifen beifen]# cat beifen-tool/rsync-100-20-**-**-Exclude.list
www/data/administrator/logs
...
atlassian/******/logs
...
.jenkins/logs
...
[root@yunwei-beifen beifen]#定时任务设置:
[root@yunwei-beifen beifen]# crontab -l
30 02 * * * /bin/bash /nfsc/pocdev_vol_000094/beifen-tool/rsync-100-20-**-**.sh &> /dev/zero
[root@yunwei-beifen beifen]#上述的脚本和定时任务配置,达到的效果是:在每天的凌晨两点半,开始比较备份服务器与生产服务器的数据(排除无用且数据量较大的日志),并按照对比的结果,将生产服务器昨日新产生的数据同步到备份服务器中,将生产服务器中已经删除的文件也在备份服务器中删除掉,以保证两端数据完全相同,同时输出同步日志到备份服务器相应的目录。备份机是私有云中的一台虚拟机,备份数据会写入到私有云中的NAS存储,备份脚本与日志也都保存在NAS存储中。
0x02 参数解释
这里只简要解释脚本中使用到的rsync参数:
rsync -azuv SRC/ DST/ :把SRC目录中的文件,同步到DST目录中。
| 参数 | 作用解释 |
|---|---|
| -a | 保留被同步文件的所有元数据,并递归 |
| -z | 传输文件时进行压缩以节省带宽 |
| -u | 跳过目标目录中更新的文件 |
| -v | 输出同步的细节 |
| –exclude-from=’./rsync-100-20-**-**-Exclude.list’ | 从指定文件中读取需要排除的目录、文件 |
| –bwlimit=1024 | 限速传输,单位为KB/s |
| –delete | 删除目标目录比源目录多余的文件 |
| –delete-after | 定义–delete动作的执行时机,即在所有文件传输完成后开始删除 |
| –progress | 在传输过程中显示进度 |
使用 rsync 实现生产数据的增量备份
https://srezone.open-space.cc/article/2279620328.html