夏日时光 发表于 2023-2-28 23:39:58

Nginx--logrotate日志切割打包

1.系统是默认安装的,查看系统是否安装logrotate

centos

rpm -ql logrotate
/etc/cron.daily/logrotate
/etc/logrotate.conf
/etc/logrotate.d
/etc/rwtab.d/logrotate
/usr/sbin/logrotate
/usr/share/doc/logrotate-3.8.6
/usr/share/doc/logrotate-3.8.6/CHANGES
/usr/share/doc/logrotate-3.8.6/COPYING
/usr/share/man/man5/logrotate.conf.5.gz
/usr/share/man/man8/logrotate.8.gz
/var/lib/logrotate
/var/lib/logrotate/logrotate.statusubuntu

logrotate --version
logrotate 3.14.0
Default mail command:       /usr/bin/mail
Default compress command:   /bin/gzip
Default uncompress command: /bin/gunzip
Default compress extension: .gz
Default state file path:    /var/lib/logrotate/status
ACL support:                yes
SELinux support:            yes2.docker配置日志截取

创建文件
/etc/docker/daemon.json
内容
{
"log-driver": "json-file",
"log-opts": {
"max-size": "500m",
"max-file": "3"
}
}
max-size 指定日志文件大小上限
max-file   指定日志文件个数
systemctl daemon-reload
systemctl restart docker.service
3.创建logrotate 配置文件,系统会自动创建 crontab 任务自动执行

/etc/logrotate.d/nginx
/work/nginx/logs/*log {
    su root root
    create 0644 root root   
    daily            #每天执行一次
    rotate 365       #保留365个日志文件
    missingok             #如果日志丢失,不报错继续滚动下一个日志
    notifempty       #当日志文件为空时不生成新的文件
    compress         #压缩
    sharedscripts    #统一执行一次脚本postrotate
    postrotate       #运行脚本
         docker exec nginxnginx -s reload;
    endscript
}手动测试logrotate
logrotate -d -f /etc/logrotate.d/nginx

-d, --debug :debug模式,测试配置文件是否有错误。
-f, --force :强制转储文件。4.推荐博客:

https://www.cnblogs.com/kevingrace/p/6307298.html
来源:https://www.cnblogs.com/When6/p/17165918.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: Nginx--logrotate日志切割打包