Logrotate实现nginx日志切割
logrotate 简单用法
# 直接运行所有 logrotat的方法, 这将运行主logrotate文件,其中包括其他 logrotate 配置
logrotate -f /etc/logrotate.conf
# 以详细+强制模式运行它。
logrotate -vf /etc/logrotate.conf
# 如果要强制运行单个特定目录或守护程序的日志文件,它们将独立运行。(使用nginx作为例子)
logrotate -df /etc/logrotate.d/nginx
logrotate -f /etc/logrotate.d/nginx
-v:显示进程
-f:强制运行
Nginx 日志切割
$ cat /etc/logrotate.d/nginx
/var/log/nginx/*.log {
daily
missingok
rotate 7
compress
delaycompress
notifempty
create 0640 www-data www-data
dateext
dateformat -%Y-%m-%d-%s
sharedscripts
postrotate
/bin/kill -USR1 `cat /run/nginx.pid 2>/dev/null` 2>/dev/null || true
endscript
}
/var/log/nginx/*.log:日志文件的路径。根据你的实际Nginx日志路径进行修改。
daily:每天轮换日志。 其它可用值为‘daily’,‘weekly’或者‘yearly’。
missingok:如果日志文件不存在,则忽略它,不报错。
rotate 7:保留最近的7个轮换后的日志文件。
compress:轮换后压缩日志文件。
dateext:使用日期作为压缩文件的后缀。
dateformat -%Y-%m-%d-%s:指定日期格式,其中%Y表示四位年份,%m表示两位月份,%d表示两位日期,%s表示秒数。这将使得压缩文件的后缀为-YYYY-MM-DD-秒数.gz。
delaycompress:下一次轮换时才压缩上一次轮换的日志文件。
notifempty:如果日志文件为空,则不轮换。
create:创建新的空日志文件,并设置其权限和所有者。
sharedscripts:在所有日志文件都轮换后执行一次脚本。
postrotate和endscript:在轮换后执行的脚本,这里是重新打开Nginx以使其使用新的日志文件。
Last updated