让rsync客户端自动与服务器同步数据
描述:服务器是重量级应用,所以数据的网络备份还是极为重要的。我们可以在生产型服务器上配置好rsync 服务器。我们可以把一台装有rysnc机器当做是备份服务器。让这台备份服务器,每天在早上4点开始同步服务器上的数据;并且每个备份都是完整备份。有时 硬盘坏掉,或者服务器数据被删除,完整备份还是相当重要的。这种备份相当于每天为服务器的数据做一个镜像,当生产型服务器发生事故时,我们可以轻松恢复数 据,能把数据损失降到最低;是不是这么回事?
step1:创建同步脚本和密码文件
#mkdir /etc/cron.daily.rsync #cd /etc/cron.daily.rsync #touch rhel4home.sh rhel4opt.sh #chmod 755 /etc/cron.daily.rsync/*.sh #mkdir /etc/rsyncd/ #touch /etc/rsyncd/rsyncrhel4root.secrets #touch /etc/rsyncd/rsyncrhel4easylife.secrets #chmod 600 /etc/rsyncd/rsync.*
注: 我们在 /etc/cron.daily/中创建了两个文件rhel4home.sh和rhel4opt.sh ,并且是权限是755的。创建了两个密码文件root用户用的是rsyncrhel4root.secrets ,easylife用户用的是 rsyncrhel4easylife.secrets,权限是600;
我们编辑rhel4home.sh,内容是如下的:
#!/bin/sh #backup 192.168.145.5:/home /usr/bin/rsync -avzP --password-file=/etc/rsyncd/rsyncrhel4root.password root@192.168.145.5::rhel4home /home/rhel4homebak/$(date +'%m-%d-%y') 我们编辑 rhel4opt.sh ,内容是: #!/bin/sh #backup 192.168.145.5:/opt /usr/bin/rsync -avzP --password-file=/etc/rsyncd/rsyncrhel4easylife.secrets easylife@192.168.145.5::rhel4opt /home/rhel4hoptbak/$(date +'%m-%d-%y')
注:你可以把rhel4home.sh和rhel4opt.sh的内容合并到一个文件中,比如都写到rhel4bak.sh中
接着我们修改 /etc/rsyncd/rsyncrhel4root.secrets和rsyncrhel4easylife.secrets的内容;
# echo "mike" > /etc/rsyncd/rsyncrhel4root.secrets # echo "keer"> /etc/rsyncd/rsyncrhel4easylife.secrets
然后我们再/home目录下创建rhel4homebak 和rhel4optbak两个目录,意思是服务器端的rhel4home数据同步到备份服务器上的/home/rhel4homebak 下,rhel4opt数据同步到 /home/rhel4optbak/目录下。并按年月日归档创建目录;每天备份都存档;
#mkdir /home/rhel4homebak
#mkdir /home/rhel4optbak
step2:修改crond服务器的配置文件 加入到计划任务
#crontab -e 加入下面的内容: # Run daily cron jobs at 4:10 every day backup rhel4 data: 10 4 * * * /usr/bin/run-parts /etc/cron.daily.rsync 1> /dev/null
注:第一行是注释,是说明内容,这样能自己记住。
第二行表示在每天早上4点10分的时候,运行 /etc/cron.daily.rsync 下的可执行脚本任务;
配置好后,要重启crond 服务器:
# killall crond 注:杀死crond 服务器的进程; # ps aux |grep crond 注:查看一下是否被杀死; # /usr/sbin/crond 注:启动 crond 服务器; # ps aux |grep crond 注:查看一下是否启动了? root 3815 0.0 0.0 1860 664 ? S 14:44 0:00 /usr/sbin/crond root 3819 0.0 0.0 2188 808 pts/1 S+ 14:45 0:00 grep crond