2013-09-06 15:36:25
来 源
ITJS.CN
Nginx
该篇讲述使用crontab定时切割Nginx日志的详细方法,希望对于初学Nginx服务器相关的朋友有帮助,更多Nginx安装、配置、报错处理等资源请本站内搜索。。

一、跑crontab定时任务进行普通切割

优点:可实现多少分钟切割一次,通常是5分钟

缺点:crontab有时不跑,导致生成很大的文件,php无法处理

1、配置nginx

日志格式(必须放在http外面)

log_format  hm_access '$remote_addr|$time_local|$request|$http_referer|$http_user_agent|$http_x_forwarded_for';

日志路径

access_log  /www/hm.114la.com/data/log/access_log hm_access;

2、切割shell

vim catlog.sh

log_dir="/www/hm.114la.com/data/log"

date_dir=`date +%Y%m%d%H%M`

cat ${log_dir}/access.log > ${log_dir}/stat_all/${date_dir}

rm -f  ${log_dir}/access.log

chmod -R 777 ${log_dir}

kill -USR1 `cat /var/run/nginx.pid`

3、每5分钟切割跑一次切割shell来切割日志

*/5 * * * * /home/ylmf/catlog.sh >> /home/ylmf/cat.log

二、cronolog小工具切割

优点:不依赖crontab,不怕他不跑

缺点:不能自由控制时间,只能让他一分钟或者一小时、一天这样的切割

1、创建一个命名管道

mkfifo /www/hm.114la.com/data/log/access_log_pipe

2、配置nginx

日志格式(必须放在http外面)

log_format  hm_access '$remote_addr|$time_local|$request|$http_referer|$http_user_agent|$http_x_forwarded_for';

日志路径输出到命名管道

access_log  /www/hm.114la.com/data/log/access_log_pipe hm_access;  

3、每分钟切割一次文件

nohup cat /www/hm.114la.com/data/log/access_log_pipe | /usr/bin/cronolog /www/hm.114la.com/data/log/stat_all/%Y%m%d%H%M &

声明: 此文观点不代表本站立场;转载须要保留原文链接;版权疑问请联系我们。