3

我有一个写入日志文件的守护进程,最终会填满磁盘。有没有办法让我定期限制日志文件的大小而不停止守护程序而不更改其中的代码?SIGHUP 杀死守护进程。

4

3 回答 3

4

通常的技巧是:

echo -n > /var/log/name.log

如果您的守护程序以附加模式正确打开日志文件,这将起作用。他们中的大多数人都这样做。(该命令只是将文件大小截断为零,并且不会干预以附加模式写入文件的另一个进程。)

另一种选择是检查您的守护进程是否支持 syslog 并激活它。现在大多数 Linux 都附带一些日志收集器,它会自动(基于规则等)归档 syslog 文件。

于 2010-06-15T14:49:12.597 回答
0

要修剪日志文件但保留最后 1000 行:

echo "$(tail -1000 daemonlog)" > daemonlog
于 2014-03-29T02:17:23.947 回答
0

如果文件名是恒定的,您可以尝试创建一个 fifo 来代替日志文件,并根据需要将其读取到尽可能多的单独日志文件中。

于 2010-06-15T11:09:46.477 回答