CRON command to run URL address every 5 minutes
Asked Answered
S

9

89

I'm newbie in cron commands and I need help.

I have a script on http://example.com/check/.

Whats is command for cron to run this URL every 5 minutes?

I tried

*/5 * * * * /home/test/check.php

But I want to run URL not relative script address. How to do it?

Scoville answered 7/7, 2012 at 13:8 Comment(3)
Check out the related questions (lower right) - [#1830708Ballinger
I tried */5 * * * * /home/test/check.php But I want to run URL not relative script address. How to do it?Scoville
That's a file not a URL - just perform a wget in the urlBallinger
B
140

Based on the comments try

*/5 * * * * wget http://example.com/check

[Edit: 10 Apr 2017]

This answer still seems to be getting a few hits so I thought I'd add a link to a new page I stumbled across which may help create cron commands: https://crontab.guru

Ballinger answered 7/7, 2012 at 13:18 Comment(4)
wget will create temporary files uses like thatToshikotoss
Edited to ensure temporary file not created (hope it's accepted, but JiC) */5 * * * * wget -qO- http://example.com/check &> /dev/nullMagically
I would do */5 * * * * wget example.com/check --delete-after to make sure there are no temporary filesFunction
And don't forget to call sudo service cron reload after saving the crontab file ;)Denudate
M
129

Use cURL:

*/5 * * * * curl http://example.com/check/
Muse answered 7/7, 2012 at 13:18 Comment(2)
Just a note, you should run curl without output or progress by piping to /dev/null like so. */5 * * * * curl -s http://example.com/check/ > /dev/nullMagically
If any error occured on that, you could try double quotes around URL. like that <code> curl -s "example.com/check" > /dev/null </code>Diplocardiac
B
50

The other advantage of using curl is that you also can keep the HTTP way of sending parameters to your script if you need to, by using $_GET, $_POST etc like this:

*/5 * * * * curl --request GET 'http://exemple.com/path/check.php?param1=1&param2=2'
Bruner answered 28/11, 2013 at 13:17 Comment(0)
L
10

Here is an example of the wget script in action:

wget -q -O /dev/null "http://example.com/cronjob.php" > /dev/null 2>&1

Using -O parameter like the above means that the output of the web request will be sent to STDOUT (standard output).

And the >/dev/null 2>&1 will instruct standard output to be redirected to a black hole. So no message from the executing program is returned to the screen.

Libbi answered 7/10, 2020 at 2:18 Comment(1)
Does it work for https? How to ignore SSL issues via this way?Crenulate
V
3

To run a url, you need a program to get that url. You can try wget or curl. See manuals for available options.

Visional answered 7/7, 2012 at 13:19 Comment(0)
M
3

To run a URL simply use command below easy yess CPanel 100%

/usr/bin/php -q /home/CpanelUsername/public_html/RootFolder/cronjob/fetch.php

I hope this help.

Marion answered 24/4, 2015 at 1:22 Comment(1)
/usr/bin/php -q /home/CpanelUsername/public_html/RootFolder/cronjob/fetch.phpMarion
S
3

Nothing worked for me on my linux hosting. The only possible commands they provide are:

/usr/local/bin/php absolute/path/to/cron/script

and

/usr/local/bin/ea-php56 absolute/domain_path/path/to/cron/script 

This is how I made it to work: 1. I created simple test.php file with the following content:

echo file_get_contents('http://example.com/check/');

2. I set the cronjob with the option server gived me using absolute inner path :)

/usr/local/bin/php absolute/path/to/public_html/test.php
Sempach answered 18/3, 2019 at 11:50 Comment(0)
B
2

Use perfect URL:

*/5 * * * * wget -q -O /dev/null "https://www.example.com/payment/WebhookOrderCron" > /dev/null 2>&1
Buiron answered 17/10, 2021 at 10:12 Comment(0)
R
1

I try GET 'http://example.com/?var=value' Important use ' add >/dev/null 2>&1 for not send email when this activate Sorry for my English

Roslyn answered 18/3, 2017 at 6:54 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.