如果你有一个job, 需要每隔5秒运行一次.

* * * * * sleep 5; /bin/cmd

上面这个脚本是错误的,会导致在每分钟的第0秒开始, sleep 5秒以后, 再运行/bin/cmd, 然尔运行完就结束了, 不会每隔5秒运行一次.


正确的写法

* * * * * for i in {1..12}; do /bin/cmd; sleep 5; done
* * * * * REMAIN=60 INC=5 ; while ; do /bin/cmd; sleep $INC; REMAIN=$(($REMAIN - $INC)); done
* * * * * /bin/cmd
* * * * * sleep 5; /bin/cmd
* * * * * sleep 10; /bin/cmd
* * * * * sleep 15; /bin/cmd
......
* * * * * sleep 55; /bin/cmd