我需要写一个cron作业来写Python脚本,我们称之为"script.py",命令将是python3 script.py
请注意:这是一个连续运行的脚本,如果我将其设置为重新运行,它会在每次计划时吐出脚本,就像我将其放在每分钟一样。我试图将cron作业安排为每分钟运行一次脚本,这很有效(但这不是我想要的(。
有没有办法让它"现在"运行,但永远不会再运行,或者如果没有,每个月左右运行一次?我很困惑该怎么做。
例如,今天是2020年5月8日,现在是晚上7:21。我想现在开始执行这个cronjob(下一分钟是晚上7:22(,然后再也不执行脚本了?
例如,当我尝试在每个月8日晚上7:22运行它时,脚本在今天晚上7:22时不起作用。
我该怎么做?
如果只想运行一次作业,请不要使用cron
;它没有办法做到这一点。
如果您想在以后运行它,可能是在您注销之后,请使用at(1)
。
如果您想在短时间延迟后运行它,比如在您的示例中为1分钟,并且您计划保持登录状态(或者该作业使自己成为守护进程(,那么在shell中执行sleep 1m; myjob
可能会更简单。
如果你想每月运行一次作业,在8日晚上7:22,你应该可以进行
22 19 8 * * myjob
但请注意,时间是根据全局时区来解释的,该时区可能与您使用TZ
环境变量为自己设置的时区不匹配。根据https://askubuntu.com/questions/54364/how-do-you-set-the-timezone-for-crontab它应该是由文件CCD_ 6指定的时区。如果这不是您期望的时区,那么您可以相应地调整crontab
条目中的时间规范。