将日志输出到动态创建的文件夹结构(基于当前日期),使用 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 消息附加到每分钟创建的动态文件中(如果不存在则创建)。现在我想要实际的文件夹,如下所示

/日志/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 消息上都运行。

有没有什么办法可以解决这个问题?

谢谢

相关内容