cron command to run every 12 hours

UnixCron

Unix Problem Overview


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?

Unix Solutions


Solution 1 - Unix

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.

Solution 2 - Unix

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.

Solution 3 - Unix

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

Solution 4 - Unix

Use "*/12" to mean "every 12 hours."

Solution 5 - Unix

You need some kind of master-script (called by cron), which expands the list of sites, and calls "/usr/bin/php /var/www/*/somedir/index.php", whith the '*' replaced by a list entry. This can be done in a shellscript, a perl or python script, or maybe even a php script. For sh this could be: (untested)

#!/bin/sh
cd /home/subdir/for/cron

LIST="a b c d e f g h i j k l m o p q r s t u v w x y z"

for x in $LIST; do
   /usr/bin/php /var/www/${x}/somedir/index.php 2>$1 > /tmp/${x}.log
done

If it is inconvenient to have the list hardcoded like this, there are other methods: backticks, or read < file_with_all_the_names_in_it

Solution 6 - Unix

0 */12 * * * means "At minute 0 past every 12th hour."

Check out https://crontab.guru for a nice calculator.

Solution 7 - Unix

Write command in console > crontab -e

edit with editor (I like nano)

add line

> 0 1,13 * * * php /home/catalog/public_html/crons/index.php

close with

> press ctrl + x

press y then press enter done :)

Check if saved with

> crontab -l

command

if you want to test if it will work test just running it manualy with

> php /home/catalog/public_html/crons/index.php

command

Solution 8 - Unix

Use this it will Run after each 12 hour

  • */12 * * * php /var/www/"Your domain"/cronfile.php

Solution 9 - Unix

->cron('0 */12 * * *');

This cron will run the scheduler at every 12 hours.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionGiriView Question on Stackoverflow
Solution 1 - UnixAnilView Answer on Stackoverflow
Solution 2 - UnixGiovani DardaniView Answer on Stackoverflow
Solution 3 - UnixJens TimmermanView Answer on Stackoverflow
Solution 4 - UnixGeremiaView Answer on Stackoverflow
Solution 5 - UnixwildplasserView Answer on Stackoverflow
Solution 6 - UnixAlex KView Answer on Stackoverflow
Solution 7 - UnixMatas LesinskasView Answer on Stackoverflow
Solution 8 - UnixHasiburView Answer on Stackoverflow
Solution 9 - UnixDominic Amal Joe FView Answer on Stackoverflow