nginx服务每天都会产生大量的日志信息,时间一长导致日志文件容量很大,会影响系统性能。通过以下shell代码,配合crontab定时执行可实现nginx日志定时分割的功能。
#!/bin/bash # The Nginx logs path logs_path="/netapp/wwwlogs/" mkdir -p ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/ mv ${logs_path}www.bec.net.log ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/www.bec.net_$(date -d "yesterday" +"%Y%m%d").log kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid) dt=$(date +\%Y\%m\%d) dtDetail=$(date +\%Y-\%m-\%d_\%H:\%M:\%S) echo $dtDetail":cut_nginx_log.sh run success!" >> /root/shell/cut_nginx_log/cut_nginx_log.txt
crontab自动执行代码如下,每天12点02分对日志文件进行分割:
#nginx日志分割 2 0 * * * /root/shell/cut_nginx_log/cut_nginx_log.sh