Php crontab function call - php

I have written a crontab to call a function with following syntax to run every 5 minutes,
*/5 * * * * curl http://localhost/domain/path/front_orders/recursive_pay/F0C473D9BD583
in the function, I have redirected to google with redirect('http://www.google.com');for test but it does not seem to work.Any suggestions..

If your php script can be invoked using an URL, you can lynx, or curl, or wget to setup your crontab.
*/5 * * * * lynx http://localhost/domain/path/front_orders/recursive_pay/F0C473D9BD583.php
or
*/5 * * * * /usr/bin/curl http://localhost/domain/path/front_orders/recursive_pay/F0C473D9BD583
or
*/5 * * * * /usr/bin/wget -q http://localhost/domain/path/front_orders/recursive_pay/F0C473D9BD583

instead of redirect('http://www.google.com'); trying using this:
header('Location: http://www.google.com');

Use curl or wget if you want to just "ping" a url.
*/5 * * * * /usr/bin/wget -O /dev/null http://localhost/domain/path/front_orders/recursive_pay/F0C473D9BD583
You can also use one of
/usr/bin/wget --spider http://localhost/... (if doing a HEAD call will do)
/usr/bin/curl http://localhost/... > dev/null 2>&1
If you use
/usr/bin/wget -q http://localhost/...
I think you will end up putting a copy of the result in whatever the 'current' directory is (differs based on which user's cron is running).

Related

Why my crontab not working using wget command?

When i run my url https://localhost/panel/index.php?m=user_games&p=check_expire by using chrome the code is run and shutting down the server when expier.
But when i need to run this as a crontab using this command:
* * * * * * wget -q --spider "https://localhost/panel/index.php?m=user_games&p=check_expire"
nothing happend, why?
Seem the crontab not run, because you define wrong crontab command. You put six *, as I know we just need five *. Please try like this
* * * * * wget -q --spider "https://localhost/panel/index.php?m=user_games&p=check_expire"
To make sure your crontab run, please create log when wget executed.

Cronjob not executing php?

I want to run a .php every 10 min with a cron job on Ubuntu.
This is my crontab:
*/10 * * * * php -f /var/www/html/gapi/src/test2.php >/dev/null 2>&1
And this is in the log file:
CRON[9994]: (root) CMD (php -f /var/www/html/gapi/src/test2.php >/dev/null 2>&1)
In this php is an api call, and I can see the api calls live at the dashboard of the api provider, so I know the php is not running every 10 mins.
I set the file permission to 755, what else can I do to make it work?
Updated Crontab:
*/10 * * * * php -f /var/www/html/gapi/src/test2.php
Try requesting the file through your web server rather than calling the script via the command line PHP interpreter.
*/10 * * * * wget -q -O /dev/null http://localhost/gapi/src/test2.php
(-q to suppress output, -O /dev/null to redirect file output so it doesn't save it)
or using curl instead:
*/10 * * * * curl --silent http://localhost/gapi/src/test2.php
The URL will depend on how your server is set up - you say it works through your browser at the moment so just use the same URL in the cron file.

cronjob is not working Linux

I want a script file to run once every minute.. I've written this command.
* * * * * php -q /home/<username>/public_html/cron.php
But, this cronjob is not working. whenever, I try to open this file cron.php in browser, it works fine.
I'm using Linux OS. Is there a way to debug it in order to come to know the error?
If you're using Ubuntu as I am, use the full path.
* * * * * /usr/bin/php -q /home/<username>/public_html/cron.php
Have you added an empty line (new line) after your cronjob?
To debug:
Append 2>&1 to the end of your Crontab command. This will redirect the stderr output to the stdout. Then ensure you're logging the crontab's Unix command.
* * * * * php -q /home/<username>/public_html/cron.php; ls -la >>/var/log/cronrun 2>&1
This will capture anything from the Unix command.
A couple of additional hints: Write out the environment variables by issuing the command set with no parameters. And get the shell to echo each command with the set -x command. At the top of your script issue;
set
set -x
For cPanel, you may want to test curl (in case it's installed on your server):
curl --silent --compressed http://www.your-domain.com/cron.php
So it should look similar to: http://grabilla.com/0450d-93d93a32-02ab-457c-ac1c-d2883552a940.html#
You may also want to try removing the -q from your command and see if it helps.
* * * * * php /home/<username>/public_html/cron.php
*/1 * * * * /usr/bin/php -q /home//public_html/cron.php
Add the above line to the crontab file and run it . It will add a cronjob every minute

Cronjob every minute

I have a file in mysite.com/url1/url2/cronjob.php which has to be run every minute. I try every combination, but can't succeed. What should I run in command line? Thank you.
In case you'd set it up in a crontab, this works:
*/1 * * * * /usr/bin/wget -O /dev/null http://example.com/cron.php
Steps your shell
$ crontab -e
* * * * * php -f /path/to/cron.php
~
~
I got confused for the first time where to add all of these and finally found.
Type the following in the linux/ubuntu terminal
crontab -e
select an editor (sometime it asks for the editor) and this to run for every minute
* * * * * /usr/bin/php path/to/cron.php &> /dev/null
The PHP interpreter.
/[path-to-php]/php -f [your-php-script]
Are you looking for help to make an UNIX cronjob?
If so, have you tried to edit /etc/crontab, and add
\1 * * * * user command
where user is either root or your name. Im not exactly sure how to access and URL, but a dirty way could involve downloading the link as a file, e.g. "wget http://url.com/page.php"

cron tab not working

I have this code bellow to run in command line but is not working. I tried in command line to run without the cron tab and it works. Anyone knows how to fix it ? Thanks in advance.
*/5 * * * * /usr/bin/php /var/www/html/ulchemdb/File_upload/uploads/crontab.php > /dev/null 2>&1
Crontab line is ok:
*/5 * * * * php /var/www/html/ulchemdb/File_upload/uploads/crontab.php
I think the problem with script.
try to run it manualy:
php /var/www/html/ulchemdb/File_upload/uploads/crontab.php
or if You don't have opportunity to get to console do following:
enable error reporting
add line to then end of crontab.php:
echo "\nCOMPLETED SUCCESSFULY\n"
add this crontab line:
*/5 * * * * php /var/www/html/ulchemdb/File_upload/uploads/crontab.php >> /var/www/html/ulchemdb/File_upload/uploads/crontab.log
Also You can share with us Your code, we'll try to help You somehow.
Where is your php is? It can be clarified with "which php" or "whereis php" commands. Use this path as your php executable path.
Try to execute this command manually. Is it works? If no => problem not in crontab.
If yes => remove output redirecting to dev/null for a time (remove part " > /dev/null 2>&1"), use redirecting to log file, for instance:
*/5 * * * * PATH-TO-PHP/php /var/www/html/ulchemdb/File_upload/uploads/crontab.php > /var/log/php.log 2>&1
Investigate a log after some time. Is there something? If no => make sure you script have some output.
try
*/5 * * * * php /var/www/html/ulchemdb/File_upload/uploads/crontab.php > /dev/null 2>&1

Categories