如何在nohup命令中限制输出文件大小
导读:在nohup命令中,无法直接限制输出文件的大小。但是,您可以使用logrotate工具或编写一个简单的脚本来实现这个目的。 方法1:使用logrotate 创建一个名为myapp.conf的配置文件,内容如下: /path/to/you...
在nohup命令中,无法直接限制输出文件的大小。但是,您可以使用logrotate工具或编写一个简单的脚本来实现这个目的。
方法1:使用logrotate
- 创建一个名为
myapp.conf的配置文件,内容如下:
/path/to/your/output.log {
size 100M
rotate 5
compress
missingok
notifempty
create 640 user group
}
这里,我们设置了输出文件的最大大小为100M,保留5个旋转日志文件,压缩旧日志文件,如果日志文件丢失则不报错,如果日志文件为空则不进行旋转,以及设置新日志文件的权限和所属用户组。
- 将
myapp.conf添加到logrotate的配置目录(通常是/etc/logrotate.d/):
sudo cp myapp.conf /etc/logrotate.d/
- 在运行
nohup命令时,将输出重定向到/path/to/your/output.log:
nohup your_command >
/path/to/your/output.log 2>
&
1 &
现在,当output.log文件达到100M时,logrotate将自动对其进行压缩和归档,并创建一个新的日志文件。
方法2:编写一个简单的脚本
创建一个名为limited_output.sh的脚本,内容如下:
#!/bin/bash
output_file="/path/to/your/output.log"
max_size=100M
while true;
do
if [ $(stat -c%s "$output_file") -gt $(numfmt --from=iec $max_size) ];
then
mv "$output_file" "${
output_file}
.$(date +%Y%m%d%H%M%S)"
fi
your_command >
>
"$output_file"
sleep 1
done
这里,我们检查output.log文件的大小,如果超过100M,将其重命名为带有时间戳的文件。然后,将命令的输出追加到output.log文件中。每秒检查一次文件大小。
- 为脚本添加可执行权限:
chmod +x limited_output.sh
- 使用
nohup运行脚本:
nohup ./limited_output.sh &
这将限制output.log文件的大小,并在达到最大值时自动创建新的日志文件。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何在nohup命令中限制输出文件大小
本文地址: https://pptw.com/jishu/786138.html
