定时备份你的日志文件

2013年11月4日 分类: Nginx, PHP, VPS (199 个脚步)

在一个完整的信息系统里面,日志系统是一个非常重要的功能组成部分。它可以记录下系统所产生的所有行为,并按照某种规范表达出来。可以使用日志系统所记录的信息为系统进行排错,优化系统的性能,或者根据这些信息调整系统的行为。在安全领域,日志系统的重要地位尤甚,可以说是安全审计方面最主要的工具之一。

但是日志会随着时间的流逝,单个文件体积会变得越来越庞大,所以就得每隔一段时间将他们分离开来,压缩备用。

手工备份的方法太过于繁琐,而且又不可能在大白天的人多的时候停止服务来备份日志。

为了简化人工操作,所以就写了一段shell代码每隔一段时间在夜深人静的时间来执行一次备份最好不过了。

以下为我使用的代码:

#!/bin/bash
#
nginx_app=/usr/bin/nginx
logs_dir=/var/log/server
bak_dir=/htdocs/backup/log
date=`date +%Y%m%d`

#暂停服务
nginx -s stop
sleep 2
fpmd stop
sleep 2

#先将日志文件移动到备份目录
cd $logs_dir
mv *.log $bak_dir
sleep 2

#重建log文件
fpmd start
nginx

#打包log文件,并以日期命名
cd $bak_dir
tar czf Serverlog_$date.tgz *.log

#删除备份目录的临时文件
rm -f *.log

首先是要停止nginx和php的运行啦,防止备份过程中出现错误

小站点的话sleep设置的时间可以短一点,就像我设置的那样,大的站点就要根据自己网站的需求来设置相应的时间了

我的php日志和nginx的日志都是放在相同位置上,所以能一次性备份完成。

如果你的log文件分散在不同位置,就得按照实际情况来写相应的代码咯。

然后将他们移动到相同目录下进行压缩打包,放到专用的文件夹下。

最后就是开启php服务和nginx,让网站正常运行。

这样,备份脚本就写完了,运行就能备份日志并压缩了。

接下来就是将他们写入到系统的计划任务中去。运行

crontab -e 

在最后面加入以下内容,系统就会每隔7天运行一次脚本帮你备份日志了。

0 0 */7 * * sh /htdocs/sh/auto_backup_log.sh

 

定时备份你的日志文件 【声明】本文 定时备份你的日志文件 为柠之漠然原创文章,转载请注明出自 枫之落叶
并保留本文有效链接:https://blog.shiniv.com/2013/11/regularly-back-up-your-log-files/ , 转载请保留本声明!

标签: , , ,
目前还没有任何评论.
你必须要启用 Javascript