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 acrescenta (e cria, se não existir), ao arquivo dinâmico criado a cada minuto, qualquer mensagem STDOUT e STDERR. Agora eu queria ter pastas reais, como em
/logs/2018/05/29/10_05.log
mas alterando 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 se não, mas espero que seja executada apenas uma vez, a hora em que o script é executado e não em cada mensagem STDOUT.
Existe alguma solução para isso?
Obrigado