的手册页logrotate说:
It can be used when some program cannot be told to close its logfile
and thus might continue writing to the previous log file for some
time.
Run Code Online (Sandbox Code Playgroud)
我对此感到困惑。如果程序不能被告知关闭其日志文件,它将续写永恒,而不是一段。如果压缩被推迟到下一个循环周期,即使在下一个循环周期之后,程序也会继续写入该文件。延期如何解决问题?
我的理解是copytruncate当不能告诉程序关闭日志文件时应该使用它。我知道一些写入日志文件的数据在复制过程中会丢失。
我正在查看 couchdb 的 logrotate 文件,它有copytruncate和delaycompress选项。
/usr/local/couchdb-1.0.1/var/log/couchdb/*.log {
weekly
rotate 10
copytruncate
delaycompress
compress
notifempty
missingok
}
Run Code Online (Sandbox Code Playgroud)
看起来使用delaycompresswhencopytruncate已经没有意义了。我错过了什么?
wom*_*ble 35
您对 的理解copytruncate是正确的,但联机帮助页中的措辞delaycompress有点误导。更恰当地说,它应该说“当某些程序不能被告知立即关闭它的日志文件时”——例如,如果您使用的是共享脚本,并且脚本在所有日志文件都已轮换后使用日志向进程发送信号.
小智 5
我们用:
这将创建 apache 的固定副本access_log access_log.1,以便我们可以在一天结束时将 Stats 包作为脚本运行。
第二天 logrotate 压缩文件创建access_log.2.zip
| 归档时间: |
|
| 查看次数: |
74542 次 |
| 最近记录: |