在 Linux 系统中,nohup
命令用于在后台运行程序,即使关闭终端或断开连接,程序也会继续运行。默认情况下,nohup
会将输出重定向到名为 nohup.out
的文件中。为了实现日志轮转,我们可以结合使用 logrotate
工具。
以下是如何使用 logrotate
实现 nohup
命令的日志轮转:
-
首先,确保你的系统已经安装了
logrotate
。在大多数 Linux 发行版中,logrotate
已经预装。如果没有,你可以使用包管理器(如apt
、yum
或pacman
)来安装它。 -
创建一个名为
nohup-out.conf
的新配置文件,放在/etc/logrotate.d/
目录下。这个文件将包含针对nohup.out
文件的日志轮转设置。使用文本编辑器创建并编辑该文件,例如:sudo nano /etc/logrotate.d/nohup-out
-
在
nohup-out.conf
文件中,添加以下内容:/path/to/your/nohup.out { daily rotate 7 compress missingok notifempty create 0640 user group }
这里的配置表示:
daily
:每天轮转一次日志。rotate 7
:保留最近 7 天的日志文件。compress
:压缩旧日志文件以节省空间。missingok
:如果日志文件不存在,不会产生错误。notifempty
:如果日志文件为空,不进行轮转。create 0640 user group
:创建新的日志文件,权限为 0640,属主为用户(user),属组为组(group)。请根据实际情况替换user
和group
。
-
保存并关闭
nohup-out.conf
文件。 -
现在,
logrotate
将根据nohup-out.conf
中的配置自动轮转nohup.out
文件。你可以通过手动运行logrotate
命令来测试配置是否正确:sudo logrotate /etc/logrotate.d/nohup-out
检查
/path/to/your/
目录下是否生成了新的日志文件,以及旧的日志文件是否已被压缩。
现在,你已经成功配置了 nohup
命令的日志轮转。logrotate
将根据指定的策略自动处理日志文件,无需手动干预。