如何每 15 分钟运行一次命令?

Man*_*ntu 2 command-line

我想每 15 分钟运行一次命令。这是我要运行的命令:

sudo bash -c "sleep 1h; pm-suspend"
Run Code Online (Sandbox Code Playgroud)

nor*_*ley 6

由于声誉不足,我无法发表评论,但是 @Edwin Hernandez crontab 的示例*/15, *, *, *, * sudo bash -c "sleep 1h; pm-suspend"不正确,因为字段之间不应有逗号(每个星星都是一个单独的字段)。@米奇?有正确的格式。

cron的格式是:

m h dom mon dow command
Run Code Online (Sandbox Code Playgroud)

m 是分钟,h 是小时,dom 是月份中的第几天,mon 是月份,而 dow 是一周中的第几天。

在您的评论中,您提出了一个关于每天和每周跑步的补充问题。

14 04 * * * command 是每天凌晨 04:14

39 06 * * 3 command 是每周三早上 6 点 39 分(0 = 周日,1 = 周一,等等...)

39 06 * * wed command 作为上一行

警告 #1: 如果您使用* * * * wed command它,它将在每周三每小时每分钟运行一次。如果您只希望它每天运行一次,那么您需要指定您希望它每天运行的分钟数和小时数。我不止一次被这件事咬过。这可能非常令人沮丧。

警告#2: 如果您要运行的pm-suspend命令是命令,那么我建议您查看所有用户的所有 crontab 文件,以便在他们完成处理您认为重要的任何命令后找到合适的时间。例如,如果您从 05:44 开始运行备份,然后将您设置pm-suspend为在 05:50 运行,则备份可能在挂起之前尚未完成,这可能不是一个有用的状态。

示例中使用“随机”时间的原因是 crontab 经常在这些“随机”时间启动它们的命令以分散负载,因此很多进程不会同时启动

应该注意的是,如果设置了电子邮件,cron 的任何输出都会通过电子邮件发送给用户。您不会在屏幕/终端上看到任何输出。

一边

如果您需要在更短的时间范围内(默认为 2 秒)观察某些变化,那么这watch是一个有用的命令。找到这个命令真是天赐之物!

其他阅读

在 SO如何使 bash 命令定期运行?有很多链接可能有助于以其他方式解释事物。

或者,如果您可以应付有些冗长的man页面:

man 8 cron

man 1 crontab

man 5 crontab