2017-09-26 336 views
0

我有一堆数据要监控。我的数据是只能每小时检索一次的统计数据,但可以每秒更改一次,并且我想为每个数据集尽可能多地存储数据库。如何在脚本执行时间内每小时运行一次cron命令?

虽然我已经解决了这个问题的几种方法,但我最终选择一次刷新并读取所有统计数据,而不是单独读取它们。

因此,我出来了命令mycommand,它用几分钟的时间(比如30)来读取我所有的静态数据。现在我想每小时运行一次这个脚本,但考虑脚本执行。

我实际运行

* */1 * * * mycommand.sh 

,并收到很多(实际上为每小时)恼人的错误电子邮件和我effectly找回我的统计,每2个小时。

+0

仔细阅读* [crontab(5)](http://man7.org/linux/man-pages/man5/crontab.5.html) –

+1

您可以每30分钟运行一次并在该脚本会检查它是什么时间,并让它只在指定的次数内运行一组命令。主管也可能是一个选择。 – Hayden

+0

顺便说一下,这是什么用例?你为什么不能每隔一小时或每两小时就做一次这项工作?考虑编辑你的问题来激励它 –

回答

0

1小时30分钟是3小时的一半。所以你可以在crontab(5)有两个条目运行相同的/home/gogaz/mycommand.sh脚本,一个以1,4,7,...小时(从凌晨1点开始每隔3小时)运行它,另一个运行在2:30,5:30, 8:30,...(从上午2点30分开始每3小时)等

写这些条目留给读者练习。请参阅anacrontab(5)at(1)。例如,您可以使用batch运行脚本一次,但通过重新安排该脚本的at命令(缺点是处理意外错误)终止脚本。

如果您将stdout和stderr重定向到您的crontab项中,您将不会收到任何电子邮件。

相关问题