博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux配置文件、日志文件全备份
阅读量:6809 次
发布时间:2019-06-26

本文共 2513 字,大约阅读时间需要 8 分钟。

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服务端备份代码

1
[root@web1 /]
#vim backup.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/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

定时任务

1
2
[root@web1 /]
# crontab -e
00 00 * * * /bin/bash backup.sh >/dev/
null 
2>&1

3、备份服务器端代码

1
2
3
4
5
6
7
8
9
10
11
12
13
[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

定时任务

1
2
[root@backup /]
# crontab -e
00 06 * * * /bin/bash jiaoyan.sh > /dev/
null 
2>&1


注:试验中的rsync服务的安装参考:

脚本功能的实现还有进一步的优化,如有好的思路可以一起分享···

参考文档:http://caojiaoyue.blog.51cto.com/11798573/1923404

      本文转自MQ_douer 51CTO博客,原文链接:http://blog.51cto.com/douer/1928295,如需转载请自行联系原作者

你可能感兴趣的文章
Java 嵌入 SPL 轻松实现 Excel 文件合并
查看>>
redis缓存Hash操作的在主数据中的应用
查看>>
mongodb之副本集搭建
查看>>
推荐 10 个饱受好评且功能独特的开源人工智能项目
查看>>
移动web开发之像素和DPR
查看>>
css百叶窗滚动
查看>>
关于软考的一些事,你知道吗?
查看>>
ERP系统“数字排产”功能,实现企业高效排产
查看>>
Linux基础命令
查看>>
七天学会NodeJS
查看>>
配置防盗链 访问控制Directory 访问控制FilesMatch
查看>>
Docker tomcat 多版本环境搭建
查看>>
常用方法总结--文件操作篇
查看>>
盘点遥测终端RTU怎么分类?
查看>>
find 命令查找-o参数的理解
查看>>
FTP开发与应用
查看>>
从内部自用到对外服务,配置管理的演进和设计优化实践
查看>>
克隆虚拟主机后的主机如何联网!!!!
查看>>
我是怎么把一个项目带崩的
查看>>
CentOS 6.5 shell中su切换自动输入密码
查看>>