web-dev-qa-db-ja.com

日付に基づいて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 AMNohup.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
Ajit Soman

出力をファイルにリダイレクトするだけです。

Nohup Java -jar WEB-SNAPSHOT.jar > Nohup.$(date --iso).out

リダイレクトする場合、Nohupはデフォルトのファイルを作成しませんが、リダイレクトで指定されたファイルを使用します。
また、コマンドの最後に&は必要ないと思います。

3
Thomas

プロセスをバックグラウンドで実行し、そのstdoutをファイルに記録することが目標である場合、それをサービスとして実装すると、さらに多くの機能を利用できます。

ExecStart=/usr/bin/Java -jar /opt/app/WEB-SNAPSHOT.tarのようなコマンドを開始する systemd service を作成します

また、 systemd.exec で説明されているように、一意のsyslog宛先にログを記録するように設定します。

StandardOutput=syslog
SyslogIdentifier=app
SyslogFacility=local6

その機能を/var/log/app.logのような独自のファイルに記録するようにsyslogを設定します

ファイルをローテーションするように/etc/logrotate.d/appを構成します。必要に応じて、dateformatおよびpostrotateスクリプトを使用します。

/var/log/app.log
1
John Mahowald