rsync全网备份low方法
要求:
1、基本备份要求
已知3 台服务器主机名分别为web01、backup 、nfs01,主机信息见下表:
服务器说明外网IP(NAT) 内网IP(NAT) 主机名称
nginx web 服务器10.0.0.8/24 172.16.1.7/24 web01
NFS 存储服务器10.0.0.31/24 172.16.1.31/24 nfs01
rsync 备份服务器10.0.0.41/24 172.16.1.41/24 backup
要求:每天晚上00 点整在Web 服务器上打包备份系统配置文件、网站程序目录及访问日
志并通过rsync 命令推送备份服务器backup 上备份保留(备份思路可以是先在本地按日
期打包,然后再推到备份服务器backup 上),NFS 存储服务器同Web 服务器,实际工作
中就是全部的服务器。
具体要求如下:
1)所有服务器的备份目录必须都为/backup。
2)要备份的系统配置文件包括但不限于:
a.定时任务服务的配置文件(/var/spool/cron/root)(适合web 和nfs 服务器)。
b.开机自启动的配置文件(/etc/rc.local)(适合web 和nfs 服务器)。
c.日常脚本的目录(/server/scripts)。
d.防火墙iptables 的配置文件(/etc/sysconfig/iptables)。
e.自己思考下还有什么需要备份呢?
3)Web 服务器站点目录假定为(/var/html/www)。
4)Web 服务器A 访问日志路径假定为(/app/logs)
5)Web 服务器保留打包后的7 天的备份数据即可(本地留存不能多于7 天,因为太多硬盘会
满)
6)备份服务器上,保留每周一的所有数据副本,其它要保留6 个月的数据副本。
7)备份服务器上要按照备份数据服务器的内网IP 为目录保存备份,备份的文件按照时间名
字保存。
8)*需要确保备份的数据尽量完整正确,在备份服务器上对备份的数据进行检查,把备份的成功及失败结
果信息发给系统管理员邮箱中(发邮件技巧见VIP 群资料)。
特别提示:本题在工作中是网站生产环境全网备份项目方案的一个小型模拟,很有意义。
特别说明:
1)工作中领导很可能不会告诉你如何去做,只会提需求,例如:小崔,我们集群的数据器
很重要,请你做一个方案把所有的数据备份好(定期的备份)。
2)逻辑架构图更不可能是领导给你画,而是你理解了领导的意思,然后自己想出备份的方
案,最后,在实施前你做的一个图纸而已。
3)*需要确保备份的数据尽量完整正确,在备份服务器上对备份的数据进行检查,把备份的成功及失败结
果信息发给系统管理员邮箱中。
4)真实工作中除了异机备份,可能还会需要异地备份,这个地方请大家思考如何异地备份。
答案
nginx web 服务器10.0.0.8/24 172.16.1.7/24 web01 脚本
[root@nfs01 /server/scripts]# cat /server/scripts/backup.sh #!/bin/bash export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin cd / && tar zcf /backup/nfs-`date +%F-%w`.tar.gz /var/spool/cron/root /etc/rc.local /server/scripts 2>/dev/null rsync -az /backup/nfs-`date +%F-%w`.tar.gz rsync_backup@backup::backup_test --password-file=/etc/rsync.password find /backup/ -type f -mtime +7 -exec rm -rf {} \;
NFS 存储服务器10.0.0.31/24 172.16.1.31/24 nfs01
[root@nginx-web01 /backup]# cat /server/scripts/backup.sh
#!/bin/bash
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
cd / && tar zcf /backup/web01-`date +%F-%w`.tar.gz /var/spool/cron/root /etc/rc.local /server/scripts/html/www /app/logs 2>/dev/null
rsync -az /backup/web01-`date +%F-%w`.tar.gz rsync_backup@backup::backup_test --password-file=/etc/rsync.password
find /backup/ -type f -mtime +7 -exec rm -rf {} \;
rsync 备份服务器10.0.0.41/24 172.16.1.41/24 backup
[root@rsync-backup /backup]# cat /server/scripts/backup.sh
#!/bin/bash
find /backup/ -type f -mtime +180 ! -name "*1.tar.gz" |xargs rm -rf
解答还需要进一步完善