如何安装logrotate将Nginx服务器的日志进行轮换?
如何自动滚动,压缩nginx的日志?
在Alpine Linux中安装和配置logrotate
执行以下命令:
# apk add logrotate
配置
默认情况下,cron每天都会调用logrotate:
# cat /etc/periodic/daily/logrotate
输出示例:
#!/bin/sh if [ -f /etc/conf.d/logrotate ]; then . /etc/conf.d/logrotate fi if [ -x /usr/bin/cpulimit ] && [ -n "$CPULIMIT" ]; then _cpulimit="/usr/bin/cpulimit --limit=$CPULIMIT" fi $_cpulimit /usr/sbin/logrotate /etc/logrotate.conf EXITVALUE=$? if [ $EXITVALUE != 0 ]; then /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]" fi exit 0
默认的logrotate文件是/etc/logrotate.conf:
# cat /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 # use date as a suffix of the rotated file dateext # exclude alpine files tabooext + .apk-new # uncomment this if you want your log files compressed compress # main log file /var/log/messages {} # apk packages drop log rotation information into this directory include /etc/logrotate.d # system-specific logs may be also be configured here.
让我们为nginx服务器创建一个配置文件:
# vi /etc/logrotate.d/nginx
内容如下:
/var/log/nginx/*.log { missingok sharedscripts postrotate /etc/init.d/nginx --quiet --ifstarted reopen endscript }
其中
/var/log/nginx/*。log
处理/var/log/nginx /目录中的所有日志文件。missingok
遇到任何错误时,不要终止,继续处理下一个日志文件。sharedscripts
共享脚本,表示postrotate脚本将只运行一次(在压缩旧日志之后),而不是对每个日志文件都运行一次。postrotate ... script/command ... endscript
在压缩旧日志后运行此脚本。这里的配置是,重新打开nginx的日志文件。
日期:2020-03-23 08:03:53 来源:oir作者:oir