linux上设置crontab,达到秒级执行的定时任务

1750人浏览 2020-09-16

系统OS:Ubuntu6.0,系统不支持秒级的定时任务,因工作需要,需要每隔几秒执行脚本,教程如下:

一.设置定时任务方式

1.连接服务器输入:

crontab -e

注意:如果第一次打开,需要选择默认编辑器,按照个人喜好选择。

2.编写代码每隔10秒执行脚本。

#每隔10秒执行脚本
* * * * *           /var/cron/webhook
* * * * * sleep 10; /var/cron/webhook
* * * * * sleep 20; /var/cron/webhook
* * * * * sleep 30; /var/cron/webhook
* * * * * sleep 40; /var/cron/webhook
* * * * * sleep 50; /var/cron/webhook

  或者每隔10秒访问url:

#每隔10秒访问url
* * * * *           /usr/bin/curl http://test.com
* * * * * sleep 10; /usr/bin/curl http://test.com
* * * * * sleep 20; /usr/bin/curl http://test.com
* * * * * sleep 30; /usr/bin/curl http://test.com
* * * * * sleep 40; /usr/bin/curl http://test.com
* * * * * sleep 50; /usr/bin/curl http://test.com

需要注意的是 sleep的时间,必须是能被60整除的整数,如,2,4,  6,12.

如果间隔太少,如每秒执行一次,建议用以下shell脚本方式实现。

二.shell脚本方式实现。

1.编写脚本:

#脚本位置
vim /var/crontab/task.sh

输入以下内容:

#!/bin/bash  
  
step=1 #间隔的秒数,不能大于60  
  
for (( i = 0; i < 60; i=(i+step) )); do  
    #执行的PHP脚本
    $(php '/var/www/test/crontab/task.php')  
    #等待时间
    sleep $step  
done  
  
exit 0

2.设置定时任务每分钟执行脚本。

crontab -e

输入:

#上一步设置脚本的位置
* * * * * /var/crontab/task.sh

实现crontab秒级任务执行的原理:在shell使用for语句实现循环指定秒数执行。

推荐文章

设置谷歌云服务器使用ssh密码方式远程连接服务器
2020-09-09
Linux查看IO占用过高的进程。
2021-11-22
Golang项目部署守护运行 使用bash脚本校验进程是否后台运行 并停止/启动/重启/编译运行go项目(后台守护运行)
2021-08-06
搜索文章