用户工具

站点工具


linux:logrotate

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
linux:logrotate [2017/11/23 21:42] – Add logroate usage memorylinux:logrotate [2023/12/03 10:24] (当前版本) – 外部编辑 127.0.0.1
行 4: 行 4:
  
 logrotate 基于 [[linux:crontab|crontab]] 来运行,运行脚本放在 ''/etc/cron.daily/logrotate'' 中,每日执行。 logrotate 基于 [[linux:crontab|crontab]] 来运行,运行脚本放在 ''/etc/cron.daily/logrotate'' 中,每日执行。
 +
 +===== Configuration =====
  
 配置文件位于 ''/etc/logrotate.conf'',centos 的默认配置如下: 配置文件位于 ''/etc/logrotate.conf'',centos 的默认配置如下:
行 42: 行 44:
 } }
 </code> </code>
 +
 +==== Directives ====
 +
 +下面对一些常用的指令进行说明
 +
 +=== 基础 ===
 +
 +**compress**:日志将会使用 ''gzip'' 压缩,''nocompess'' 相反
 +
 +**copytruncate**:复制原有日志,并将原有日志文件尺寸 truncate 至 0 。该功能可解决一些程序仍然往旧日志写入新日志内容的问题。
 +
 +**create [mode owner group], create [owner group]** :日志创建权限
 +
 +**ifempty**: 即使日志为空,仍然 Rotate 日志,''notifempty'' 相反
 +
 +**missingok**:日志不存在时不报告错误
 +
 +**rotate**:rotate 保留份数,默认为 0,当值为 0 时,旧日志将会被删除
 +
 +**size [size]**:当文件大小超过 ''[size]'' 时才 rotate 日志。''size'' 格式为 100k, 100M, 100G
 +
 +=== 格式 ===
 +
 +**dateext**:存档时使用 ''YYYYMMDD'' 后缀而不是添加数字
 +
 +=== 频率 ===
 +
 +**daily**:每天 ''rotate'' 日志一次
 +
 +**hourly**:每小时 ''rotate'' 日志一次,用户需要将 ''logrotate'' cron 改为每小时运行
 +
 +**weekly [weekday]**:每 ''weekday'' 执行 ''rotate'' 日志一次,0 为星期天,1 为星期一,如此类推,7 为每 7 天运行一次,无视 ''weekday''
 +
 +**monthly**:每个月 ''rotate'' 日志一次,一般在每月的第一天
  
 ===== Usage ===== ===== Usage =====
行 50: 行 86:
 /var/log/nginx/*.log { /var/log/nginx/*.log {
         daily                      # 每天备份一次         daily                      # 每天备份一次
 + copytruncate
         missingok         missingok
         rotate 60                  # 保留60份日志         rotate 60                  # 保留60份日志
行 56: 行 93:
         notifempty                 # 日志文件为空时,不执行         notifempty                 # 日志文件为空时,不执行
         create 640 nginx adm       # 创建日志文件的权限         create 640 nginx adm       # 创建日志文件的权限
-        sharedscripts              # *.log 所有文件执行完毕以后,才执行脚本 + dateext
-        postrotate +
-                if [ -f /var/run/nginx.pid ]; then +
-                        kill -USR1 `cat /var/run/nginx.pid`         # reload nginx +
-                fi +
-        endscript+
 } }
 </code> </code>
 +
 +===== Reference =====
 +
 +  * [[https://linux.die.net/man/8/logrotate|logrotate(8) man]]
 +  * [[https://huoding.com/2013/04/21/246|被遗忘的Logrotate]]
 +  * [[https://linux.cn/article-4126-1.html|Linux日志文件总管——logrotate]]
linux/logrotate.1511444556.txt.gz · 最后更改: 2023/12/03 10:24 (外部编辑)