为什么,nginx的log被自动压缩?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

为什么,nginx的log被自动压缩?

a123456678 2016-06-14 10:40:49 1664

为什么,nginx的log被自动压缩?每天都是差不多的时间发生,我没写这样的脚本,看了所有用户的crontab也没有这样的任务,这是nginx干的么?还是操作系统干的?
screenshot

应用服务中间件 nginx
分享到
取消 提交回答
全部回答(1)
  • a123456678
    2019-07-17 19:36:57

    因为Nginx在安装时加入了一个logrotate任务: /etc/logrotate.d/nginx

    /var/log/nginx/*.log { 
            daily 
            missingok 
            rotate 52 
            compress 
            delaycompress 
            notifempty 
            create 640 nginx adm 
            sharedscripts 
            postrotate 
                    [ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid` 
            endscript 
    } 
    Linux日志管理服务logrotate会定时读取该文件,根据设置按日志大小或天数删除/归档旧日志,创建新日志. 
    
    配置说明: 
    daily: 日志文件每天进行滚动 
    missingok: 如果找不到这个log档案,就忽略过去 
    rotate: 保留最进52次滚动的日志 
    compress: 通过gzip压缩转储以后的日志 
    delaycompress: 和compress一起使用时,转储的日志文件到下一次转储时才压缩
    notifempty 如果是空文件的话,不转储 
    create mode owner group:转储文件,使用指定的文件模式创建新的日志文件 
    sharedscripts: 运行postrotate脚本(该脚本作用为让nginx重新生成日志文件) 
    postrotate/endscript: 在转储以后需要执行的命令可以放入这个对,这两个关键字必须单独成行 

    logrotate默认被加入到cron的/etc/cron.daily中作为每日任务执行,配置定义在:
    /etc/cron.daily/logrotate
    查看logrotate最近进行了哪些日志归档:
    less /var/lib/logrotate/status
    查看/etc/cron.daily每日任务是什么时候运行的:
    less /etc/crontab

    1 0
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题
推荐课程