使命令每小时运行一次


12

我有一个狮身人面像的索引器,我希望它在Linux中每小时运行一次。我该怎么办?

linux 

Answers:


14

由于其他所有人都在发布简短的答案,因此我认为我会更具描述性...

cron 是在大多数* nix系统上发现的守护程序,该守护程序以指定的间隔运行调度的命令。

通过将脚本复制到您选择的文件夹中,可以将其添加到列表中:

  • 每日定时
  • 每小时
  • cron。每月
  • cron.weekly

这些文件夹通常位于/etc文件夹下。


2
cron。*文件夹是很多发行版特定的。crontab是让cron按指定间隔运行项目的通用方法。
MDMarra'5

真正。我只是举一个例子。无论如何,crontab可以为您提供更多控制。
内森·奥斯曼


7

只是有所不同-

根据您的需要,您可以使用watch命令。

  watch --interval=3600 command

1
是否每1小时运行一次命令?还是运行命令,等待1h,然后再次运行?请注意,如果命令花费的时间很长,则会产生很大的不同。(我问是因为手册页中没有明确的内容。)
Malabarba

真正尝试一下并不难。
mimoralea


2

您将通过输入命令来编辑cron文件 crontab -e

进入“ vi”编辑器(对于当前的Linux和FreeBSD)。

然后输入以下内容:(输入“ i”进行插入)

00 * * * * /path/to/sphinx_indexer.exe

然后保存并退出(按“ esc”,然后输入以下内容)

:wq



1

如果您只是偶尔需要它,而不是像使用时那样永久存在cron,并且该watch解决方案不够灵活,则还可以使用良好的旧bash脚本:

while true; do
   # do stuff
   sleep $[60 * 60]
done

如果执行需要3599秒,则此方法不能作为#do Stuff起作用,然后根据要求脚本必须在病房触发下一秒并将时钟重置为0,但在这种情况下它将在3599秒暂停并然后继续睡眠下3600秒。迭代之间不会出现重叠,但会出现意料之外的差距。在这里,我猜用户正在尝试每小时执行一次没有cron的作业。
mannoj '16

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.