Nginx: 日志处理和自动清理

常规的有2种方法,crontab 和 logrotate ,tengine的可以忽略,他自己就可以按天按小时生成日志文件。

crontab方法:

1、做一个日志分割脚本文件:
vi /data/svr/nginx/sbin/nginx_cutlog.sh
#!/bin/bash
#nginx日志分割脚本:
#crontab,需要root下设置: 0 0 * * * /data/svr/nginx/sbin/nginx_cutlog.sh
#设置日志文件存放目录
LOG_HOME="/data/svr/nginx/logs/"
#备分文件名称
LOG_PATH_BAK="$(date -d yesterday +%Y%m%d)"
#重命名日志文件
mv ${LOG_HOME}/access.log L O G H O M E / a c c e s s . {LOG_HOME}/access. LOGHOME/access.{LOG_PATH_BAK}.log
mv ${LOG_HOME}/error.log L O G H O M E / e r r o r . {LOG_HOME}/error. LOGHOME/error.{LOG_PATH_BAK}.log
#向nginx主进程发信号重新打开日志
kill -USR1 cat ${LOG_HOME}/nginx.pid

#删除90天前的日志
#find /data/svr/nginx/logs/ -atime +90 -exec rm -f {} ;

2、在root下新建个crontab定时任务:
crontab -e
#nginx日志分割
0 0 * * * /data/svr/nginx/sbin/nginx_cutlog.sh

logrotate 方法

待补充

你可能感兴趣的:(NGINX,nginx)