cron command to run every 12 hours
I need unix cron command to run every 12 hours.
I have 500+ sub blogs in my server.
This is the file i want to run every 12 hours
http://*.mysite.com/somedir/index.php
Where * is my subdomain of my blogs.
I need cron command for all blogs. Is it possible to run all of them with single command? OR do i have to create command for each blog?
A crontab file has five fields for specifying day , date and time followed by the command to be run at that interval.
* * * * * command to be executed
- - - - -
| | | | |
| | | | +----- day of week (0 - 6) (Sunday=0)
| | | +------- month (1 - 12)
| | +--------- day of month (1 - 31)
| +----------- hour (0 - 23)
+------------- min (0 - 59)
*
in the value field above means all legal values as in braces for that column.
You could use 0 1,13 * * *
which means for every 1AM and 1PM.
0 1,13 * * * rm /var/www/*/somedir/index.php > /home/someuser/cronlogs/some.log 2>&1
where *
can be replaced by different domain names.
I think the right way is -> 1 */12 * * *
(actually, any number in the minute position will do the trick.)
If you set -> * */12 * * *
it will be executed every minute at 12h and again at 24h.
Assuming your sites live in /var/www/sitename and you have the php shell installed in /usr/bin/php you can easily create a cron job that runs all those files.
run
crontab -e
and add this line
42 */12 * * * /usr/bin/php /var/www/*/somedir/index.php >> ~/cronjob.log 2>&1
The * here in /var/www/*/somedir is just a wildcart. This means it will catch every directory in your /var/ww folder.
f.ex:
[jens@localhost ~]$ ls -l temp
total 28
-rw-rw-r--. 1 jens jens 1641 Feb 21 16:12 somefile.py
drwxrwxr-x. 2 jens jens 4096 Feb 22 15:10 test
drwxrwxr-x. 2 jens jens 4096 Feb 22 15:10 test2
drwxrwxr-x. 2 jens jens 4096 Feb 22 15:10 test3
drwxr-xr-x. 8 jens jens 4096 Jan 27 10:21 emptydir
-rw-rw-r--. 1 jens jens 548 Jan 27 16:15 Unsaved Document 1
[jens@localhost ~]$ ls temp/*/testfile.php
temp/test2/testfile.php temp/test3/testfile.php temp/test/testfile.php
As you can see, this returns the testfile.php in each subfolder of temp, namely folder test, test2 and test3. Emptydir is also a folder, but since it has no testfile.php in it, nothing willhappen with it.
If your directory structure is arbitrarily deep you can use **
e.g.
42 */12 * * * /usr/bin/php /var/www/**/index.php >> ~/cronjob.log 2>&1