温馨提示×

nohup日志如何实现日志轮转

小樊
41
2025-11-19 00:14:10
栏目: 编程语言

nohup 命令用于在后台运行命令,忽略挂起(SIGHUP)信号。默认情况下,nohup 会将输出重定向到名为 nohup.out 的文件中。为了实现日志轮转,你可以使用 logrotate 工具来管理日志文件。

以下是如何配置 logrotate 来实现 nohup 日志轮转的步骤:

  1. 安装 logrotate(如果尚未安装):

    sudo apt-get install logrotate  # Debian/Ubuntu
    sudo yum install logrotate      # CentOS/RHEL
    
  2. 创建 logrotate 配置文件: 在 /etc/logrotate.d/ 目录下创建一个新的配置文件,例如 nohup

    sudo nano /etc/logrotate.d/nohup
    
  3. 编辑配置文件: 在配置文件中添加以下内容:

    /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。
  4. 测试 logrotate 配置: 你可以手动运行 logrotate 来测试配置是否正确:

    sudo logrotate -f /etc/logrotate.d/nohup
    
  5. 自动轮转logrotate 通常会每天自动运行一次,检查并轮转符合条件的日志文件。你可以通过查看 /var/lib/logrotate/status 文件来确认 logrotate 的运行状态。

通过以上步骤,你可以实现 nohup 日志文件的自动轮转和管理。

0