某公司里有一台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
来源:视频学习
停留在世界边缘,与之惜别