问题描述
好的,我有一个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?
最佳解决思路
您在分钟说明符中有*/30 – 这意味着每分钟但步长为30(换句话说,每半小时)。由于cron没有达到sub-minute分辨率,您需要找到另一种方法。
一种可能性,虽然它有点像kludge,但是有两个工作,一个偏移30秒:
* * * * * /path/to/executable param1 param2
* * * * * ( sleep 30 ; /path/to/executable param1 param2 )
两个cron作业实际上每分钟运行一次,但后者将在执行作业的”meat” /path/to/executable之前等待半分钟。
次佳解决思路
你不能。 Cron的粒度为60秒。
* * * * * cd /srv/last_song/releases/20120308133159 && script/r