今天一位朋友問我:老范 我的定時任務咋不執行,命令如下:
* * * * * /usr/bin/curl http://www.test.com/index.php?a=login&m=crontab >> /home/laofandata/cron.log 2>&1
隨即開始排查:
1 單獨訪問了這個url。成功!
2 我登陸寶塔面板。添加了訪問url的定時任務。 可以正常請求
3 查看服務器cron服務。發現沒啟動。 開啟下:
service crond start
4 新增一個定時任務,訪問百度,並寫入日志 , 顯示成功
* * * * * /usr/bin/curl http://www.baidu.com >> /home/laofandata/cron_baidu.log 2>&1
此時我就納悶了。。為啥那個還不行呢。 查詢了資料發現一個問題。我們的鏈接中 帶 & 符號。 curl 服務不能正常解析,訪問不到。修改如下:
* * * * * /usr/bin/curl 'http://www.test.com/index.php?a=login&m=crontab' >> /home/laofandata/cron.log 2>&1
其實就是在 這個連接上 加了 單引號 ! 完美解決!
番外:
Centos cron命令
service crond start
service crond stop
service crond reload
service crond status
Ubuntu上。你需要把 crond 換成 cron
service cron start
service cron stop
service cron reload
service cron status