nohup 2>&1输出日志

下面这条命令安装年月日的格式输出执行日志,可以正常正常输出,但是过了午夜11:59:59秒,到第二天的0:00的时候又不输出了,不会建立第二天的.log文件,这是为什么?

nohup python demo.py > /data/log_`date "+%Y-%m-$d"`_.log 2>&1 &
阅读 24.4k
4 个回答

执行顺序问题,"``"里面的代码先执行, 执行的结果作为字符串被嵌套在外层的命令中

最终变为

nohup python demo.py > /data/log_2017-04-10_.log 2>&1 &

通过ps命令你可以看到只有一个进程python demo.py

即使过了00:00 进程的PID也不会变化

使用crontab执行定时任务,
有两个方法处理

  1. 每天定时把进程杀掉,重新执行你的这个命令

  2. 固定一个日志的文件名,每天定时将日志文件按日期重命名。
    第二个方法既不用停掉应用,也可以自己自定义日志文件的粒度,你可以一小时一个文件~

新手上路,请多包涵

日期写错了$d应改为%d,date "+%Y-%m-$d" -> date "+%Y-%m-%d"

新手上路,请多包涵

你的设计思路不对,文件是进程启动时生成,之后就是这个文件了,输出流不会发生变化。我用的方案如下:
crontab -e
0 0 /1 * cat out.log > log_$(date +%Y%m%d).txt && echo > out.log

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题