翼度科技»论坛 云主机 LINUX 查看内容

Nginx--logrotate日志切割打包

6

主题

6

帖子

18

积分

新手上路

Rank: 1

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

centos

rpm -ql logrotate
  1. /etc/cron.daily/logrotate
  2. /etc/logrotate.conf
  3. /etc/logrotate.d
  4. /etc/rwtab.d/logrotate
  5. /usr/sbin/logrotate
  6. /usr/share/doc/logrotate-3.8.6
  7. /usr/share/doc/logrotate-3.8.6/CHANGES
  8. /usr/share/doc/logrotate-3.8.6/COPYING
  9. /usr/share/man/man5/logrotate.conf.5.gz
  10. /usr/share/man/man8/logrotate.8.gz
  11. /var/lib/logrotate
  12. /var/lib/logrotate/logrotate.status
复制代码
ubuntu

logrotate --version
  1. logrotate 3.14.0
  2. Default mail command:       /usr/bin/mail
  3. Default compress command:   /bin/gzip
  4. Default uncompress command: /bin/gunzip
  5. Default compress extension: .gz
  6. Default state file path:    /var/lib/logrotate/status
  7. ACL support:                yes
  8. SELinux 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
  1. /work/nginx/logs/*log {
  2.     su root root
  3.     create 0644 root root   
  4.     daily            #每天执行一次
  5.     rotate 365       #保留365个日志文件
  6.     missingok             #如果日志丢失,不报错继续滚动下一个日志
  7.     notifempty       #当日志文件为空时不生成新的文件
  8.     compress         #压缩
  9.     sharedscripts    #统一执行一次脚本postrotate
  10.     postrotate       #运行脚本
  11.          docker exec nginx  nginx -s reload;
  12.     endscript
  13. }
复制代码
手动测试logrotate
  1. logrotate -d -f /etc/logrotate.d/nginx
  2. -d, --debug :debug模式,测试配置文件是否有错误。
  3. -f, --force :强制转储文件。
复制代码
4.推荐博客:
  1. https://www.cnblogs.com/kevingrace/p/6307298.html
复制代码
来源:https://www.cnblogs.com/When6/p/17165918.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

上一篇: Linux 经典脚本

下一篇: IO相关了解

举报 回复 使用道具