![Systemd 限制标准输出文件大小](https://linux22.com/image/215548/Systemd%20%E9%99%90%E5%88%B6%E6%A0%87%E5%87%86%E8%BE%93%E5%87%BA%E6%96%87%E4%BB%B6%E5%A4%A7%E5%B0%8F.png)
我在 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 中数据丢失和硬件故障的首要原因。