Linux下Nginx如何切割访问日志?

在Linux下,我们可以通过crontab,定时把access.log移动到备份目录,同时,发信号USR1给nginx主进程,让其重新生成个日志文件。

在进行编写脚本之前,先进行以下假设:

日志文件是:/usr/local/nginx/logs/access.log

nginx主进程id保存在文件:/usr/local/nginx/logs/nginx.pid

切割后备份文件目录:/usr/local/nginx/logs/bak/

切割详细步骤,请参阅下面操作:

1、创建文件cut_access_log.sh:

vim /.bin/cut_access_log.sh  vim /.bin/cut_access_log.sh

2、输入文件cut_access_log.sh内容

#! /bin/bash

org_path="/usr/local/nginx/logs/"

dest_path="/usr/local/nginx/logs/bak/"

if [ ! -d "$dest_path" ]; then

mkdir "$dest_path"

fi

mv ${org_path}access.log ${dest_path}access$(date +%Y%m%d).log

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

3、保存cut_access_log.sh之后,赋可执行权限

chmod +x /.bin/cut_access_log.sh

4、编写crontab文件:

vim /.cron

5、输入crontab文件内容,并保持

59 23 * * * /bin/bash /.bin/cut_access_log.sh

6、添加到crontab中

crontab /.cron

通过以上六步,如果具有足够的权限话,访问日志会在每天23:59分,进行切割。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/ppxfz.html