crontab 实现秒级定时任务的执行
传统暴力法
crontab -e
***** /usr/bin/curl 地址
***** sleep 10; /usr/bin/curl 地址
***** sleep 20; /usr/bin/curl 地址地址
***** sleep 30; /usr/bin/curl 地址
***** sleep 40; /usr/bin/curl 地址
***** sleep 50; /usr/bin/curl 地址
然后退出保存
但如果2秒要执行一次,就要写30条,这样实在是太不优雅了。所以采用shell脚本实现如下
shell 脚本实现
sudo vim crontab.sh
#!/bin/bash
step=2 #间隔的秒数,不能大于60
for (( i = 0; i < 60; i=(i+step) )); do
$(php '/www/wwwroot/rs/test.php')
sleep $step
done
exit 0
sudo vim test.php
<?php
@file_put_contents("/www/wwwroot/rs/crontabTest.log", var_export(date('Y-m-d H:i:s'), true) . "\n", FILE_APPEND);
sudo crontab -e
***** /www/wwwroot/rs/crontab.sh
启动定时任务,效果如下