[Linux] 服务器镜像定时备份解决方案 crontab+rsync+flock

两台服务器定时同步文件解决方案:

环境:

主机:192.168.1.1 镜像机:192.168.1.2 需要将主机内容备份至镜像机(假设用户都为root)
备份内容为 /export 目录下所有内容至镜像机的/export目录下

首先,配置ssh免密登陆:

在镜像机上执行:ssh-keygen -t rsa
然后cat ~/.ssh/id_rsa.pub
将内容复制到主机的 ~/.ssh/authorized_keys下(最后一行最好是空行)
(这样一来主机就记住了镜像机的身份,镜像机即可免密登陆)

第二步,在镜像机写好同步脚本(使用rsync):

vim /root/backup_rsync
#/bin/bash
rsync -avuz root@192.168.1.1:/export/* /export >> /root/backup_rsync.log
(解释:参数a是归档模式,v为详细输出,u为只同步更新的文件或不存在的文件,z是同步时先压缩,然后将输出重定向到rsync.log文件中记录日志)

第三步,在镜像机配置crontab,使用flock文件锁防止同步脚本并发执行:

crontab -e
*/5 * * * * flock -xn /root/backup_rsync.lock -c /root/backup_rsync
(解释:-n为非阻塞模式,当试图设置锁失败,采用非阻塞模式,直接返回1,-c后跟要执行的命令,这里crontab每五分钟跑一次)

第四步,监控同步信息

tailf /root/backup_rsync.log

大功告成,可在主机上输入top观察rsync进程

上一篇:html5结合flash实现视频文件在所有主流浏览器兼容播放


下一篇:HttpApplication处理对象与HttpModule处理模块 (第三篇)