Setting up the crontab on amazon ec2 cloud (Linux server) - php

I need to run a php file on every 2 hours, so i am using this command
* */2 * * * /usr/bin/php /var/www/html/sports/webservices/rss-insert.php
i am also using this
* */2 * * * php /var/www/html/sports/webservices/rss-insert.php
But both are not working. can anyone help me.
Thanks

The crontab you have made will run every minute of every second hour rather than every two hours.
In order to get it to run every two hours you need something like this:
5 */2 * * * /usr/bin/php /var/www/html/sports/webservices/rss-insert.php
which will run it 5 minutes after every second hour e.g 2:05, 4:05...
This is assuming your script is able to run. Try running the command portion from the cron by hand at the command line and make sure it does what you want.

This works for me definitely work for you.
0 0-23/2 * * * php /var/www/html/sports/webservices/rss-insert.php

Related

Raspbian Cron Job Not Working

Hi I have created this cron job in the /etc/crontab file:
*/2 * * * * /usr/bin/php /var/www/html/daily_scripts/store_all_currencies.php.
It doesnt seem to be working I just want my store_all_currencies.php to run every 2 minutes.
I have had a look in /usr/bin/ and there doesnt seem to be a php file? This is probably the reason it isnt working. I am able to run php files from the console so it is definitely installed.
I think you should try like this for executing cron every 2 minutes, but you must have the php script inside /usr/bin/php/ var/www/html/daily_scripts before execute it. format => cron format php path php filename
*/2 * * * * /usr/bin/php/ var/www/html/daily_scripts/store_all_currencies.php
Every 2 minutes : https://crontab.guru/every-2-minutes

What is the correct expression for a web job in Azure to run every 2 hours?

I set my web job (cron job) on Azure to run every 2 hours like this
0 * */2 * * *
However it runs every minute, for a reason I don't know why.
What is the correct expression for a web job in Azure to run every 2 hours?
Try this:
0 0 */2 * * *
Reference:
https://learn.microsoft.com/en-us/azure/app-service-web/web-sites-create-web-jobs

Cronjob and PHP working together?

I wrote a PHP script that push a CSV file into a database. I want to do this automatically every minute. I know there is a way via cron on Linux but I don't know anything about bash and think cron can't give my PHP file a callback, so I can show a progress bar for the user to see the timer interval. What do I do?
You can enter your jobs using crontab -e. If your default editor is vi, I recommend to change it nano using export EDITOR=nano because it is easy to use for starters.
Every line of the crontab file represents a job. The first 5 tokens are : minute, hour, day of month, month, day of week respectively, the last one is command so in your case first 5 tokens will be * * * * * that means run this job every minutes when the second is '00'.
You can call your php files directly using this command : php /var/www/cron.php & or using a browser wget -O /dev/null http://example.com/cron.php If you use first one you cannot use some $_SERVER variables but if you use second one, it is like a real browser.
In your case you can use like this :
* * * * * wget -O /dev/null http://example.com/cron.php
to add a cron and make it run every minute, type crontab -e and add the following line
* * * * * command you need executing
example:
* * * * * ls -l /home/ > /usr/local/users.txt
* * * * * df -h > /tmp/filesystem_usage.txt
* * * * * service httpd restart
Look at this for a starter: http://kvz.io/blog/2007/07/29/schedule-tasks-on-linux-using-crontab/
Also remember that cronjobs don't support all $_SERVER vars like 'DOCUMENT_ROOT' and 'HTTP_HOST', so try to avoid them, or use a workaround.
Some 'callback' possibilities:
- Let your script trigger another script
- Redirect the output of your cron to an another bash script
- ...

Run 50 php scripts every 5 minutes

I have 50 Wordpress installations running on 1 server. Every Wordpress website has a script which must execute every 5 minutes. I don't want to use the build-in cron of Wordpress and want to run the scripts from cron. What is the best solution?
*Solution 1: create a cron job for every individual wordpress installation *
5 * * * * /usr/bin/php /wordpress-site-1/cron.php
5 * * * * /usr/bin/php /wordpress-site-2/cron.php
5 * * * * /usr/bin/php /wordpress-site-3/cron.php
... + 47 other scripts
*Solution 2: create 1 cron job and run a bash script *
5 * * * * /run/the-script
The script:
#!/bin/bash
# include the 50 sites in array
array=( wordpress-site-1 wordpress-site-2 wordpress-site-3 ...)
for i in "${array[#]}"
do
{execute php file)
done
By far, having 50 singular crons is much more efficient than have it run in one script. The only downside is that you'll have to insert 50 lines in your crontab. But hey, if that's everything...
Reasons for having 50 crons instead of one:
If one of the crons fails, the others will still run
If one of the crons fails, you'll be notified and don't have to do complex log-analysis to find out which one of your crons failed
You don't have to worry (or worry less) about script timeouts, memory usage, etc: 50 scripts executed in one time is about 50 times heavier then having them executed one by one
You can divide payload on the server
(You can probably think of some more)
As for the last point (dividing payload), I'd suggest to execute the first 10 scripts at zero, 5-past, 10-past etc, and the next 10 scripts a minute later. This way they don't run all at once, causing a high peak-load every 5 minutes:
0,5,10,15,20,25,30,35,40,45,50,55 * * * * /usr/bin/php /wordpress-site-1/cron.php
... cron 2 - 10
1,6,11,16,21,26,31,36,41,46,51,56 /usr/bin/php /wordpress-site-11/cron.php
... cron 11-20
... etc.
This is a pattern that you could use:
0,5,10,15,20,25,30,35,40,45,50,55 * * * *
try this solution:
cat cronjob
0,5,10,15,20,25,30,35,40,45,50,55 * * * * /usr/bin/php /wordpress-site-1/cron.php
.
.
.
0,5,10,15,20,25,30,35,40,45,50,55 * * * * /usr/bin/php /wordpress-site-50/cron.php
Then:
chmod +x cronjob
chmod +x /wordpress-site-1/cron.php
.
.
.
chmod +x /wordpress-site-50/cron.php
/etc/init.d/crond start #redhat based servers like centos
/etc/init.d/cron start #debian based servers like ubuntu
crontab cronjob
NOTE: You can use for loop to make it easier.
if you want every script run per 5 min, you can do this:
*/5 * * * * /run/the-script

command in cron to run php every certain mins

this might be a repeat.
i would like to run my index.php every certain mins. My server has option run cron command/ cron jobs. Someone please tell me what could should I use to schedule.
Thanks in advance.
First of all, why?
Second, crontab -e will allow you to edit your crontab. Then it's just as easy as
? * * * * php /path/to/index.php
You could use this command
Minutes Hours Day Month WeekDay
45 * * * * php /path/to/index.php *
Here is an article about a php cron manager
First, here is how cron works:
http://en.wikipedia.org/wiki/Cron
Then, the comand should look like this:
* * * * * cd /directory/of/the/script/ && php scriptname.php >> /directory/of/the/logfile.log

Categories