crontab实现每N秒执行一次

原文链接: https://my.oschina.net/u/3826227/blog/1934599

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

linux中的crontab 命令,最小的执行时间是一分钟。如需要在小于一分钟内重复执行,可以有两个方法实现。

一. 直接在crontab -e中。

* * * * * 执行命令绝对路径  文件绝对路径
* * * * * sleep 10; 执行命令绝对路径  文件绝对路径
* * * * * sleep 20; 执行命令绝对路径  文件绝对路径
* * * * * sleep 30; 执行命令绝对路径  文件绝对路径
* * * * * sleep 40; 执行命令绝对路径  文件绝对路径
* * * * * sleep 50; 执行命令绝对路径  文件绝对路径

上面,是每隔10秒执行一次,且,sleep的秒数必须能被60整除,不能有余数。

二. 使用sh脚本

脚本

#!/bin/bash
step=2 #间隔的秒数,不能大于60
 
for (( i = 0; i < 60; i=(i+step) )); do
    $(命令绝对路径 '文件绝对路径')
    sleep $step
done
 
exit 0

crontab -e

* * * * * /bin/bash  sh脚本绝对路径

需要注意的是,如果设置的间隔秒数不能被60整除,例如7,那么,就需要找到间隔与60的公倍数,即420, 那么上面的脚本中,

i < 60;

就要改成

i < 420

同时,crontab -e 中也要改成

*/7 * * * * /bin/bash  sh脚本绝对路径

转载于:https://my.oschina.net/u/3826227/blog/1934599

你可能感兴趣的:(crontab实现每N秒执行一次)