我有一个cron需要每30秒运行一次。

以下是我所拥有的:

*/30 * * * * /bin/bash -l -c 'cd /srv/last_song/releases/20120308133159 && script/rails runner -e production '\''Song.insert_latest'\'''

它能运行,但它是每30分钟或30秒运行一次吗?

此外,我一直在阅读,如果我经常运行cron,它可能不是最好的工具。有没有其他更好的工具,我可以使用或安装在Ubuntu 11.04上,这将是一个更好的选择?有没有办法修复上面的cron?


当前回答

使用注意:

$ watch --interval .30 script_to_run_every_30_sec.sh

其他回答

你可以看看我对这个类似问题的回答

基本上,我在这里包含了一个名为“runEvery.sh”的bash脚本,您可以用cron每1分钟运行一次该脚本,并将希望运行的实际命令和希望运行该命令的频率(以秒为单位)作为参数传递。

就像这样

* * * * ~/bin/ runeveryes.sh 5 myScript.sh

编写一个shell脚本 创建.sh文件

纳米every30second.sh

并编写脚本

#!/bin/bash
For  (( i=1; i <= 2; i++ ))
do
    write Command here
    sleep 30
done

然后为该脚本设置cron crontab - e

(*****/家庭/用户名/每30秒.sh)

这个cron调用.sh文件每1分钟&在.sh文件命令在1分钟内运行2次

如果你想运行脚本5秒,那么将30替换为5,并像这样更改for循环:I <= 12;我+ +))

当你选择任意一秒时,计算60/你的秒并写入for循环

使用fcron (http://fcron.free.fr/) -提供以秒为单位的粒度,比cron (vixie-cron)更好,功能更丰富,也更稳定。我曾经做过一些愚蠢的事情,比如在一台机器上运行60个php脚本,设置非常愚蠢,但它仍然发挥了作用!

这是简单而优雅的:

* * * * * /scripts/script.sh
* * * * *  sleep 30; /scripts/script.sh

我在这里偶然发现的。

Have a look at frequent-cron - it's old but very stable and you can step down to micro-seconds. At this point in time, the only thing that I would say against it is that I'm still trying to work out how to install it outside of init.d but as a native systemd service, but certainly up to Ubuntu 18 it's running just fine still using init.d (distance may vary on latter versions). It has the added advantage (?) of ensuring that it won't spawn another instance of the PHP script unless a prior one has completed, which reduces potential memory leakage issues.