Вывод журналов в динамически создаваемую структуру папок (на основе текущей даты), использование upstart для создания сервиса

Вывод журналов в динамически создаваемую структуру папок (на основе текущей даты), использование upstart для создания сервиса

У меня следующая конфигурация upstart:

start on runlevel [2345]
stop on runlevel [06]


respawn 
respawn limit 99 5
#respawn is used to start the nodejs again, even if it fails.

env NODE_ENV=production
env PROJ=/home

script
    cd $PROJ
    cd htdocs
    exec sudo /opt/nodejs/bin/node app.js 2>&1 >> $PROJ/logs/$(date +"%Y_%m_%d_%I_%M").log
end script

Это добавляет (и создает, если он не существует) к динамическому файлу, который создается каждую минуту, любые сообщения STDOUT и STDERR. Теперь я хотел иметь настоящие папки, как в

/logs/2018/05/29/10_05.log

но изменив код на

exec /opt/bitnami/nodejs/bin/node app.js 2>&1 >> $PROJ/logs/$(date +"%Y")/$(date +"%m")/$(date +"%d")/$(date +"%I_%M").log

не выдает ожидаемый вывод, потому что папка не существует. Я думал о добавлении элемента управления в скрипт, который проверяет, существует ли папка, и создает ее, если нет, но я ожидаю, что он будет запущен только один раз, во время выполнения скрипта, а не для каждого сообщения STDOUT.

Есть ли какое-то решение этой проблемы?

Спасибо

Связанный контент