【问题标题】:How to run cron job now and never run it again or run it every month?如何现在运行 cron 作业并且不再运行它或每月运行它?
【发布时间】:2020-05-09 08:35:36
【问题描述】:

我需要编写一个 cron 作业来编写 Python 脚本,我们称之为“script.py”,命令为python3 script.py

请注意:这是一个连续运行的脚本,如果我将其设置为重新运行,它会在每次安排时吐出脚本,就像我每分钟都放一次一样。我尝试安排 cron 作业每分钟运行一次脚本,这很有效(但这不是我想要的)。

有没有办法让它“现在”运行,但不再运行,或者如果没有,每月左右运行一次?我很困惑如何做到这一点。

例如,今天是 2020 年 5 月 8 日晚上 7:21。我想现在开始执行这个 cronjob(下一分钟晚上 7:22),然后再不让脚本再次执行?

例如,当我尝试在每月 8 日晚上 7:22 运行它时,脚本在今天晚上 7:22 时无法运行。

我该怎么做?

【问题讨论】:

标签: ubuntu cron


【解决方案1】:

如果你只想运行一次作业,不要使用cron;它没有办法做到这一点。

如果您想稍后运行它,可能在您退出后,请使用at(1)

如果您想在短暂延迟后运行它,例如您的示例中的 1 分钟,并且您打算保持登录状态(或者该作业使自己成为守护进程),那么在外壳。

如果你想每月运行一次作业,在 8 号晚上 7:22,你应该可以做到

22 19 8 * * myjob

但请注意,时间是根据全局时区解释的,这可能与您使用 TZ 环境变量为自己设置的时区不匹配。根据https://askubuntu.com/questions/54364/how-do-you-set-the-timezone-for-crontab,它应该是文件/etc/localtime指定的时区。如果这不是您期望的时区,那么您可以相应地调整 crontab 条目中的时间规范。

【讨论】:

    猜你喜欢
    • 2012-01-11
    • 2018-05-06
    • 2017-11-10
    • 1970-01-01
    • 1970-01-01
    • 2013-07-02
    • 2012-05-20
    相关资源
    最近更新 更多