如何轮转linux日志文件?
时间:2019-11-20 08:53:36 来源:igfitidea点击:
问:如何在Linux操作系统下轮换日志文件?
在Linux中,如何轮转日志文件?
Linux中,使用logrotate工具可以对日志文件进行自动轮转,压缩,删除或者邮寄。
每个日志文件都可以按照每天,每周,每月或者指定大小进行处理。
默认配置文件
缺省配置文件是/etc/logrotate.conf:
# see "man logrotate" for details # rotate log files weekly weekly # keep 4 weeks worth of backlogs rotate 4 # create new (empty) log files after rotating old ones create # uncomment this if you want your log files compressed #compress # RPM packages drop log rotation information into this directory include /etc/logrotate.d # no packages own wtmp -- we'll rotate them here /var/log/wtmp { monthly create 0664 root utmp rotate 1 }
针对特定服务的配置保存在/etc/logrotate.d目录中。
例如下面是Apache的配置文件:
# cat /etc/logrotate.d/httpd
输出:
/var/log/httpd/*.log { weekly rotate 52 compress missingok notifempty sharedscripts postrotate /bin/kill -HUP `cat /var/run/httpd.pid 2>/dev/null` 2> /dev/null || true endscript }
其中
- weekly:每周轮换一次。
- rotate 52:保留52个轮换日志文件。即保存日志1年。
- compress:使用gzip压缩旧版本的日志文件以节省磁盘空间。
- missingok:如果缺少日志文件,请继续执行下一个而不发出错误消息。
- notifempty:如果日志为空,就不轮转
- sharedscripts:通常,对每个循环的日志运行prerotate和postrotate脚本,这意味着对于与多个文件匹配的日志文件条目,单个脚本可以运行多次。如果指定了sharedscript,则无论有多少个日志与通配符模式匹配,脚本都只会运行一次。
- postrotate /bin/kill :在旋转日志文件后执行postrotate和endscript之间的行。