crontab指定时间执行程序(秒)

  • crontab 指定秒执行
  • 原理: shell脚本for循环 for语句实现循环指定秒数执行。
  • laravel框架

crontab 命令,最小的执行时间是一分钟。如需要在小于一分钟内重复执行。

编写shell脚本实现 crontab.sh

#!/bin/bash
sec = 2 #间隔的秒数

for(( i = 0; i < 60; i=(i+sec))); do
    # date >> /tmp/crond.log
    cd '/data/www/laravel_pro/'  #我这里是laravel项目 cd 
    php artisan  >> /tmp/artisan.log  # 执行的是展示信息写入到log文件
    sleep $sec
done
exit 0

接下来执行crontab命令
crontab -e

* * * * * /tmp/artisan.log 

保存,退出

使用tail -f /data/bashs/crontab.sh 查看执行情况,可以见到log每2秒被写入一条记录

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

*/9 * * * * /data/bashs/crontab.sh

你可能感兴趣的:(crontab指定时间执行程序(秒))