- move gen-sites-xml.py one shot to www
[myplc.git] / plc.d / crond
index 5bb5ba7..0c58bd0 100755 (executable)
@@ -7,13 +7,19 @@
 # Mark Huang <mlhuang@cs.princeton.edu>
 # Copyright (C) 2006 The Trustees of Princeton University
 #
-# $Id: crond,v 1.1 2006/04/06 21:51:59 mlhuang Exp $
+# $Id: crond,v 1.9 2007/02/07 23:21:27 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,18 +38,39 @@ 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
 EOF
 
-        # Run them once at startup
-       gen-slices-xml-05.py
-       check
-       gen-sites-xml.py
-       check
-       gen-static-content.py
-       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
+           gen-slices-xml-05.py
+           check
+       fi
+
+       if [ "$PLC_WWW_ENABLED" = "1" ] ; then
+           echo "*/15 * * * * root gen-static-content.py" >>/etc/cron.d/plc.cron
+           echo "*/15 * * * * root gen-sites-xml.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
+           gen-sites-xml.py
+           check
+           wget -O - -q http://localhost/cron.php
+           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