备份全网服务器数据

具体要求:

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个月以上的备份文件
原文地址:https://www.cnblogs.com/mendermi/p/9914796.html