在 CentOS 系统中,使用 nohup 命令运行程序时,通常会将输出重定向到一个文件,例如 nohup.out。为了防止日志文件过大,我们需要对其进行轮转。可以使用 logrotate 工具来实现日志轮转。
首先,确保已经安装了 logrotate。如果没有安装,可以使用以下命令安装:
sudo yum install logrotate
接下来,创建一个 logrotate 配置文件,例如 /etc/logrotate.d/myapp,并添加以下内容:
/path/to/your/app/nohup.out {
daily
rotate 7
compress
missingok
notifempty
create 640 root root
}
这里的配置表示:
daily)rotate 7)compress)missingok)notifempty)create 640 root root)最后,确保 logrotate 定时任务已启用。编辑 /etc/cron.daily/logrotate 文件,确保其中包含以下内容:
#!/bin/sh
/usr/sbin/logrotate /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
/usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0
现在,logrotate 将每天自动轮转 nohup.out 日志文件。如果需要手动触发日志轮转,可以运行以下命令:
sudo logrotate /etc/logrotate.d/myapp
这样,你就可以使用 nohup 命令在 CentOS 系统中进行日志轮转了。