【问题标题】:How to update filename with date in current time如何用当前时间的日期更新文件名
【发布时间】:2017-11-28 17:12:46
【问题描述】:

我正在尝试启动一个 stdbuf,它能够每天在 shell 中使用此命令创建一个新日志:

stdbuf -i0 -o0 -e0 /.../my_dir/watchdog_foo >> /.../my_dir/log_foo_`date '+%F'` &

有了这个,我想要:

log_foo_2017-11-28
log_foo_2017-11-29
...

为了测试,我已经启动了另一个订单:

stdbuf -i0 -o0 -e0 /.../my_dir/watchdog_foo >> /.../my_dir/log_foo_`date '+%R'` &

试图查看是否每分钟创建一个日志,但没有发生。日志一直写在同一个文件上,而我跳的是:

log_foo_18:05
log_foo_18:06
...

我怎样才能修改这个命令来达到我的目的?

【问题讨论】:

    标签: shell date command filenames


    【解决方案1】:

    当您启动此命令时,date +%R 会被您的 shell 扩展为当前时间。之后,它不会再次更新,因此您的日志将被重定向到同一文件。要获得所需的行为,您需要每天重新启动脚本(以获取更新日期)。您可以使用cron 之类的工具在每晚午夜运行脚本,以终止前一个进程并使用新日期重新运行。

    您还可以考虑利用像 logrotate 这样的工具。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多