home *** CD-ROM | disk | FTP | other *** search
/ ftp.ac-grenoble.fr / 2015.02.ftp.ac-grenoble.fr.tar / ftp.ac-grenoble.fr / pub / slis / updates_4.1_rsync / lcslis_dom0_update-common-pre < prev    next >
Text File  |  2009-05-24  |  3KB  |  121 lines

  1. #!/bin/bash
  2. # This script is part of the SLIS Project initiated by the CARMI-Internet
  3. # (AcadΘmie de Grenoble - France 38).
  4. # Ce script fait partie du projet SLIS dΘmarrΘ par le CARMI-Internet
  5. # (AcadΘmie de Grenoble - France 38).
  6. #
  7. # SLIS : Serveur de communications Linux pour l'Internet Scolaire.
  8. # Copyright (C) 1998-2003 Bruno Bzeznik
  9. #
  10. #    This program is free software; you can redistribute it and/or modify
  11. #    it under the terms of the GNU General Public License as published by
  12. #    the Free Software Foundation; either version 2 of the License, or
  13. #    (at your option) any later version.
  14. #
  15. #    This program is distributed in the hope that it will be useful,
  16. #    but WITHOUT ANY WARRANTY; without even the implied warranty of
  17. #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  18. #    GNU General Public License for more details.
  19. #    You should have received a copy of the GNU General Public License
  20. #    along with this program (For example ./COPYING);
  21. #    if not, write to the Free Software Foundation, Inc., 675 Mass Ave,
  22. #    Cambridge, MA 02139, USA.
  23. #
  24. # Please send all comments and bug reports by electronic mail to:
  25. #   Bruno Bzeznik <Bruno@ac-grenoble.fr>
  26. # or to <slis@ac-grenoble.fr>
  27. #
  28. # Envoyez vos suggestions et reports de bugs par e-mail α
  29. #   Bruno Bzeznik <Bruno@ac-grenoble.fr>
  30. # ou α <slis@ac-grenoble.fr>
  31. #
  32. # Contact: Olivier.LeCam@crdp.ac-versailles.fr
  33. #
  34. # Comments:
  35. # Downloaded via rsync and executed by SLIS during
  36. # the 'slis_update' process
  37. # Started before version updates
  38. #
  39. # Updates:
  40. # olecam: Jan 9, 2006: script ported to SLIS v4
  41.  
  42. #
  43. # Variables
  44. #
  45. LOGTAG="lcslis_dom0_update-common-pre[$$]"
  46. LOCKFILE="/var/lock/lcslis_dom0_update-common-pre"
  47. SCRIPT_STATUS_MSG="Script 'lcslis_dom0_update-common-pre'"
  48. UPDDIR="/etc/slis/updates"
  49.  
  50. write_to_log()
  51. {
  52.     /usr/bin/logger -t "$LOGTAG" $*
  53. }
  54.  
  55. send_to_slismaster()
  56. {
  57.     echo "$*" | mail "$SLISMASTER" -s "`hostname` : Update: $LOGTAG"
  58. }
  59.  
  60. exit_this_update()
  61. {
  62.     write_to_log $*
  63.     send_to_slismaster $*
  64.     write_to_log "$SCRIPT_STATUS_MSG: failed."
  65.     exit 1
  66. }
  67.  
  68.  
  69. #
  70. # Locking
  71. #
  72. if [ -e $LOCKFILE ]; then
  73.     
  74.         # Then if the lock is older than 10 days, remove the lockfile and lock again.
  75.     LOCKFILE_OLD=`find $LOCKFILE -nowarn -ctime +10 -print`
  76.     if [ "$LOCKFILE_OLD" != "" ]; then
  77.             write_to_log "Info: Very old lock found (more than 10 days), removing it."
  78.             rm -f $LOCKFILE
  79.     else 
  80.           write_to_log "Lock found. Update already started."
  81.           exit
  82.         fi
  83.  
  84. fi
  85.  
  86. touch $LOCKFILE
  87. sleep 1
  88.  
  89. [ -d $UPDDIR ] || /bin/mkdir -p $UPDDIR
  90.  
  91. write_to_log "$SCRIPT_STATUS_MSG: started."
  92. ##############################
  93.  
  94. #
  95. # Ensure that the host use apt-cacher from slis
  96. #
  97. if [ ! -f /etc/apt/apt.conf ] || [ "`grep 'http://slis:3142/apt-cacher/' /etc/apt/apt.conf`" == "" ]; then
  98.     touch /etc/apt/apt.conf
  99.     echo 'Acquire::http::Proxy "http://slis:3142/apt-cacher/";' >> /etc/apt/apt.conf
  100. fi
  101.  
  102. #
  103. # Ensure that 'at' is installed
  104. #
  105. if [ ! -f /usr/bin/at ]; then
  106.     write_to_log "INFO: installing needed packages 'at'"
  107.     APT_RESULT=`apt-get -qq update 2>&1`
  108.     if [ $? != 0 ]; then
  109.         write_to_log "ERROR: apt-get update failed. See report below:"
  110.         write_to_log "`echo -n "$APT_RESULT"`"
  111.     else
  112.         export DEBIAN_FRONTEND=noninteractive
  113.         apt-get --force-yes -y -qq install at | logger -t "$LOGTAG"
  114.     fi
  115. fi    
  116.  
  117. ##############################
  118. write_to_log "$SCRIPT_STATUS_MSG: successed."
  119.  
  120. rm -f $LOCKFILE
  121.