我一直在摆弄cron。如果你安排一个脚本每天运行,并且你的计算机在安排了它的计算机时关闭,那么如果你在一天晚些时候打开计算机它会运行吗?
答案 0 :(得分:2)
cron.daily计划在特定时间每天运行一次。如果您的计算机当时处于关闭状态,则会错过它。
查看 / etc / crontab 以查看计划何时运行。在那里你会看到日程安排..它遵循这个结构:
MIN HOUR DOM MON DOW CMD
你应该看到类似于......的东西。
02 4 * * * root run-parts /etc/cron.daily
这意味着每月每周凌晨4点运行/etc/cron.daily文件
答案 1 :(得分:1)
在Ubuntu上,您通常安装了anachron
。它将在下次运行您的日常工作
如果最后一次工作之间的间隔大于一天,则启动机器。如果您的机器暂时关闭,它将无法在当天晚些时候运行。
从手册页:
Anacron可用于定期执行命令,使用a 频率以天为单位。与cron(8)不同,它没有假设 机器连续运转。因此,它可以用于 一天24小时不运行的机器,每天控制, 通常由cron控制的每周和每月工作。
执行时,Anacron会从配置中读取作业列表 文件,通常是/ etc / anacrontab(参见anacrontab(5))。这个文件 包含Anacron控制的作业列表。每个工作条目 指定以天为单位的时段,以分钟为单位的延迟,以及独特的作业 标识符和shell命令。
对于每个作业,Anacron会检查此作业是否已执行 最后n天,其中n是为该作业指定的时间段。 如果没有,Anacron在等待之后运行作业的shell命令 指定为延迟参数的分钟数。
答案 2 :(得分:1)
快乐是对的。我可以补充一点,如果您需要每天运行脚本,但是您不确定计算机是否会在请求的时间启动,则可以将脚本放在 /etc/cron.daily 文件夹中。它将在启动时运行 您也可以使用Anacron。
答案 3 :(得分:0)
不幸的是没有。 Cron是一个守护进程,每分钟检查一次配置并运行配置的命令。另外,在特定于发行版的cron.daily中定义的cronjobs是在特定时间执行的,通常在/ etc / crontab中定义(读取/etc/cron.daily等中的所有配置)
如果您想确保每天执行一次作业,无论机器何时运行,我建议您将其添加到/etc/rc.local
以在启动后运行该命令。
修改强> 看起来像Ubuntu上的默认cron,anacron,做得更好。阅读Mithrandir的回答