Linux下,nginx如何切割访问日志?

来源:互联网 发布:陕西税友官网软件下载 编辑:程序博客网 时间:2024/05/18 11:38

在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

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分,进行切割。