Systemd 限制标准输出文件大小

Systemd 限制标准输出文件大小

我在 Pi 4 上创建了一个 systemd 服务,该服务使用StandardOutput=file:/file/location/file.log.有没有办法限制日志文件的文件大小,防止其占用过多的空间?

答案1

我认为处理这个问题的最先进的方法是使用该logrotate程序(可能已经安装,并且定期自动运行,例如每天一次)。

为此,您需要yourservice.conf在目录中添加一个文件/etc/logrotate.d(检查/etc/logrotate.conf包含include /etc/logrotate.d)。这会每隔(略多于)10 MB 生成一个新文件,并保留最新的 5 个:

   /file/location/file.log {
       rotate 5
       size 10M
       postrotate
           systemctl restart yourservice.service
       endscript
   }

如果频率logrotate.timer太低(默认:每天),即如果您的程序size在一天内写入的内容超过了,您将必须修改计时器间隔。

请注意,如果 /file/location/file.log 位于 SD 卡上,建议您甚至不要开始在树莓派上写入不需要的高速日志:这些日志往往会相对较快地消失。闪存损坏是 RP 和类似 SBC 中数据丢失和硬件故障的首要原因。

相关内容