今天春哥技术博客就 linux 配置文件及日志文件全备份的教程给大家分享一下, 希望可以帮到大家.
1, 分别设置两台主机满足试验要求
服务器 IP 主机名
nginx-web 服务器 192.168.10.150 web1
备份服务器
192.168.10.20 backup
要求: 每天晚上 00 点整在 Web 服务器上打包备份系统配置文件, 网站程序目录及访问日志并通过 rsync 命令推送备份服务器 backup 上备份保留 (备份思路可以是先在本地按日期打包, 然后再推到备份服务器 backup 上),nginx-web 服务器是实际工作中的服务器, 具体要求如下:
1) 服务器的备份目录必须都为 / backup.
2) 要备份的系统配置文件包括但不限于:
a. 定时任务服务的配置文件 (/var/spool/cron/root).
b. 开机自启动的配置文件 (/etc/rc.local).
c. 日常脚本的目录 (/server/scripts).
d. 防火墙 iptables 的配置文件 (/etc/sysconfig/iptables).
3)Web 服务器站点目录 (/home/www).
4)Web 服务器访问日志路径 (/app/logs)
5)Web 服务器保留打包后的 7 天的备份数据即可 (本地留存不能多于 7 天)
6) 备份服务器上要按照备份 web 服务器的 IP 为目录保存备份, 备份的文件按照时间名字保存.
7) 备份服务器上, 保留每周一的所有数据副本, 其它要保留 6 个月的数据副本.
8) 需要确保备份的数据尽量完整正确, 在备份服务器上对备份的数据进行检查, 把备份的成功及失败结果信息发给系统管理员邮箱中.
2,nginx-web 服务端备份代码
- [root@web1 /]#vim backup.sh
- #!/bin/bash
- # 定义变量
- hostip=hostanme -I
- cd /
- varfile="./var/spool/cron/root ./etc/rc.local ./server/scripts ./etc/sysconfig/iptables"
- date=date +%F-%a
- webfile="/home/www"
- weblog="/app/logs"
- mkdir /backup> /dev/null 2>&1
- mkdir -p /backup/$hostip
- # 打包系统要求的配置文件, web 站点目录, 日志目录
- tar -zcf /backup/$hostip/${date}.tar.gz ./$varfile
- tar -zcf /backup/$hostip/webfile${date}.tar.gz ./$webfile
- tar -zcf /backup/$hostip/weblog${date}.tar.gz ./$weblog
- md5sum /backup/$hostip/*> /backup/$hostip/md5${date}.txt
- # 通过 rsync 发送到备份服务器上
- rcyns -avz ./backup/$hostip rsync_backup@192.168.10.20::backup --password-file=/etc/rsync.password> /dev/null 2>&1
- if [ $? -ne 0 ];then
- echo "备份失败" | mail -s "备份情况" 745651470@qq.com
- fi
- # 清理 7 天以前打包的文件
- find /backup/$hostip/ -type f -mtime +7 -name ".tar" | xargs rm -f
- find /backup/$hostip/ -type f -mtime +7 -name "md5*.txt" | xargs rm -f
- 定时任务
- [root@web1 /]# crontab -e
- 00 00 */bin/bash backup.sh>/dev/null 2>&1
3, 备份服务器端代码
- [root@backup /]# vim jiaoyan.sh
- #!/bin/bash
- date=date +%F-%a
- cd /
- A=(
- ls /backup | xargs -n1
- )
- for ( i=0;i<${#A[]};i++ )
- do
- /usr/bin/md5sum -c /backup/${A[i]/md5${date}.txt>> ./jiaoyanjieguo 2>/dev/null
- ##-c 选项来对文件 md5 进行校验. 校验时, 根据已生成的 md5 来进行校验. 生成当前文件的 md5, 并和之前已经生成的 md5 进行对比, 如果一致, 则返回 OK, 否则返回错误信息
- done
- /bin/mail -s "备份数据" 745651470@qq.com <./jiaoyanjieguo>dev/null 2>&1
- rm -rf ./jiaoyanjieguo
- find /backup/ -type f -mtime +180 ! -name "Mon*" | xargs rm -f
定时任务
- [root@backup /]# crontab -e
- 00 06 */bin/bash jiaoyan.sh> /dev/null 2>&1
来源: http://www.bubuko.com/infodetail-2698537.html