How would I use a cron job to send an HTML GET request?

前端 未结 4 615
没有蜡笔的小新
没有蜡笔的小新 2021-01-22 14:28

I would like to set up a cron job which sends an http request to a url. How would I do this? I have never set up a cronjob before.

相关标签:
4条回答
  • 2021-01-22 14:57

    if you use linux

    crontab -e
    

    and add curl command

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

    every day 10:15 you will send html GET request to http://test.com with param "some" and value "crontab"

    0 讨论(0)
  • 2021-01-22 15:00

    A cron job is just a task that get's executed in the background at regular pre-set intervals.

    You can pretty much write the actual code for the job in any language - it could even be a simple php script or a bash script.

    PHP Example:

    #!/usr/bin/php -q
    <?php 
    
    file_put_contents('output.txt', file_get_contents('http://google.com'));
    

    Next, schedule the cron job:

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

    ... the above script will run every 10 minutes in the background.

    Here's a good crontab tutorial: http://net.tutsplus.com/tutorials/other/scheduling-tasks-with-cron-jobs/

    You can also use cURL to do this depending on what request method you want to use:

    $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);
    
    0 讨论(0)
  • 2021-01-22 15:01

    Most probably you want do do this as a normal (i.e. non-privileged) user, so assuming that you are logged in as non-root user:

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

    Add this entry to do the http request once every 5 minutes:

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

    Preferably you don't want script.sh to give any output when there is no error, hence the > /dev/null. Otherwise cron will email the output to (most likely root) every 5 minutes.

    That should be enough to get you started. At this point it's good if you invest some time to learn a bit about cron. You'll do well bu reading the appropriate man page for cron:

    Start with the format for driving the cron jobs:

    $ man 5 crontab
    

    Then with the actual daemon:

    $ man cron
    

    General advice: make it a habit of reading the man page of any new unix tools that you encounter, instead of immediately copying and pasting command line snippets, spend some time reading what the switches do.

    0 讨论(0)
  • 2021-01-22 15:06

    Why can't you use wget. Here is another tutorial.

    0 讨论(0)
提交回复
热议问题