Linux系统crond、rsync、打包备份数据操作实战
前面介绍了系统中定时任务、rsync、打包等各种操作,同时也介绍了实际生产环境中的各类案例,今天我们结合这几种功能做一次实战(备份数据)
一:项目背景
某公司WEB服务器数据非常重要,但是如果硬件出现故障,数据就会丢失,人工备份比较费时费力,因些需要进行相关自动备份,并且要备份至指定的备份服务器上
具体备份内容有:
1、网站站点所有目录及相关文件
2、系统相关的配置文件
3、网站的访问日志文件
具体要求如下:(每天0点备份)
1、WEB服务器上的数据和备份服务器上的数据都存放在/backup/下(规范)
2、系统文件各类配置文件(定时任务、脚本等)
3、web服务器站点目录(/var/web/www)
4、web服务器日志目录(/app/logs)
5、web服务器数据只保留7天内的备份内容,备份服务器上保留180天内的数据
6、备份服务器上的备份要求按照服务器IP为目录保存,备份的数据需按时间做为文件名
二:需求分析
鉴于目前此种需求进行分析,可以得出操作思路为
1、备份服务器B配置rsync服务,做为服务端
2、web服务器配置为rsync客户端
3、web服务器上打包备份数据至指定的目录/backup/下
4、然后利用rsync服务推送备份数据至备份服务器上
5、以上配置完成后,可手工测试,如果测试成功,可将上述配置打包写成脚本
6、将脚本写入定时任务,周期性进行备份数据
三:项目结构图
四:备份服务器操作过程
1、服务器环境
[root@Backup ~]# cat /etc/redhat-release
CentOS release 6.5 (Final)
[root@Backup ~]# uname -r
2.6.32-431.el6.x86_64
2、配置rsync操作过程
[root@Backup ~]# cat /etc/rsyncd.conf
cat: /etc/rsyncd.conf: No such file or directory
如果有此文件,配置前要进行备份,再进行相关配置
配置rsync服务
[root@Backup ~]# cat /etc/rsyncd.conf
##rsync config start
##created by root 2016-08-08 15:00
##rsync.conf config start
uid = rsync
gid = rsync
use chroot = no
max connetctions = 200
timeout = 100
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
[rsync]
path = /backup/
ignore errors
read only = false
list = false
hosts allow = 192.168.1.0/24
hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password
##rsync config end
添加用户
[root@Backup ~]# useradd rsync -s /sbin/nologin -M
改变目录权限
[root@Client ~]# chown -R rsync.rsync /backup
配置密码文件
[root@Backup ~]# echo "rsync_backup:rsync.conf">>/etc/rsync.password
[root@Backup ~]# cat /etc/rsync.password
rsync_backup:rsync.conf
改变密码文件权限
[root@Backup ~]# chmod 600 /etc/rsync.password
[root@Backup ~]# ls -ld /etc/rsync.password
-rw-------. 1 root root 24 Sep 9 13:06 /etc/rsync.password
格式化文件
[root@Backup ~]# dos2unix /etc/rsyncd.conf
dos2unix: converting file /etc/rsyncd.conf to UNIX format ...
开启服务后台运行
[root@Backup ~]# rsync --daemon
[root@Backup ~]# netstat -lntup|grep rsync
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 2002/rsync
tcp 0 0 :::873 :::* LISTEN 2002/rsync
将服务开启命令写入开机自启当中
[root@Backup ~]# echo "##web backup by root 20160808">>/etc/rc.local;echo "/usr/bin/rsync --daemon">>/etc/rc.local
五:WEB服务器操作过程
1、服务器环境
[root@WEB ~]# cat /etc/redhat-release
CentOS release 6.5 (Final)
[root@WEB ~]# uname -r
2.6.32-431.el6.x86_64
2、配置rsyncp客户端
[root@WEB ~]# echo "rsync.conf">>/etc/rsync.password
[root@WEB ~]# cat /etc/rsync.password
rsync.conf
[root@WEB ~]# chmod 600 /etc/rsync.password
[root@WEB ~]# ls -ld /etc/rsync.password
-rw-------. 1 root root 11 Sep 8 06:25 /etc/rsync.password
3、创建相应的目录
[root@WEB /]# mkdir /backup/
[root@WEB /]# mkdir /var/web/www -p