当前位置: > Linux服务器 > nginx >

使用crontab定时切割Nginx日志的详细方法

时间:2015-01-26 13:31来源:linux.it.net.cn 作者:IT

一、跑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 &

(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容