Nginx日誌滾動腳本

 Nginx日誌滾動可分爲3步:

  1.  將access.log重命名成形如access_202006161113.log
  2. 通過kill命令向nginx的進程發送 -USR1信號,通知nginx重新創建access.log文件
  3. 刪除修改時間比指定時間更早的歷史日誌

示例腳本:

#!/bin/bash

# rename access.log
NGINX_LOG_HOME="/data/web_log/nginx"
minu=`date "+%Y%m%d%H%M"`
src=$NGINX_LOG_HOME/access.log
dst=$NGINX_LOG_HOME/access_$minu.log
mv $src $dst

# notify nginx reopen a new access.log
nginx_pid=/var/run/nginx.pid
kill -USR1 `cat $nginx_pid`

# remove outdated log files
cd $NGINX_LOG_HOME
nginx_backup_minutes=1440 # 1440分鐘,即24小時
find . -type f -name "*.log" -mmin +${nginx_backup_minutes} | xargs rm -f

腳本的調用一般配在crontab裏,例如:

0 * * * * /bin/bash /usr/local/logrotate_nginx.sh

 

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