linux定时任务每两天执行,Linux定时任务 crontab每秒执行 实现2种方法
linux crontab 命令,最小的執行時間是一分鐘, 如果要在小于一分鐘執行。
就要換個方法來實現,下面分別以兩種方法來實現:
tolog.php
file_put_contents('/home/fujieace/php/crontab/run.log', date('Y-m-d H:i:s')."\r\n", FILE_APPEND);
?>
一、 crontab 的延時: 原理:通過延時方法 sleep N 來實現每N秒執行。
crontab -e 輸入以下語句,然后 :wq 保存退出。
* * * * * /usr/bin/curl https://www.fujieace.com
* * * * * sleep 5; /usr/bin/curl https://www.fujieace.com
* * * * * sleep 10; /usr/bin/curl https://www.fujieace.com
* * * * * sleep 15; /usr/bin/curl https://www.fujieace.com
* * * * * sleep 20; /usr/bin/curl https://www.fujieace.com
* * * * * sleep 25; /usr/bin/curl https://www.fujieace.com
* * * * * sleep 30; /usr/bin/curl https://www.fujieace.com
* * * * * sleep 35; /usr/bin/curl https://www.fujieace.com
* * * * * sleep 40; /usr/bin/curl https://www.fujieace.com
* * * * * sleep 45; /usr/bin/curl https://www.fujieace.com
* * * * * sleep 50; /usr/bin/curl https://www.fujieace.com
* * * * * sleep 55; /usr/bin/curl https://www.fujieace.com
或
* * * * * php /home/fujieace/php/crontab/tolog.php
* * * * * sleep 5; php /home/fujieace/php/crontab/tolog.php
* * * * * sleep 10; php /home/fujieace/php/crontab/tolog.php
* * * * * sleep 15; php /home/fujieace/php/crontab/tolog.php
* * * * * sleep 20; php /home/fujieace/php/crontab/tolog.php
* * * * * sleep 25; php /home/fujieace/php/crontab/tolog.php
* * * * * sleep 30; php /home/fujieace/php/crontab/tolog.php
* * * * * sleep 35; php /home/fujieace/php/crontab/tolog.php
* * * * * sleep 40; php /home/fujieace/php/crontab/tolog.php
* * * * * sleep 45; php /home/fujieace/php/crontab/tolog.php
* * * * * sleep 50; php /home/fujieace/php/crontab/tolog.php
* * * * * sleep 55; php /home/fujieace/php/crontab/tolog.php
注意:
60必須能整除間隔的秒數(沒有余數),例如間隔的秒數是2,4,6,10,12等。
如果間隔的秒數太少,例如2秒執行一次,這樣就需要在crontab 加入60/2=30條語句。不建議使用此方法,可以使用下面介紹的第二種方法。
二、 shell 腳本實現
crontab.sh
#!/bin/bash
step=2 #間隔的秒數,不能大于60
for (( i = 0; i < 60; i=(i+step) )); do
$(php '/home/fujieace/php/crontab/tolog.php')
sleep $step
done
exit
crontab -e 輸入以下語句,然后:wq 保存退出。
# m h dom mon dow command
* * * * * /home/fujieace/php/crontab/crontab.sh
使用以下命令查看結果
[email?protected]:~/php/crontab$ tail -f run.log
原理:在sh使用for語句實現循環指定秒數執行。
注意:如果60不能整除間隔的秒數,則需要調整執行的時間。例如需要每7秒執行一次,就需要找到7與60的最小公倍數,7與60的最小公倍數是420(即7分鐘)。
則 crontab.sh step的值為7,循環結束條件i<420, crontab -e可以輸入以下語句來實現
# m h dom mon dow command
*/7 * * * * /home/fujieace/php/crontab/crontab.sh
總結
以上是生活随笔為你收集整理的linux定时任务每两天执行,Linux定时任务 crontab每秒执行 实现2种方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据库性能分析mysql_mysql数据
- 下一篇: cmd imp导入dmp文件_这是一篇长