根据日期创建nohup.out文件

根据日期创建nohup.out文件

我正在使用nohup命令来运行 Java Web 服务器应用程序。这是我正在使用的命令:

nohup java -jar WEB-SNAPSHOT.jar &

此命令将创建一个文件nohup.out,我的服务器日志存储在此文件中。我希望根据日期创建此文件,即如果当前日期是2017-10-28,文件应该被创建nohup.2017-10-28.out,并且日期变为2017-10-29 上午12:00 nohup.2017-10-29.out文件应该自动创建等等。例如:

DATE       | File 
           |
2017-10-28 | nohup.2017-10-28.out
2017-10-29 | nohup.2017-10-29.out
2017-10-30 | nohup.2017-10-30.out 

答案1

您只需将输出重定向到文件即可。

nohup java -jar WEB-SNAPSHOT.jar > nohup.$(date --iso).out

如果您重定向,nohup将不会创建默认文件,但将使用重定向指定的文件。
我还认为您不需要&在命令末尾使用。

答案2

如果目标是让某个进程在后台运行并将其标准输出记录到文件中,则如果将其作为服务实现,则可以提供更多功能。

创建一个系统服务启动类似以下命令 ExecStart=/usr/bin/java -jar /opt/app/WEB-SNAPSHOT.tar

还可以将其设置为记录到唯一的 syslog 目标,如中所述systemd.exec

StandardOutput=syslog
SyslogIdentifier=app
SyslogFacility=local6

设置 syslog 将该功能记录到其自己的文件中,例如 /var/log/app.log

配置 /etc/logrotate.d/app 来轮换文件。根据需要使用 dateformat 和 postrotate 脚本。

/var/log/app.log

相关内容