ITPub博客

首页 > 大数据 > Hadoop > nginx:按天自动切日志并压缩

nginx:按天自动切日志并压缩

Hadoop 作者:xiaoyan5686670 时间:2015-12-18 17:06:15 0 删除 编辑

 转载自:http://www.iteblog.com/archives/1244


默认情况下,nginx将每天网站访问的日志都写在一个文件里面,随着时间的推移,这个文件势必越来越大,最终成为问题。不过我们可以写个脚本来自动地按天(或者小时)切割日志,并压缩(节约磁盘空间)。
  脚本的内容如下:

01 #!/bin/bash
02  
03 logspath="/alidata/log/Nginx/access/"
04 yesterday=`date -d '-1 day' +%Y%m%d`
05 mv ${logspath}www.iteblog.com.access.log ${logspath}www.iteblog.com.access$yesterday.log
06 mv ${logspath}www.iteblog.com.error.log ${logspath}www.iteblog.com.error$yesterday.log
07 gzip ${logspath}www.iteblog.com.access$yesterday.log
08 gzip ${logspath}www.iteblog.com.error$yesterday.log
09  
10 kill -USR1 `cat /alidata/server/Nginx/logs/Nginx.pid`

  上面的程序是一个bash脚本。logspath是我网站日志存放的决定路径;yesterday是昨天的时间,格式是%Y%m%d;首先将当前nginx服务器正在写的日志移到带日期的文件中,然后调用gzip分别对access以及error日志进行压缩,压缩完的格式为gz。
  这里需要注意的是,mv完日志之后,一定需要调用kill -USR1 `cat /alidata/server/nginx/logs/nginx.pid`,否则mv之后网站的日志将不会写入到${logspath}www.iteblog.com.access.log文件中。
  这个脚本可以放到一个目录下面,这里假设放到了我home目录下/home/iteblog,名称是mvlogs.sh。我们需要定时的调用这个脚本才能切日志,可以利用Linux自带的定时功能crontab -e进行设置,内容如下:

1 00 00  * * * /bin/sh /home/iteblog/mvlogs.sh

  crontab配置计划任务的书写格式
  分钟 小时 日 月 周 [用户名] 命令
  说明:

  第一个参数定义的是:分钟,表示每个小时的第几分钟来执行。范围是从0-59
  第二个参数定义的是:小时,表示从第几个小时来执行,范围是从0-23
  第三个参数定义的是:日期,表示从每个月的第几天执行,范围从1-31
  第四个参数定义的是:月,表示每年的第几个月来执行,范围从1-12
  第五个参数定义的是:周,表示每周的第几天执行,范围从0-6,其中 0表示星期日。
  每六个参数定义的是:用户名,也就是执行程序要通过哪个用户来执行,这个一般可以省略;
  第七个参数定义的是:执行的命令和参数。
  设置完成之后,这个脚本就会在每天的00:00进行切日志操作。下面是我网站切除日志的格式

1 [root@iteblog access]# ll
2 total 1516
3 -rw-r--r-- 1 www root 203120 Jan  2 00:00 www.iteblog.com.access20150101.log.gz
4 -rw-r--r-- 1 www www  202423 Jan  2 23:59 www.iteblog.com.access20150102.log.gz
5 -rw-r--r-- 1 www www   33593 Jan  3 00:12 www.iteblog.com.access.log
6 -rw-r--r-- 1 www root   3533 Jan  1 23:52 www.iteblog.com.error20150101.log.gz
7 -rw-r--r-- 1 www root   2494 Jan  2 23:44 www.iteblog.com.error20150102.log.gz
8 -rw-r--r-- 1 www root      0 Jan  3 00:00 www.iteblog.com.error.log

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/22569416/viewspace-1874710/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: linux 切割文件
下一篇: JMeter, 压力测试
请登录后发表评论 登录
全部评论

注册时间:2012-07-25

  • 博文量
    108
  • 访问量
    276126