温馨提示×

nohup命令如何实现日志轮转

小樊
76
2025-03-22 00:57:42
栏目: 编程语言

nohup 命令本身不提供日志轮转功能,但你可以将其输出重定向到一个文件,并使用 logrotate 工具来实现日志轮转。以下是如何配置和使用它们的步骤:

  1. 使用 nohup 命令将程序的输出重定向到一个文件。例如,如果你想运行名为 myapp 的程序并将输出保存到名为 myapp.log 的文件中,可以使用以下命令:
nohup ./myapp > myapp.log 2>&1 &

这会将标准输出和标准错误都重定向到 myapp.log 文件,并在后台运行程序。

  1. 创建一个 logrotate 配置文件。在你的 /etc/logrotate.d/ 目录下创建一个新文件,例如 myapp。在这个文件中,添加以下内容:
/path/to/myapp.log {
    daily
    rotate 7
    compress
    missingok
    notifempty
    create 640 root adm
}

这个配置文件指定了以下选项:

  • daily:每天轮转日志。
  • rotate 7:保留7个轮转后的日志文件。
  • compress:压缩轮转后的日志文件。
  • missingok:如果日志文件不存在,不要报错。
  • notifempty:如果日志文件为空,不进行轮转。
  • create 640 root adm:创建新的日志文件,权限为640,属主为root,属组为adm。
  1. 确保 logrotate 服务已启用并运行。在大多数Linux发行版中,logrotate 服务默认是启用的。你可以使用以下命令检查其状态:
sudo systemctl status logrotate

如果服务未运行,可以使用以下命令启动它:

sudo systemctl start logrotate

现在,你的程序的输出将被记录到 myapp.log 文件中,并且 logrotate 将每天自动轮转日志文件。

0