Linux crontab实现按秒执行脚本

2017-06-26 23:26:39 9438

这里为了简单就用crontab来实现,但是我们发现,默认的最小单位是分钟而不是秒。

image.png


我们首先建立一个shell脚本

vim zgy.sh

在里面写入

#!/bin/bash

step=1

for((i=0;i<60;i=(i+step)));do

echo hhh >> /sy.txt

sleep $step

done

exit 0

image.png

然后为脚本增加执行权限chmod +x zgy.sh

image.png

然后添加计划任务

image.png

在其中写入 * * * * * /root/zgy.sh

image.png

这样就成功了。其中echo hhh >> /sy.txt就是我们需要每秒执行的内容。

setp=1就是我们每秒执行一次。可以改成我们需要的。

我们可以wc -l /sy.txt来统计文件的行数,看是否每秒增加了一行


如果60不能整除间隔的秒数,则需要调整执行的时间。例如需要每8秒执行一次,就需要找到8与60的公倍数,8与60的最小公倍数是120(即2分钟)。 则zgy.sh的值为2,将循环结束条件修改为i<120, crontab -e可以输入以下语句来实现

*/2 * * * * /root/zgy.sh

脚本需要修改为

#!/bin/bash

step=8

for((i=0;i<120;i=(i+step)));do

echo hhh >> /sy.txt

sleep $step

done

exit 0

其他时间也是以此类推即可。

提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: