nginx访问日志切割
1).切割日志必要性:
如果任由访问日志写下去,日志文件会变得越来越大,读也没法读,甚至是写满磁盘。
所以,我们需要想办法把日志做切割,比如每天生成一个新的日志,旧的日志按规定时间删除即可。
实现日志切割可以通过写shell脚本或者系统的日志切割机制实现。
2).shell脚本切割nginx日志:
切割脚本内容:
[root@localhost scripts]# cat cut_nginx_log.sh
#!/bin/bash
#定义日志路径:
logdir=/usr/local/nginx/logs/
#定义切割后的日志前缀:前一天的日期:如:现在27号,打印则:26号: 201226
prefix=`date -d "-1 day" +%y%m%d`
cd $logdir
for f in `ls *.log`
do
#把日志改名为加日期的:
mv $f $f-$prefix
done
#生成新的日志:
/usr/local/nginx/sbin/nginx -s reload 2>/dev/null
#压缩日志:
bzip2 *$prefix
#注意:安装bzip2命令: yum -y install bzip2, 解压:方法1: bzip2 -d xxx.bz2 方法2: bunzip2 xxx.bz2
#注意: bzip2 要压缩的文件, 压缩后原文件不存在,直接以原文件名.bz2形成的压缩包形式存在,如: bzip2 access.log,执行后为: access.log.bz2
find . -type f -mtime +180 -name "*.bz2" |xargs rm -f
[root@localhost scripts]# crontab -l
00 01 * * * /data/scripts/cut_nginx_log.sh
参考链接;
https://github.com/aminglinux/nginx/blob/master/log/rotate.md