2011-12-19 63 views
2

我想設置一個cron作業,它向一個url發送一個http請求。我將如何做到這一點?我以前從未設置過cronjob。如何使用cron作業發送HTML GET請求?

+0

這是一個簡單的方法來做到這一點:http://stackoverflow.com/questions/15274912/how-tose t-up-a-cron-job – 2014-05-25 05:42:24

回答

5

cron作業只是一個在常規預設時間間隔內在後臺執行的任務。

你可以用任何語言編寫實際的作業代碼 - 它甚至可以是一個簡單的php腳本或bash腳本。

PHP實例:

#!/usr/bin/php -q 
<?php 

file_put_contents('output.txt', file_get_contents('http://google.com')); 

接下來,安排cron作業:

10 * * * * /usr/bin/php /path/to/my/php/file > /dev/null 2>&1 

...上面的腳本會在後臺運行,每10分鐘一班。

這裏有一個很好的crontab教程:http://net.tutsplus.com/tutorials/other/scheduling-tasks-with-cron-jobs/

您也可以使用捲曲這取決於你想使用的請求方法做:

$url = 'http://www.example.com/submit.php'; 
// The submitted form data, encoded as query-string-style 
// name-value pairs 
$body = 'monkey=uncle&rhino=aunt'; 
$c = curl_init ($url); 
curl_setopt ($c, CURLOPT_POST, true); 
curl_setopt ($c, CURLOPT_POSTFIELDS, $body); 
curl_setopt ($c, CURLOPT_RETURNTRANSFER, true); 
$page = curl_exec ($c); 
curl_close ($c); 
2

你爲什麼不能使用wget。這是另一個tutorial

+1

你有一個死鏈接。 – 2014-11-16 07:44:08

2

最大的可能是你想要做的做到這一點作爲一個正常的(即非特權)用戶,所以假設你是在作爲非root用戶登錄:

$ echo 'curl -s http://example.com/ > /dev/null' > script.sh 
$ chmod +x script.sh 
$ crontab -e 

將此條目添加到做http請求每5分鐘一次:

*/5 * * * * /path/to/your/script.sh 

最好你不想script.sh給任何輸出時沒有錯誤,因此> /dev/null。否則cron會每5分鐘將輸出發送給(最有可能的根目錄)。

這應該足以讓你開始。在這一點上,如果你投入一些時間來學習一些關於cron的知識,這很好。你會做得很好BU閱讀cron的相應的手冊頁:

開始與格式驅動cron作業:與實際守護

$ man 5 crontab 

然後:

$ man cron 

一般建議:使其成爲閱讀所遇到的任何新的unix工具的手冊頁的習慣,而不是立即複製和粘貼命令行片段,花些時間閱讀交換機的工作。

+0

那麼在crontab文件中的行:「0,30 * * * * curl http://example.com」工作? – John 2011-12-19 15:35:46

0

,如果你使用Linux

crontab -e 

,並添加curl命令

10 15 * * * /usr/bin/curl --silent http://test.com?some=crontab &>/dev/null 

每天10時15分,你會發送HTML GET請求http://test.com與PARAM 「一些」和價值「 crontab「