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

来源:岁月联盟 编辑:exp 时间:2011-10-26

 

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

摘自 心灵净土的blog