一、跑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';
日志路径输出到命名管道 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) |