run drupal cron every hour
[myplc.git] / plc.d / crond
index 5fb4120..8ad9fdd 100755 (executable)
@@ -7,13 +7,19 @@
 # Mark Huang <mlhuang@cs.princeton.edu>
 # Copyright (C) 2006 The Trustees of Princeton University
 #
-# $Id: crond,v 1.2 2006/04/25 21:18:19 mlhuang Exp $
+# $Id: crond,v 1.7 2007/01/18 22:10:33 mlhuang Exp $
 #
 
 # Source function library and configuration
 . /etc/plc.d/functions
 . /etc/planetlab/plc_config
 
+# Be verbose
+set -x
+
+# Export so that we do not have to specify -p to psql invocations
+export PGPORT=$PLC_DB_PORT
+
 case "$1" in
     start)
        MESSAGE=$"Starting crond"
@@ -24,6 +30,7 @@ case "$1" in
        else
            MAILTO=
        fi
+
        cat >/etc/cron.d/plc.cron <<EOF
 SHELL=/bin/bash
 PATH=/sbin:/bin:/usr/sbin:/usr/bin
@@ -31,21 +38,37 @@ MAILTO=$MAILTO
 HOME=/
 
 # minute hour day-of-month month day-of-week user command
-*/5 * * * * root gen-slices-xml-05.py
-*/15 * * * * root gen-sites-xml.py
-*/15 * * * * root gen-static-content.py
-5 5 * * * root vacuumdb -U postgres --all --analyze --quiet
 EOF
 
-        # Run them once at startup
-       gen-slices-xml-05.py
-       check
-       gen-sites-xml.py
-       check
-       gen-static-content.py
-       check
-       vacuumdb -U postgres --all --analyze --quiet
-       check
+        # Run all jobs once at startup
+
+       if [ "$PLC_BOOT_ENABLED" = "1" ] ; then
+           echo "*/5 * * * * root gen-slices-xml-05.py" >>/etc/cron.d/plc.cron
+           echo "*/15 * * * * root gen-sites-xml.py" >>/etc/cron.d/plc.cron
+           gen-slices-xml-05.py
+           check
+           gen-sites-xml.py
+           check
+       fi
+
+       if [ "$PLC_WWW_ENABLED" = "1" ] ; then
+           echo "*/15 * * * * root gen-static-content.py" >>/etc/cron.d/plc.cron
+           echo "00 * * * * wget -O - -q http://localhost/cron.php" >>/etc/cron.d/plc.cron
+           gen-static-content.py
+           check
+       fi
+
+       if [ "$PLC_DNS_ENABLED" = "1" ] ; then
+           echo "*/15 * * * * root dns-config" >>/etc/cron.d/plc.cron
+           dns-config
+           check
+       fi
+
+       if [ "$PLC_DB_ENABLED" = "1" ] ; then
+           echo "5 5 * * * root vacuumdb -U postgres --all --analyze --quiet" >>/etc/cron.d/plc.cron
+           vacuumdb -U postgres --all --analyze --quiet
+           check
+       fi
 
        plc_daemon crond
        check