如何强制(或解决方法)logrotate 将旧日志移动到不同物理磁盘上的 olddir?
How to force (or workaround) logrotate to move old logs to olddir on different physical disk?
我想logrotate
复制和t运行分类日志文件并在不同的物理磁盘上使用olddir。根据手册,olddir 不能在不同的物理磁盘上,因为 logrotate 的默认行为是只重命名原始日志文件,这在不同的物理磁盘上是不可能的。
好吧,但我正在使用 copytruncate
指令,它会复制原始文件,然后 运行cates 原始文件。因此,将新复制的文件移动到不同物理磁盘上的不同位置应该没有问题。
但是当我 运行 logrotate 时,它仍然抱怨日志文件和 olddir 在不同的设备上发出蜂鸣声。
有什么解决办法吗?可能 运行 宁一些自定义 postrotate 脚本将日志文件移动到所需的位置?
这来自 logrotate 手册页。
olddir directory <br>
Logs are moved into directory for rotation. **The directory must be on the
same physical device as the log file being rotated**, and is assumed to be
relative to the directory holding the log file unless an absolute path
name is specified. When this option is used all old versions of the log
end up in directory. This option may be overridden by the noolddir
option.
olddir
存在于同一物理设备上是限制。
可以使用以下解决方法。
将olddir
设置为同一物理磁盘中的目录,并使用postrotate
脚本将olddir
的内容移动到不同物理设备上的目录。
logrotate 配置文件示例:
/var/log/httpd/*log {
copytruncate
olddir /var/log/httpd/olddir
rotate 5
missingok
notifempty
sharedscripts
delaycompress
postrotate
mv /var/log/httpd/olddir/* /vagrant/httpd/olddir/
/sbin/service httpd reload > /dev/null 2>/dev/null || true
endscript
}
现在有属性 copy
、copytruncate
和 copyrename
可以与 olddir
结合使用以将文件移动到单独的设备。
我想logrotate
复制和t运行分类日志文件并在不同的物理磁盘上使用olddir。根据手册,olddir 不能在不同的物理磁盘上,因为 logrotate 的默认行为是只重命名原始日志文件,这在不同的物理磁盘上是不可能的。
好吧,但我正在使用 copytruncate
指令,它会复制原始文件,然后 运行cates 原始文件。因此,将新复制的文件移动到不同物理磁盘上的不同位置应该没有问题。
但是当我 运行 logrotate 时,它仍然抱怨日志文件和 olddir 在不同的设备上发出蜂鸣声。
有什么解决办法吗?可能 运行 宁一些自定义 postrotate 脚本将日志文件移动到所需的位置?
这来自 logrotate 手册页。
olddir directory <br>
Logs are moved into directory for rotation. **The directory must be on the
same physical device as the log file being rotated**, and is assumed to be
relative to the directory holding the log file unless an absolute path
name is specified. When this option is used all old versions of the log
end up in directory. This option may be overridden by the noolddir
option.
olddir
存在于同一物理设备上是限制。
可以使用以下解决方法。
将olddir
设置为同一物理磁盘中的目录,并使用postrotate
脚本将olddir
的内容移动到不同物理设备上的目录。
logrotate 配置文件示例:
/var/log/httpd/*log {
copytruncate
olddir /var/log/httpd/olddir
rotate 5
missingok
notifempty
sharedscripts
delaycompress
postrotate
mv /var/log/httpd/olddir/* /vagrant/httpd/olddir/
/sbin/service httpd reload > /dev/null 2>/dev/null || true
endscript
}
现在有属性 copy
、copytruncate
和 copyrename
可以与 olddir
结合使用以将文件移动到单独的设备。