具体要求:
NFS服务器nfs01和备份服务器backup的备份目录必须都为/backup 要备份的系统配置文件包括但不限于:
定时任务服务的配置文件(/var/spool/cron/root) 开机自启动的配置文件(/etc/rc.local)
日常脚本的目录(/server/scripts) 防火墙iptables的配置文件(/etc/sysconfig/iptables)
自己思考下还有什么需要备份呢 Web服务器站点目录假定为(/var/html/www)
Web服务器A访问日志路径假定为(/app/logs) Web服务器保留打包后的7天的备份数据即可(本地留存不能多于7天,因为太多硬盘会满)
备份服务器上,保留每周一的所有数据副本,其它只保留6个月的数据副本
备份服务器上要按照备份数据服务器的内网IP为目录保存备份,备份的文件按照时间名字保存。
需要确保备份的数据尽量完整正确,在备份服务器上对备份的数据进行检查,把备份的成功及失败结果信息发送给系统管理员邮箱中。
NFS服务器运行脚本
1 #!/bin/bash 2 ip=192.168.200.129 #取一个变量值 3 #下面开始打包备份 4 [ -f /var/spool/cron/root ] 5 if [ $? -eq 0 ];then 6 cd /var/spool/cron && tar czf root.tar.gz_"$ip"_`date +%F-%w` root 7 mv root.tar.gz_"$ip"_`date +%F-%w` /backup 8 echo "root已备份完成" 9 else 10 echo "没有root这个文件" 11 fi 12 13 14 [ -f /etc/rc.local ] 15 if [ $? -eq 0 ];then 16 cd /etc/ && tar czf rc.local.tar.gz_"$ip"_`date +%F-%w` rc.local 17 mv rc.local.tar.gz_"$ip"_`date +%F-%w` /backup 18 echo "rc.local以备份完成" 19 else 20 echo "没有rc.local这个文件" 21 fi 22 23 24 [ -f /etc/sysconfig/iptables ] 25 if [ $? -eq 0 ];then 26 cd /etc/sysconfig/ && tar czf iptables.tar.gz_"$ip"_`date +%F-%w` iptables 27 mv iptables.tar.gz_"$ip"_`date +%F-%w` /backup 28 echo "iptables以备份完成" 29 else 30 echo "没有iptables这个文件" 31 fi 32 33 34 [ -d /var/html/www ] 35 if [ $? -eq 0 ];then 36 cd /var/html && tar czf www.tar.gz_"$ip"_`date +%F-%w` www 37 mv www.tar.gz_"$ip"_`date +%F-%w` /backup 38 echo "www以备份完成" 39 else 40 echo "没有www这个目录" 41 fi 42 43 [ -f /app/logs ] 44 if [ $? -eq 0 ];then 45 cd /app/ && tar czf logs.tar.gz_"$ip"_`date +%F-%w` logs 46 mv logs.tar.gz_"$ip"_`date +%F-w%` /backup 47 echo "logs以备份完成" 48 else 49 echo "没有logs这个文件" 50 fi 51 52 cd / 53 tar czf backup.tar.gz_"$ip"_`date +%F-%w` backup #把备份目录打包为一会校验文件做准备 54 mv backup.tar.gz_"$ip"_`date +%F-%w` backup #将打包好的备份目录移动到备份目录里 55 cd /backup 56 md5sum backup.tar.gz_"$ip"_`date +%F-%w` > md5.txt #将打包的备份目录生成MD5校验文件 57 rsync -az /backup/ rsync_backup@192.168.200.134::nfs --password-file=/etc/rsync.password #将所有数据推送到备份服务器下 58 #以下判断推送数据是否成功 59 if [ $? -eq 0 ];then 60 echo "数据推送完毕" 61 else 62 echo "数据推送失败" 63 exit 64 fi 65 66 find /backup/ -type f -mtime +7 | xargs rm -rf #由于空间有限,需删除7天以上的打包备份文件
Rsync备份服务器脚本
1 #!/bin/bash 2 lujing="backup" 3 4 5 cd /"$lujing" 6 7 md5sum -c md5.txt >&/dev/null #开始校验文件 8 if [ $? -eq 0 ];then 9 echo "数据完整" 10 rm -rf md5.txt 11 else 12 echo "数据丢失" 13 fi 14 15 find "$lujing" ! -name "*1" -type -f -mtime +180 | xargs rm -f #排除每周一的备份文件删除6个月以上的备份文件