Logs de saída para uma estrutura de pastas criada dinamicamente (com base na data atual), usando o upstart para criar o serviço

Logs de saída para uma estrutura de pastas criada dinamicamente (com base na data atual), usando o upstart para criar o serviço

Eu tenho a seguinte configuração inicial:

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

Isso anexa (e cria, se não existir), ao arquivo dinâmico que é criado a cada minuto, quaisquer mensagens STDOUT e STDERR. Agora eu queria ter pastas reais, como em

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

mas mudando o código para

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

não fornece a saída esperada, porque a pasta não existe. Pensei em adicionar um controle no script, que verifica se a pasta existe ou não, e a cria caso não, mas espero que seja executado apenas uma vez, no momento em que o script é executado, e não em cada mensagem STDOUT.

Existe alguma solução para isso?

Obrigado

informação relacionada