linux配置文件、日志文件全备份

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:

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://douer.blog.51cto.com/6107588/1914098

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

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



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





相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
12天前
|
Linux Shell 网络安全
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
本指南介绍如何利用 HTA 文件和 Metasploit 框架进行渗透测试。通过创建反向 shell、生成 HTA 文件、设置 HTTP 服务器和发送文件,最终实现对目标系统的控制。适用于教育目的,需合法授权。
47 9
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
|
2天前
|
监控 安全 Linux
启用Linux防火墙日志记录和分析功能
为iptables启用日志记录对于监控进出流量至关重要
|
1月前
|
存储 Oracle 关系型数据库
【赵渝强老师】MySQL InnoDB的数据文件与重做日志文件
本文介绍了MySQL InnoDB存储引擎中的数据文件和重做日志文件。数据文件包括`.ibd`和`ibdata`文件,用于存放InnoDB数据和索引。重做日志文件(redo log)确保数据的可靠性和事务的持久性,其大小和路径可由相关参数配置。文章还提供了视频讲解和示例代码。
149 11
【赵渝强老师】MySQL InnoDB的数据文件与重做日志文件
|
1月前
|
SQL Oracle 关系型数据库
【赵渝强老师】Oracle的控制文件与归档日志文件
本文介绍了Oracle数据库中的控制文件和归档日志文件。控制文件记录了数据库的物理结构信息,如数据库名、数据文件和联机日志文件的位置等。为了保护数据库,通常会进行控制文件的多路复用。归档日志文件是联机重做日志文件的副本,用于记录数据库的变更历史。文章还提供了相关SQL语句,帮助查看和设置数据库的日志模式。
【赵渝强老师】Oracle的控制文件与归档日志文件
|
1月前
|
SQL 关系型数据库 MySQL
【赵渝强老师】MySQL的全量日志文件
MySQL全量日志记录所有操作的SQL语句,默认禁用。启用后,可通过`show variables like %general_log%检查状态,使用`set global general_log=ON`临时开启,执行查询并查看日志文件以追踪SQL执行详情。
|
1月前
|
Linux 开发工具 Perl
在Linux中,有一个文件,如何删除包含“www“字样的字符?
在Linux中,如果你想删除一个文件中包含特定字样(如“www”)的所有字符或行,你可以使用多种文本处理工具来实现。以下是一些常见的方法:
41 5
|
1月前
|
安全 Linux 数据安全/隐私保护
在 Linux 系统中,查找文件所有者是系统管理和安全审计的重要技能。
在 Linux 系统中,查找文件所有者是系统管理和安全审计的重要技能。本文介绍了使用 `ls -l` 和 `stat` 命令查找文件所有者的基本方法,以及通过文件路径、通配符和结合其他命令的高级技巧。还提供了实际案例分析和注意事项,帮助读者更好地掌握这一操作。
53 6
|
1月前
|
Linux
在 Linux 系统中,`find` 命令是一个强大的文件查找工具
在 Linux 系统中,`find` 命令是一个强大的文件查找工具。本文详细介绍了 `find` 命令的基本语法、常用选项和具体应用示例,帮助用户快速掌握如何根据文件名、类型、大小、修改时间等条件查找文件,并展示了如何结合逻辑运算符、正则表达式和排除特定目录等高级用法。
102 6
|
1月前
|
Oracle 关系型数据库 数据库
【赵渝强老师】Oracle的参数文件与告警日志文件
本文介绍了Oracle数据库的参数文件和告警日志文件。参数文件分为初始化参数文件(PFile)和服务器端参数文件(SPFile),在数据库启动时读取并分配资源。告警日志文件记录了数据库的重要活动、错误和警告信息,帮助诊断问题。文中还提供了相关视频讲解和示例代码。
|
7月前
|
Linux
百度搜索:蓝易云【Linux中如何对文件进行压缩和解压缩?】
这些是在Linux中进行文件压缩和解压缩的常见方法。根据您的需求和具体情况,可能会使用其他压缩工具和选项。您可以通过查阅相应命令的帮助文档来获取更多详细信息。
91 1