nginx 日志会随着访问量而变大, 较大的日志会影响分析日志时对日志的分析和处理, 我们可以使用 shell 对 nginx 日志进行定时分割, 以周或者天, 对于时间久的日志可以定时删除, 减小磁盘的浪费
代码:
- # cat logrotate.sh
- #!/bin/bash
- #rotate nginx logs
- #writen by Aiker
- PATH=$PATH://usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
- logs_path=/var/log/nginx
- d=$(date -d "-1 day" +%F)
- mv $logs_path/access.log $logs_path/access_${d}.log
- mv $logs_path/error.log $logs_path/error_${d}.log
- # 向 nginx 主进程发送 USR1 信号重新打开日志文件
- kill -USR1 $(cat /var/run/nginx.pid)
定时切割日志:
- crontab -e
- 0 0 * *0 / root / script / logrotate.sh > /dev/null 2 > &1
- # ll /var/log/nginx/
- total 64
- -rw-r--r-- 1 nginx root 3205 Feb 12 11:42 access_2018-02-11.log
- -rw-r--r-- 1 nginx root 41951 Feb 12 11:53 access.log
- -rw-r--r-- 1 nginx root 14441 Feb 9 10:12 error_2018-02-11.log
- -rw-r--r-- 1 nginx root 0 Feb 12 11:43 error.log
来源: http://www.bubuko.com/infodetail-2496296.html