linux学习笔记-rsync+crond定时备份服务

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux学习笔记-rsync+crond定时备份服务相关的知识,希望对你有一定的参考价值。

定时备份数据方案

第1章 备份要求

公司里有一台Web服务器,里面的数据很重要,但是如果硬盘坏了,数据就会丢失,现在领导要求你把数据在其他机器上做一个周期性定时备份。要求如下:

每天晚上00点整在Web服务器A上打包备份系统配置文件、网站程序目录及访问日志,并通过rsync命令推送到服务器B上备份保留(备份思路可以是先在本地按日期打包,然后再推送到备份服务器B上)。

具体要求如下:

1)web服务器A和备份服务器B的备份目录必须都为/backup

2)要备份的系统配置文件包括但不限于:

a.      定时任务的配置文件(/var/spool/cron/root)

b.     开机自启动的配置文件(/etc/rc.local)

c.      日常脚本的目录(/service/scripts)

d.     防火墙iptables的配置文件(/etc/sysconfig/iptables)

3)web服务器站点目录假定为(/var/html/www)

4)web服务器A访问日志路径假定为(/app/logs)

5)web服务器保留打包后的7天的备份数据即可(本地留存不能多于7天,因为太多硬盘会满)

6)备份服务器B按照备份数据服务器的IP地址命名备份文件夹,周六的数据都保留,其他备份仅保留180天的备份。

7)备份服务器B上检查备份结果是否正常,并将每天的备份结果发给管理员。

 

第2章 实现思路

2.1文件打包命令

  打包命令:tar -zxvf name.tar.gz $file

举例:打包文件/etc/hosts/back目录,打包文件名为test.tar.gz

[[email protected] ~]# ls /backup/
[[email protected] ~]#
[[email protected] /]# cd /&& tar -zcvf /backup/test.tar.gz etc/hosts
etc/hosts
[[email protected] /]# ls /backup/
test.tar.gz

2.2按日期打包

获取当前日期的命令:date+%F

举例:打包文件/etc/hosts/back目录,打包文件名按日期区分

[[email protected] /]# cd / && tar -zcvf/backup/$(date +%F).tar.gz etc/hosts
etc/hosts
[[email protected] /]# ls /backup/
2017-11-04.tar.gz test.tar.gz

2.3周六包特别命名

因为服务器需要保留周六的文件包,所以在打包周六的文件时,需要给文件特殊命名,以便区分。

[[email protected] /]# cd / && tar -zcvf/backup/$(date +%F)_week6.tar.gz etc/hosts
etc/hosts
[[email protected] /]# ls /backup/
2017-11-04.tar.gz 2017-11-04_week6.tar.gz test.tar.gz

2.4上传文件到服务器

通过rsync服务将文件上传到备份服务器的指定的目录,安装Rsync服务的步骤参省略。

测试上传:

[[email protected] /]# rsync -avz /backup/$(date+%F).tar.gz [email protected]::backup --password-file=/etc/rsync.password
sending incremental file list
2017-11-04.tar.gz
 
sent 305 bytes received 27 bytes  664.00bytes/sec
total size is 223 speedup is 0.67

注意:将打包文件放在/backup/本地IP/目录下,再将整个IP目录上传

2.5数据校验

  命令:md5sum

md5sum有数据校验的功能,具体做法是用md5sum命令对文件生成一个校验码,然后将这个校验码放在一个任意文件中,再使用md5sum -c参数来检查是否有变动。具体做法如下:

  • 对文件生成一个校验文件:

[[email protected] backup]# ls
2017-11-04.tar.gz
[[email protected] backup]# md5sum2017-11-04.tar.gz 
b29cee519b7991a429c353b11c01d533  2017-11-04.tar.gz
[[email protected] backup]# md5sum 2017-11-04.tar.gz> md5sum_check   #<==生成唯一的校验码并写入到文件中
[[email protected] backup]# cat md5sum_check
b29cee519b7991a429c353b11c01d533  2017-11-04.tar.gz

以上是关于linux学习笔记-rsync+crond定时备份服务的主要内容,如果未能解决你的问题,请参考以下文章

rsync+crond企业实战案例

crond+rsync inotify+rsync

Linux学习笔记9

Linux定时任务Crontab学习笔记

Linux系统crondrsync打包备份数据操作实战

Linux定时任务(crond)