1 crontab 的延時: 原理:經過延時方法 sleep N 來實現每N秒執行。php
crontab -e 輸入如下語句,而後 :wq 保存退出。shell
* * * * * /usr/bin/curl http://www.test.com * * * * * sleep 5; /usr/bin/curl http://www.test.com * * * * * sleep 10; /usr/bin/curl http://www.test.com * * * * * sleep 15; /usr/bin/curl http://www.test.com * * * * * sleep 20; /usr/bin/curl http://www.test.com * * * * * sleep 25; /usr/bin/curl http://www.test.com * * * * * sleep 30; /usr/bin/curl http://www.test.com * * * * * sleep 35; /usr/bin/curl http://www.test.com * * * * * sleep 40; /usr/bin/curl http://www.test.com * * * * * sleep 45; /usr/bin/curl http://www.test.com * * * * * sleep 50; /usr/bin/curl http://www.test.com * * * * * sleep 55; /usr/bin/curl http://www.test.com
注意:ubuntu
60必須能整除間隔的秒數(沒有餘數),例如間隔的秒數是2,4,6,10,12等。bash
若是間隔的秒數太少,例如2秒執行一次,這樣就須要在crontab 加入60/2=30條語句。不建議使用此方法,可使用下面介紹的第二種方法。dom
2 shell 腳本實現curl
crontab.sh學習
#!/bin/bash step=2 #間隔的秒數,不能大於60 for (( i = 0; i < 60; i=(i+step) )); do $(php '/home/fdipzone/php/crontab/tolog.php') sleep $step done exit 0
crontab -e 輸入如下語句,而後:wq 保存退出。url
# m h dom mon dow command * * * * * /home/fdipzone/php/crontab/crontab.sh
使用如下命令查看結果spa
fdipzone@ubuntu:~/php/crontab$ tail -f run.log
原理:在sh使用for語句實現循環指定秒數執行。code
注意:若是60不能整除間隔的秒數,則須要調整執行的時間。例如須要每7秒執行一次,就須要找到7與60的最小公倍數,7與60的最小公倍數是420(即7分鐘)。
則 crontab.sh step的值爲7,循環結束條件i<420, crontab -e能夠輸入如下語句來實現
# m h dom mon dow command */7 * * * * /home/fdipzone/php/crontab/crontab.sh
參考網上,僅供學習交流
歡迎交流反饋