cronolog日志切割

apache、tomcat、nginx日志切割使用cronolog
源代码包:cronolog-1.6.2.tar.gz

tar zxvf cronolog-1.6.2.tar.gzcd cronolog-1.6.2
./configure 
make && make installldconfig

cronolog安装成功以后

which cronolog #确定/usr/local/sbin/cronolog 位置
/usr/local/sbin/cronolog

1.apache
修改日志生成
CustomLog “|/usr/local/sbin/cronolog /usr/local/apache2/logs/access_log.%Y%m%d” combined
2.tomcat
TOMCAT 默认日志全部写在$CATALINA_BASE/logs/catalina.out里面,通过cronolog软件对日志文件进行切割,以便与分析。
修改 $CATALINA_HOME/bin/catalina.sh
找到touch “$CATALINA_OUT”行修改其下面的if-else内的org.apache.catalina.startup.Bootstrap “$@” start 输出信息重定向位置

org.apache.catalina.startup.Bootstrap "$@" start 2>&1\      |/usr/local/sbin/cronolog "$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out >> /dev/null &

输出信息通过管道传送给cronolog 处理后写入日志文件$CATALINA_BASE”/logs/catalina.%Y-%m-%d.out中。
重启tomcat就可以看到以时间格式存储的日志文件。
3.nginx
1)创建一个命名管道

mkfifo /usr/local/nginx/logs/error_log_pipe

2)修改nginx.conf

error_log   logs/error_log_pipe  info;

3)执行后台运行nohup

nohup cat /usr/local/nginx/logs/error_log_pipe 2>&1|/usr/local/sbin/cronolog /usr/local/nginx/logs/error_$(date +"%Y%m%d").log >> /dev/null &

4)重启nginx

kill -HUP `cat /usr/local/nginx/logs/nginx.pid`

// nginx执行脚本方式切割,重新生成日志
/usr/local/nginx/sbin/cut_nginx_log.sh

#!/bin/bash# This script run at 00:00# The Nginx logs pathlogs_path="/usr/local/nginx/logs/"mkdir -p ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/if [ -e ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/error_$(date -d "yesterday" +"%Y%m%d").log ]thencat ${logs_path}error.log >> ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/error_$(date -d "yesterday" +"%Y%m%d").logcat /dev/null > ${logs_path}error.logelsemv ${logs_path}error.log ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/error_$(date -d "yesterday" +"%Y%m%d").logfikill -USR1 `cat /usr/local/nginx/logs/nginx.pid`
crontab -e
00 00 * * * /bin/bash    /usr/local/nginx/sbin/cut_nginx_log.sh


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章