标签:
服务器由于访问日志文件增长速度很快,日志太大会影响服务器效率。为了方便对日志进行分析计算,须要对日志文件进行定时切割。定时切割的方式分为按月切割、按天切割、按小时切割等。最常用的是按天切割。Nginx不支持像—样使用日志,但是可以采用以下方式来实现日志文件的切割:
mv/datal/logs/access.Iog/datal/logs/20090318.Iogkill-USRlNginxii4^^
首先通过mv命令将日志文件重命名为/4細1爪职/20090318.1(^,然后发送kill-USRl信号给Nginx的主进程号,让Nginx重新生成一个新的日志文件/datalAogWaccess.log。如果nginx.conf配置文件中使用了“pid/usr^ocaVwebserver/nginj^nginx.pid;”指令,指定了口丨(1文件的存放路径,我们可以通过cat这个pid文件获得Nginx的主进程号,命令如下:
kill-USRl’cat/usr/local/webserver/nginx/nginx.pid’
如果想每天定时切割日志,还须要借助宿迁波仔可以写一个按天切割的日志,按年、月份目录存放日志的shell脚本:
vi/usr/local/webserver/nginx/sbin/cut_jiginx_logsh输入以下内容并保存(见代码3-9):
代码3-9
#!/bin/bash
#这个脚本须在每天的00:00运行
#Nginx日志文件的存放路径logs__path=_/datal/logs/”
mkdir-p${logs_path}$(date-d”yesterday”+”%Y”)/$(date-d”yesterday”+”%m”)/mv${logs_path)access.Iog${logs_path)$(date-d”yesterday”+”%Y”)/$(date-d”yesterday”+”%m1*)/access_$(date-d”yesterday”+*%Y%m%d”).Iogkill-USRl’cat/usr/local/webserver/nginx/nginx.pid’
另外,配置订0故31)每天凌晨00:00定时执行这个脚本:crontab-e输入以下内容并保存:
0000***/bin/bash/usr/local/webserver/nginx/sbin/cut_nginx_log.sh
这个81^11脚本和以0加31)配置主要实现的功能为:假设今天的日期为2009年5月19S,Nginx当前的日志文件为/datal/logs/access.log,2009年5月20日00:00会执行cut_nginx_log.sh脚本,cut_nginx_log.sh脚本首先创建一个目录/63131乃(^/2009/05/,然后将/dataldogs/access.log文件移动并重命名为化3131/1088/2009/05/3^88_20090519.1(^,再发送kill-USRl信号给Nginx主进程号,告诉Nginx重新生成一个/datal/logs/access.log文件,2009年5月20日的日志记录在这个新生成的日志文件中。而化3131瓜^/2009/05/3^88_20090519.108文件,就是2009年5月19日的日志文件。
|