Web Hosting Talk







View Full Version : Question about cron jobs


DeNasio
11-28-2001, 03:34 AM
I'm signing up with Aletia.com to use the cron job feature. But how do cron jobs work? You make a script (like in php) and you tell the system to run this script every day at 12:00am? Is it that simple?

nexcess.net
11-28-2001, 03:41 AM
in a word, yes. you make a script in any number of languages (including php if the php cgi is installed) and schedule it to run at a certain time of day (there are other options as well, but this is one of them).

Chris

smartbackups
11-28-2001, 03:51 AM
Here is the way to run it, depending on your system log in the do a 'crontab -e' edit it and the save it and it installs automatically.

# minute hour day month day of the week script to execute
# (0-59) (0-23) (1-31) (1-12) (0-6 with 0=Sunday) (executable)
#
0 0 * * * /path/to/your/script

bobcares
11-28-2001, 04:14 AM
To create a cron for a user, log in as the user.

1) su $user
2) crontab -e
3) min hr date mon day /home/$user/$domain-www/path/to/script
where

min - minute (00 - 59)
hr - hour of day (00 - 23)
date - day of month (01 - 31)
mon - month of year (01 - 12)
day - day of week (00 - 06)

4) save changes
5) exit

However where you want a script in php to work you have to put in a little more.
Here's the instructions when php runs only as an apache module

Say you are user star and you want to run a php program(say http://www.star.com/exp.php) from cron and output the results to a file /home/star/phptest2

Telnet into the system as star
create a file (say /home/star/cronjob)
Add the folllowing lines to it



SHELL=/bin/bash

MAILTO=star@starinc.com

0 * * * * /usr/bin/wget -O/home/star/testphp2 http://www.starinc.com/exp.php

The above syntax means that at the start(0) of every hour(*) of every day(*) of every month(*) of every year(*), wget will run the exp.php and output the contents to testphp2. And when this runs, it will send a mail to star@starinc.com
Save the above file
now run crontab /home/star/cronjob
This will automatically add it to cron and execute it at the designated time
If you do not want to output the results anywhere simply omit
-O /home/star/testphp2

To view the contents of cron simply type crontab -l
to remove tasks from cron simply type crontab -r



Say you are user root and you want to run a system critical php program(say http://www.starinc.com/exp.php) every hour from cron and output the results to a file /home/star/phptest2 here's what you do

ssh into the system as root
create a file say( /etc/cron.hourly/phpcron)
Add the folllowing lines to it



#!/bin/sh

/usr/bin/wget -O/home/star/testphp2 http://www.starinc.com/exp.php
save and chmod to 755
Here cron automatically reads /etc/crontab , detects all scripts in /etc/cron.hourly (in our case phpcron) )and executes them
For hourly , daily, weekly and monthly, store your scripts in /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly, /etc/cron.monthly respectively


I hope this helps.
Have a great day :)

Regards
Amar

MikeMike
11-29-2001, 10:56 AM
how do you start a cron job every 10 minutes?

Regards
Michael

bteeter
11-29-2001, 11:04 AM
Originally posted by MikeMike
how do you start a cron job every 10 minutes?

Regards
Michael

You can specify multiple minutes, hours, days, etc in cron jobs using the comma. For example:

0,10,20,30,40,50 * * * * /path/to/10minscript

Will run the script /path/to/10minscript every 10 minutes. So long as you don't put a space between the minute values you are OK.

Take care,

Brian