定时备份你的日志文件
在一个完整的信息系统里面,日志系统是一个非常重要的功能组成部分。它可以记录下系统所产生的所有行为,并按照某种规范表达出来。可以使用日志系统所记录的信息为系统进行排错,优化系统的性能,或者根据这些信息调整系统的行为。在安全领域,日志系统的重要地位尤甚,可以说是安全审计方面最主要的工具之一。
但是日志会随着时间的流逝,单个文件体积会变得越来越庞大,所以就得每隔一段时间将他们分离开来,压缩备用。
手工备份的方法太过于繁琐,而且又不可能在大白天的人多的时候停止服务来备份日志。
为了简化人工操作,所以就写了一段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/ , 转载请保留本声明!