注:针对任何日志文件(rsyslog日志、Nginx访问或错误日志)

logrotate(轮转,日志切割)

如果没有日志轮转,日志文件会越来越大
将丢弃系统中最旧的日志文件,以节省空间
logrotate本身不是系统守护进程,它是通过计划任务crond每天执行

  1. [root@localhost ~]# cat /etc/cron.daily/logrotate
  2. #!/bin/sh
  3. /usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf
  4. # 日志轮转状态/var/lib/logrotate/logrotate.status
  5. # 日志轮转规则按照/etc/logrotate.conf中来
  1. [root@localhost ~]# ls /etc/logrotate.conf /etc/logrotate.d/
  2. /etc/logrotate.conf
  3. /etc/logrotate.d/:
  4. bootlog chrony syslog wpa_supplicant yum

主配置文件

  1. [root@localhost ~]# vim /etc/logrotate.conf
  2. weekly # 一周轮转一次
  3. rotate 4 # 保留4份日志
  4. create # 主动创建新的日志文件
  5. dateext # 使用日期来作为文件名的后缀
  6. #compress # 每次轮转需不需要进行压缩
  7. include /etc/logrotate.d # 导入其他应用的日志轮转规则
  8. /var/log/wtmp { # 对该日志文件设置轮转的方法
  9. monthly # 一个月轮转一次
  10. create 0664 root utmp # 轮转后创建新文件,并设置权限
  11. minsize 1M # 最小达到1M才会轮转
  12. rotate 1
  13. }
  14. /var/log/btmp {
  15. missingok # 丢失不提醒
  16. monthly
  17. create 0600 root utmp
  18. rotate 1
  19. }