好的,从我的angular度来看,这是一个非常实用的用例。
假设我有一个简单的shell oneliner,它将输出logging到一个文件中。 这可以是任何东西,例如tcpdump。 有没有任何通用的和微不足道的方法,以确保输出文件不会超过给定的大小?
在这之后,是为了防止错误地填充安装点上的整个可用空间。 如果我忘记脚本,或者每小时会产生大量的数据,那么这个简单的debugging任务可能会导致系统崩溃。
现在,我知道一些工具中的选项(如tcpdump中的-W / -C的组合)。 我需要的是非常通用的故障安全。
长话短说 – 当我运行一个脚本,如:
% this -is --my=very|awsome|script >> /var/tmp/output.log
如何确保output.log永远不会超过1GB。
脚本可能会崩溃,被杀害或任何其他。
我正在寻找的解决scheme应该是简单易用的,只使用ubuntu / debian / fedora等stream行发行版中可用的工具。 一般来说,广泛可用的东西 无论语言/技术如何,复杂的多行程序都不是一个选项。
你可以用这个head :
command | head -c 1G > /var/tmp/output.log
它接受K,M,G等作为后缀(字节是默认值)。 附加'B'使用基本的10个版本。
设置仅用于运行这些脚本的用户的最大文件大小。
文件/etc/security/limits限制用户的值为“default”,除非有特定用户的明确值。 这些用户特定的值将覆盖默认值。 该文件可能会有一个稍微不同的名称取决于您的操作系统。
如果您的日志用户名为log_maker,则将此行添加到文件中:
log_maker hard fsize 1000000
fsize之后的数字是以KB为单位的最大文件大小。