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


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