我想为每当我开始一个服务做日志文件旋转,但从来没有“自动”。
我正在运行一个基于python的服务,logging到一个特定的日志文件。 该服务(当前)不支持通知重新打开它的日志文件(例如USR1陷阱)。 此外,该服务不能重新启动日志文件旋转(它产生一个连续的audiostream,不应该中断)。
我正在运行的系统没有硬件时钟,所以每当系统启动时,时钟就会被重置,这使得日志条目源于同一文件中的不同重新启动,这是很乏味的(我多次获得相同的date)。
我也想保持各种靴子的历史。
所以想法是在每次启动时使用logrotation(仅)。
就像运行/usr/sbin/logrotate --force /etc/logrotate.d/myservice在启动服务之前应该做的。
现在我的问题是,是否有可能以这种方式在/etc/logrotate.d/myserviceconfiguration日志旋转,它将永远不会自动运行?
一个简单的解决办法是不把我的logrotate-config文件存储在/etc/logrotate.d/ ,而是“别的地方”。
但是,我想让我的用户能够在一个众所周知的地方findlogrotate-config(所以他们可以修改configuration的意愿)。
您可以configurationlogrotate来通过copy-truncate旋转文件,这样可以保留原始文件,而不需要重新创build日志文件。
语法是:
/tmp/output.log { size 1M copytruncate rotate 4 compress }
这将复制当前文件,然后cat /dev/null > file
这就是说,只有“自动”旋转文件在特定的地方,除非另有configuration。 我想你正在将脚本logging到/ var / log / httpd,这就是为什么它会自动旋转。
如果你不想/不需要使用它,为什么还要使用logrotate呢?
只需从启动脚本中旋转日志文件。