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