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
出力をファイルにリダイレクトするだけです。
Nohup Java -jar WEB-SNAPSHOT.jar > Nohup.$(date --iso).out
リダイレクトする場合、Nohup
はデフォルトのファイルを作成しませんが、リダイレクトで指定されたファイルを使用します。
また、コマンドの最後に&
は必要ないと思います。
プロセスをバックグラウンドで実行し、その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