nohup
命令用于在后台运行程序,即使关闭终端或断开连接,程序也会继续运行。默认情况下,nohup
会将输出重定向到名为 nohup.out
的文件中。随着时间的推移,这个文件可能会变得非常大,因此需要进行日志切割。
以下是使用 logrotate
工具进行日志切割的方法:
-
确保已经安装了
logrotate
。在大多数 Linux 发行版中,它已经是预装的。如果没有,可以使用包管理器进行安装,例如在 Ubuntu/Debian 上使用sudo apt-get install logrotate
。 -
创建一个名为
nohup-out.conf
的配置文件,用于指定nohup.out
文件的日志切割规则。可以使用文本编辑器创建和编辑该文件,例如使用nano
: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
) - 保留最近 7 天的日志文件(
rotate 7
) - 对旧的日志文件进行压缩(
compress
) - 如果日志文件不存在,不要报错(
missingok
) - 如果日志文件为空,不进行切割(
notifempty
) - 创建新的日志文件,权限为 0640,属主为用户,属组为组(
create 0640 user group
)
请根据实际情况替换
/path/to/your/nohup.out
、user
和group
。 - 每天切割一次日志(
-
保存并关闭
nohup-out.conf
文件。 -
测试
logrotate
配置是否正确。运行以下命令:sudo logrotate -f /etc/logrotate.d/nohup-out
如果没有错误信息,说明配置正确。
现在,logrotate
将根据指定的规则自动切割 nohup.out
日志文件。如果需要手动触发日志切割,可以运行 sudo logrotate -f /etc/logrotate.d/nohup-out
命令。