在CentOS系统中,nohup命令用于在后台运行程序,并且不受终端关闭的影响。nohup命令会将输出重定向到一个名为nohup.out的文件中。为了防止这个日志文件变得过大,可以使用日志轮转策略。
CentOS默认使用logrotate工具来管理日志文件的轮转。要配置nohup.out的轮转策略,你需要编辑/etc/logrotate.d/目录下的相关配置文件。以下是一些常见的配置选项:
/etc/logrotate.d/目录下的配置文件,例如rsyslog或syslog-ng,具体取决于你的系统配置。如果没有找到相关配置文件,你可以创建一个新的配置文件,例如nohup。sudo vi /etc/logrotate.d/nohup
/path/to/your/nohup.out {
size 100M
rotate 5
compress
missingok
notifempty
create 0640 root root
}
这里的配置选项解释如下:
size 100M:当日志文件达到100MB时,将触发轮转。rotate 5:保留5个轮转后的日志文件。compress:压缩轮转后的日志文件。missingok:如果日志文件不存在,不会产生错误。notifempty:如果日志文件为空,不进行轮转。create 0640 root root:创建新的日志文件,权限为0640,属主为root,属组为root。保存并关闭配置文件。
测试logrotate配置是否正确:
sudo logrotate -f /etc/logrotate.d/nohup
这将强制执行nohup.out的轮转策略。你可以查看/var/lib/logrotate/status文件来检查轮转操作是否成功。
注意:logrotate默认每天检查一次日志文件的轮转情况。如果你需要立即执行轮转操作,可以使用上面提到的logrotate -f命令。