微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何强制或解决方法logrotate将旧日志移动到不同物理磁盘上的olddir?

我想logrotate复制和截断日志文件,并在不同的物理磁盘上使用olddir。 根据手册,olddir不能在不同的物理磁盘,因为logrotate的认行为是只重命名原始的日志文件,这是不同的物理磁盘不可能。

那么,但我使用copytruncate指令,它使原始文件的副本,然后截断原始文件。 因此,将新复制的文件移动到不同物理磁盘上的不同位置应该没有问题。

但是当我运行logrotate的时候,它仍然抱怨logfile和olddir在不同的设备上运行。

有没有办法解决它? 可能运行一些自定义postrotate脚本,将日志文件移动到所需的位置?

如何找出进程正在使用的端口号

在Linux中最好的UMLdevise工具?

Linux套接字的文件描述符总是按照升序排列

ETS / Mnesia RAM表中官方/build议/允许的最大logging数(或RAM表大小)

我如何从我的Linux机器上完全卸载git?

如何用SEDreplace文件内部的撇号

在特定列中查找并replace破折号

RAM如何分配?

将Windows作为一个符合POSIX标准的操作系统是什么意思?

Linux:replace键值对,值包含文件path

这是从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设置为相同物理磁盘中的目录,然后使用olddir脚本将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 }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐