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

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

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

sudo bash -c "sleep 1h; pm-suspend"

答案1

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

cron的格式为:

m h dom mon dow command

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

答案2

一步一步的指南如下:

  1. 编辑你的 crontab:在终端中输入:

    $ crontab -e
    
  2. 添加以下行。

    */15 * * * * sudo bash -c "sleep 1h; pm-suspend"
    
  3. 保存并退出:如果您使用的是 vi,则输入:wq然后按。enter

答案3

一种方法是运行计划任务每 15 分钟执行一次命令。如下所示,其中指定了每分钟:

0,15,30,45 * * * * /path/to/command

答案4

您可以尝试使用while循环,将以下代码保存在文件中并将其作为运行sudo bash <filename>。您必须运行一次,只要您不使用Ctrl+取消它,它就会在终端中运行C

#!/bin/bash
sudo bash -c "sleep 1h; pm-suspend"

相关内容