【问题标题】:How do I modify this cron script to give date 2 days back如何修改此 cron 脚本以将日期返回 2 天
【发布时间】:2019-08-23 22:07:00
【问题描述】:

在 crontab 中,在脚本之后我看到一个参数: date -d "($(date +\%Y\%m)-15) day ago" '+\%Y\%m\%d'

如果在 2019 年 8 月 23 日(即前一天)运行,则会生成一个日期 - “20190822”。

我的问题是:

1) 这里的“- 15”和“$(date +\%Y\%m\%d)”的作用是什么?

2) 如果我想生成 2 天前的数据,我该怎么办?

我尝试过: date -d "2 天前" '+%Y%m%d' 这适用于 bash 屏幕,但不会在 crontab 中运行该作业。

【问题讨论】:

    标签: bash shell datetime cron


    【解决方案1】:

    这看起来像您尝试使用不正确的日期格式在一个月中的固定日期。 这里的“-15”的目的是将日期设置为每月的第 15 天,然后使用“day ago”返回一天。 同样使用 %Y%m 你只能得到年和月,如果你得到 20190822 在你的脚本中有一个日期 +%Y%m%d。

    要回去两天:

        date -d "-2 days" +%Y%m%d
    

    我试过这个脚本:

        date_test=$(date -d "2 days ago" +%Y%m%d)
        echo $date_test > ~/test/date_test.out
    

    在我的文件中得到了 20190821。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-15
      • 2011-11-05
      • 2018-10-19
      • 2012-09-25
      • 2020-12-23
      • 1970-01-01
      • 2021-06-03
      • 2019-10-17
      相关资源
      最近更新 更多