nohup 命令用于在后台运行命令,忽略挂起(SIGHUP)信号。默认情况下,nohup 会将输出重定向到名为 nohup.out 的文件中。为了实现日志轮转,你可以使用 logrotate 工具来管理日志文件。
以下是如何配置 logrotate 来实现 nohup 日志轮转的步骤:
安装 logrotate(如果尚未安装):
sudo apt-get install logrotate # Debian/Ubuntu
sudo yum install logrotate # CentOS/RHEL
创建 logrotate 配置文件:
在 /etc/logrotate.d/ 目录下创建一个新的配置文件,例如 nohup:
sudo nano /etc/logrotate.d/nohup
编辑配置文件: 在配置文件中添加以下内容:
/path/to/your/nohup.out {
daily
rotate 7
compress
missingok
notifempty
create 640 root adm
}
解释:
/path/to/your/nohup.out:替换为你的 nohup.out 文件的实际路径。daily:每天轮转一次日志文件。rotate 7:保留最近7天的日志文件。compress:压缩旧的日志文件。missingok:如果日志文件不存在,不会报错。notifempty:如果日志文件为空,不进行轮转。create 640 root adm:创建新的日志文件,权限为640,属主为root,属组为adm。测试 logrotate 配置:
你可以手动运行 logrotate 来测试配置是否正确:
sudo logrotate -f /etc/logrotate.d/nohup
自动轮转:
logrotate 通常会每天自动运行一次,检查并轮转符合条件的日志文件。你可以通过查看 /var/lib/logrotate/status 文件来确认 logrotate 的运行状态。
通过以上步骤,你可以实现 nohup 日志文件的自动轮转和管理。