【问题标题】:How to setup to use local time in cron schedule?如何设置在 cron 计划中使用本地时间?
【发布时间】:2021-03-25 20:55:39
【问题描述】:

Cron 默认使用 UTC 时区。如何将其设置为在 cron 表达式(用于 cron 计划)中使用本地时间(例如 CST)。

【问题讨论】:

    标签: cron


    【解决方案1】:

    您可以将系统的时区设置为预期的时区,然后在 cron 作业中说明该时区的时间:

    sudo timedatectl set-timezone America/New_York
    

    并确认输入timedatectl,或者做

    sudo dpkg-reconfigure tzdata
    

    更改时区后,一定要重启cron:

    sudo service cron restart
    

    定时任务:

    30 5 * * * echo "run at half past 5" >> ~/logfile.log 2>&1
    

    【讨论】:

    • 我确实设置了时区,但没有重新启动 cron,果然工作没有在我预期的时间运行。感谢@rndmGuy 关于重启 cron 的意见。
    【解决方案2】:

    Cron 不关心时区。它将当前时间与 cron 字符串进行比较,如果匹配则执行作业。

    【讨论】:

    • 不!这不是真的。
    • 如果你知道答案,那你为什么问这个问题?查看crontab.guru,您将看不到时区。但是,有一种解决方法。在linux.die.net/man/5/crontab中寻找 CRON_TZ
    • 不,我不知道答案。我只知道,我确实设置了在上午 12:05 运行的警报,但它确实在下午 5:05 运行。所以...但是感谢您分享链接,它可以帮助我更多地理解它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-28
    • 2012-07-28
    • 2010-12-29
    • 1970-01-01
    • 2011-06-25
    相关资源
    最近更新 更多