我有一个守护程序写入日志文件,最终填满磁盘。有没有办法让我定期限制日志文件的大小而不停止守护进程而不更改其中的代码? SIGHUP杀死守护进程。
答案 0 :(得分:4)
通常的诀窍是:
echo -n > /var/log/name.log
只要你的守护进程在追加模式下正确打开日志文件,那就行了。大多数人都这样做。 (该命令只是将文件大小截断为零,并且不会干扰另一个在追加模式下写入文件的进程。)
另一个选择是检查您的守护程序是否支持syslog并激活它。现在大多数Linux都附带了一些日志收集器,它自动(基于规则等)归档syslog文件。
答案 1 :(得分:0)
如果文件名是常量,您可以尝试创建一个fifo来代替日志文件,并从中读取到任意数量的单独日志文件。
答案 2 :(得分:0)
修剪日志文件但保留最后1000行:
echo "$(tail -1000 daemonlog)" > daemonlog