具体要求:
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个月以上的备份文件