我想每 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
一步一步的指南如下:
编辑你的 crontab:在终端中输入:
$ crontab -e
添加以下行。
*/15 * * * * sudo bash -c "sleep 1h; pm-suspend"
保存并退出:如果您使用的是 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"