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

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.status

ubuntu

logrotate –version

logrotate 3.14.0Default mail command:       /usr/bin/mailDefault compress command:   /bin/gzipDefault uncompress command: /bin/gunzipDefault compress extension: .gzDefault state file path:    /var/lib/logrotate/statusACL support:                yesSELinux support:            yes

2.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 nginx  nginx -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