在 CentOS 系统中,nohup
命令本身并不提供直接限制输出文件大小的功能。但是,你可以结合使用 logrotate
工具来实现这一需求。
首先,确保你的系统已经安装了 logrotate
。如果没有,可以使用以下命令安装:
sudo yum install logrotate
接下来,创建一个名为 myapp.conf
的 logrotate
配置文件,用于配置你的应用程序日志文件的滚动策略。例如,如果你想限制日志文件大小为 10MB,并保留 3 个旧的日志文件,可以创建如下配置文件:
/path/to/your/output.log {
size 10M
rotate 3
compress
missingok
notifempty
create 640 root root
}
在这个配置文件中:
size 10M
表示当地日志文件达到 10MB 时,将触发滚动。rotate 3
表示保留 3 个旧的日志文件。compress
表示压缩旧的日志文件。missingok
表示如果日志文件不存在,不会产生错误。notifempty
表示如果日志文件为空,不进行滚动。create 640 root root
表示创建新的日志文件时,设置文件权限为 640,属主为 root,属组为 root。保存配置文件后,你可以使用 nohup
命令运行你的应用程序,并将输出重定向到 output.log
文件:
nohup your_app_command > /path/to/your/output.log 2>&1 &
最后,确保 logrotate
定期检查你的日志文件。你可以将以下 cron 任务添加到 /etc/crontab
文件中,以便每天检查一次:
0 0 * * * root logrotate /path/to/your/myapp.conf
这样,你的应用程序日志文件大小将被限制在 10MB,并保留 3 个旧的日志文件。