欢迎关注Hadoop、Spark、Flink、Hive、Hbase、Flume等大数据资料分享微信公共账号:iteblog_hadoop
  1. 文章总数:978
  2. 浏览总数:11,981,815
  3. 评论:3939
  4. 分类目录:106 个
  5. 注册用户数:6130
  6. 最后更新:2018年12月15日
过往记忆博客公众号iteblog_hadoop
欢迎关注微信公众号:
iteblog_hadoop
大数据技术博客公众号bigdata_ai
大数据猿:
bigdata_ai

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

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

#!/bin/bash 

logspath="/alidata/log/Nginx/access/"
yesterday=`date -d '-1 day' +%Y%m%d`
mv ${logspath}www.iteblog.com.access.log ${logspath}www.iteblog.com.access$yesterday.log
mv ${logspath}www.iteblog.com.error.log ${logspath}www.iteblog.com.error$yesterday.log
gzip ${logspath}www.iteblog.com.access$yesterday.log
gzip ${logspath}www.iteblog.com.error$yesterday.log

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进行设置,内容如下:

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

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

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

[root@iteblog access]# ll
total 1516
-rw-r--r-- 1 www root 203120 Jan  2 00:00 www.iteblog.com.access20150101.log.gz
-rw-r--r-- 1 www www  202423 Jan  2 23:59 www.iteblog.com.access20150102.log.gz
-rw-r--r-- 1 www www   33593 Jan  3 00:12 www.iteblog.com.access.log
-rw-r--r-- 1 www root   3533 Jan  1 23:52 www.iteblog.com.error20150101.log.gz
-rw-r--r-- 1 www root   2494 Jan  2 23:44 www.iteblog.com.error20150102.log.gz
-rw-r--r-- 1 www root      0 Jan  3 00:00 www.iteblog.com.error.log
本博客文章除特别声明,全部都是原创!
转载本文请加上:转载自过往记忆(https://www.iteblog.com/)
本文链接: 【nginx:按天自动切日志并压缩】(https://www.iteblog.com/archives/1244.html)
喜欢 (8)
分享 (0)
发表我的评论
取消评论

表情
本博客评论系统带有自动识别垃圾评论功能,请写一些有意义的评论,谢谢!