Jenkins 备份
Jenkins 备份
Jenkins 备份
采用inotify+rsync技术
1. rsync简介
rsync是linux系统下的数据同步工具。使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH、rsync主机同步。
2. rsync命令的常用选项
//rsync常用选项:
-r --recursive:递归到目录中去。
-D :是"–device --specials"选项的组合,即也拷贝设备文件和特殊文件。
-l --links:如果文件是软链接文件,则拷贝软链接本身而非软链接所指向的对象。
–port :连接daemon时使用的端口号,默认为873端口。
–password-file:daemon模式时的密码文件,可以从中读取密码实现非交互式。注意,这不是远程shell认证的密码,而是rsync模块认证的密码。
-v:显示rsync过程中详细信息。可以使用"-vvvv"获取更详细信息。
-z :传输时进行压缩提高效率。
rsync有多种运行方式;我们使用本地主机通过网络套接字连接远程主机上的rsync daemon。
命令行语法格式为:
Access via rsync daemon:
Push: rsync [OPTION…] SRC… [[email protected]]HOST::DEST
命令示例:
rsync -rltDvz --delete --timeout=100 --password-file=${password} $src
u
s
e
r
@
[email protected]
user@host::$des
Server端配置:/etc/rsyncd.conf
rsyncd启动停止
systemctl start rsyncd
rsync-client端(10.200.200.181):
备份脚本以及替换文件存放路径:/app/jenkins_bak
crontab 定时任务:0 23 * * * /bin/bash /app/jenkins_bak/echo2_inotify.sh
3. inotify简介
Inotify是一种强大的、细粒度的、异步的文件系统事件监控机制,linux内核从2.6.13起,加入了Inotify支持,通过Inotify可以监控文件系统中添加、删除,修改、移动等各种细微事件,利用这个内核接口,第三方软件就可以监控文件系统下文件的各种变化情况,而inotify-tools就是这样的一个第三方软件。
4. 方案验证
经过最终验证,发现我们的需求并不需要进行实时的数据备份,所以最终未采用inotify-tools技术,
仅使用rsync + crontab方式进行每日定时备份。
参考资料
rsync
https://www.cnblogs.com/f-ck-need-u/p/7220009.html
https://www.jb51.net/article/31920.htm
inotify
https://blog.****.net/fd8559350/article/details/78293671