某公司里有一台Web服务器,里面的数据很重要,但是如果硬盘坏了,数据就会丢失, 现在领导要求你把数据做备份,这样Wb服务器数据丢失可以进行恢复。要求如下: 每天晚上00点整在Web服务器A上打包备份系统配置文件、网站程序目录及访问日志 并通过rsync命令推送到服务器B上备份保留(备份思路可以是先在本地按日期打包,然后 再推到备份服务器B上)

具体要求如下:

web服务器A和备份服务器B的备份目录必须都为/bnckup。

系统配置文件包括但不限于:

a.定时任务服务的配置文件((/var/spoo1/cron/root)。
b.开机自启动的配置文件((/etc/rc.local)
c.日常脚本的目录((/server/scripts)
d.防火墙iptables的配置文件(/etc/sysconfig/iptables)。
e.自己思考下还有什么需要备份呢?

web服务器站点目录假定为(/var/html/www)。
web服务器A访问日志路径假定为(/app/logs)
web服务器保留打包后的7天的备份数据即可(本地留存不能多于了天,因为太多硬盘会 满),备份服务器B上要保留6个月的数据副本。
各份服务器B上要按照备份数据服务器的IP为目录保存,打包的文件按照时间名字保存。





 配置流程

1.服务配置

2.打包文件

3.定时任务

4.测试完工


#1配置备份服务器

[root@B-host ~]# vim /etc/rsyncd.conf 
##2018-08-03
uid = rsync
gid = rsync
use chroot = no
max connections = 200 
timeout = 300  
pid file = /var/run/rsyncd.pid 
lock file = /var/run/rsync.lock 
log file = /var/log/rsyncd.log 
ignore errors 
read only = false 
list = false     
hosts allow = 192.168.1.0/24 
hosts deny = 0.0.0.0/32 
auth users = backupuser 
secrets file = /etc/rsync.password
[backup]   
path = /backup/
##2018-08-03 

[root@B-host ~]# mkdir /backup
[root@B-host ~]# useradd rsync
[root@B-host ~]# chown -R rsync /backup/
[root@B-host ~]# rsync --daemon
[root@B-host ~]# lsof -i :873
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
rsync   22691 root    3u  IPv4  34263      0t0  TCP *:rsync (LISTEN)
rsync   22691 root    5u  IPv6  34264      0t0  TCP *:rsync (LISTEN)

[root@B-host ~]#echo "backupuser:123456">/etc/rsync.password
[root@B-host ~]#chmod 600 /etc/rsync.password
#WEB服务器(客户端配置)
[root@A-host ~]# mkdir /backup/ -p
[root@B-host ~]#echo "123456">/etc/rsync.password
[root@B-host ~]#chmod 600 /etc/rsync.password
[root@A-host ~]# rsync -avz /backup/ backupuser@192.168.1.11::backup/ --password-file=/etc/rsync.password 
sending incremental file list
./

sent 25 bytes  received 11 bytes  72.00 bytes/sec
total size is 0  speedup is 0.00
[root@A-host ~]#
#2打包文件

[root@A-host ~]#tar -zcvf /backup/beifen.tar.gz /var/www/html /app/logs /etc/rc.local/ /server/scripts /var/spool/cron
#打包脚本
[root@A-host ~]#vim /server/scripts/bak.sh
#!/bin/sh
ip=$(ifconfig eth0|sed -n '2p'|awk -F "[ :]+" '{print $4}')
[ ! -d /backup/$ip ] && mkdir -p /backup/$ip
cd /backup/$ip &&\
tar -zcf bak_$(date +%F).tar.gz /var/www/html /app/logs/access_$(date +%F -d -1day).log /etc/rc.local/ /server/scripts /var/spool/cron \
&& touch %{ip}_flag_$(date +%F)
rsync -az /backup/ backupuser@192.168.1.11::backup/ --password-file=/etc/rsync.password

find /backup -type f -name "*.tar.gz" -mtime +7|xargs rm -f
#3定时任务
[root@A-host backup]#crontab -e
#时间同步任务
*/5 * * * * /usr/sbin/ntpdate time.nist.gov >/deb/null 2>&1
#####定时备份任务
00 00 * * * /bin/sh /server/scripts/bak.sh >/deb/null 2>&1
#备份服务端配置(保留6个月的数据副本)
[root@A-host backup]#mkdir /server/scripts
[root@A-host backup]#vim /server/scripts/bak.sh
find /backup/ -type f -name "*.tar.gz" -mtime +180|xargs rm -f

[root@A-host backup]#crontab -e
#时间同步任务
*/5 * * * * /usr/sbin/ntpdate time.nist.gov >/deb/null 2>&1
#####定时备份任务
00 00 * * 6 /bin/sh /server/scripts/bak.sh >/deb/null 2>&1



来源:视频学习