Назад | Перейти на главную страницу

Создать файл nohup.out по дате

Я использую nohup команда для запуска приложения веб-сервера Java. Я использую эту команду:

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 

Вы можете просто перенаправить вывод в файл.

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

Если вы перенаправляете, nohup не будет создавать файл по умолчанию, но будет использовать файл, указанный с перенаправлением.
Я тоже думаю, что вам не нужен & в конце вашей команды.

Если цель состоит в том, чтобы фоновый процесс и регистрировать его стандартный вывод в файл, есть больше функций, доступных, если вы реализуете его как службу.

Создать служба systemd который запускает команду, похожую на ExecStart=/usr/bin/java -jar /opt/app/WEB-SNAPSHOT.tar

Также установите его для входа в уникальное место назначения системного журнала, как описано в systemd.exec

StandardOutput=syslog
SyslogIdentifier=app
SyslogFacility=local6

Настройте syslog для записи этого объекта в отдельный файл, например /var/log/app.log

Настройте /etc/logrotate.d/app для поворота файла. При необходимости используйте скрипты dateformat и postrotate.

/var/log/app.log