阅读928 返回首页    go 阿里云 go 技术社区[云栖]


用shell脚本切割nginx日志并压缩

一个nginx切割日志的脚本,自动删除7天前日志

#!/bin/bash
LOGS_PATH=/home/wwwlogs
YESTERDAY=$(date -d "yesterday" +%Y-%m-%d)
#按天切割日志
mv ${LOGS_PATH}/access.log ${LOGS_PATH}/access_${YESTERDAY}.log
#向 Nginx 主进程发送 USR1 信号,重新打开日志文件,否则会继续往mv后的文件写内容,导致切割失败.
kill -USR1 `ps axu | grep "nginx: master process" | grep -v grep | awk '{print $2}'`
#压缩
gzip -9 ${LOGS_PATH}/access_${YESTERDAY}.log
#删除7天前的日志
cd ${LOGS_PATH}
find . -mtime +7 -name "*20[1-9][3-9]*" | xargs rm -f
exit 0

可以通过grep、awk找到nginx master也可以直接kill -USR1 pid

kill -USR1 `ps aux | grep "nginx: master process" | grep -v grep | awk '{print $2}'`

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

最后更新:2017-07-02 11:27:10

  上一篇:go  完全卸载删除gitlab
  下一篇:go  CentOS6.9安装Gitlab9.1.3及汉化