如何在Linux中设置特定文件的最大大小

如何在Linux中设置特定文件的最大大小

我有一个应用程序,只要用户会话正在运行,它就会写入特定的日志文件。我正在寻找的是为日志文件的大小设置最大上限,以便它不会超过特定大小。两种有用的场景是:

  1. 任何监视日志文件的实用程序都会在达到最大大小时立即从头开始截断文件内容,以便应用程序可以继续在末尾附加内容。

  2. 任何支持创建文件时的实用程序我都可以指定该文件的最大大小,并且当文件达到该最大大小时,它不应该超出该点。

我不想要的是...

...设置一个 cron 作业或脚本,它将在特定时间间隔(例如 1 小时)后监视文件大小,然后在那时删除其内容。

答案1

作为一种粗略的解决方法,您可以将文件安装为循环设备并写入其中。它将是固定大小。

类似这样的:

dd if=/dev/zero of=/mnt/image bs=1M count=1024
mkfs.xfs /mnt/image 
mkdir /mnt/1
mount /mnt/image /mnt/1

然后记录到某些 /mnt/1/logfile.txt 并且它只会增长到 1gb。

正如我所说 - 这是一种粗暴的解决方法

答案2

查看logwatch。这应该可以满足您的需要,可能需要一些脚本。更高级的选项可能是 Splunk 或 graylog 之类的东西。

答案3

multilog将会daemontools完成您所要求的事情。

相关内容