diff options
| author | Jonathan Bauer | 2013-08-06 15:37:16 +0200 |
|---|---|---|
| committer | Jonathan Bauer | 2013-08-06 15:37:16 +0200 |
| commit | 10f36c2caada79078924a28956043a926d009c82 (patch) | |
| tree | 01b7a700fc1b8acd62338363b2a6e5488b390098 /data | |
| parent | [clone_stage4] fix path to logging.inc (diff) | |
| parent | [systemd] .build: Experimental: Special cases for Scientific Linux: (diff) | |
| download | tm-scripts-10f36c2caada79078924a28956043a926d009c82.tar.gz tm-scripts-10f36c2caada79078924a28956043a926d009c82.tar.xz tm-scripts-10f36c2caada79078924a28956043a926d009c82.zip | |
Merge branch 'master' of git.openslx.org:openslx-ng/tm-scripts
Diffstat (limited to 'data')
| -rwxr-xr-x | data/openslx-update | 55 |
1 files changed, 46 insertions, 9 deletions
diff --git a/data/openslx-update b/data/openslx-update index c7e24d30..cb46b258 100755 --- a/data/openslx-update +++ b/data/openslx-update @@ -17,7 +17,7 @@ function warning () { echo -e "\033[01;33m$@\033[00m" } - + ### Variablen ################################### # Web MIRROR="http://mltk.boot.openslx.org" @@ -28,12 +28,16 @@ PXECONFIG="$PXEDIR/default" PXETEMPLATE="/opt/openslx/templates/pxemenu-header" FILEPRAEFIX="openslx-" WWWDIR="/srv/openslx/www" +SLXSCRIPTS="openslx-install openslx-update" +SCRIPTPATH=$(dirname "$0") +SCRIPTBACKUPDIR=/root/backup # Konfigurationsdateien SERVERDEFAULTS="/opt/openslx/server-defaults" # Temporäres -REMOTEINDEX="/tmp/mlversion" +REMOTEINDEX=$(mktemp /tmp/mlversionXXX) LOCALINDEX="/opt/openslx/local_version" WWWTEMP="/srv/openslx/www-temp" +DLFLAG=0 # if something was downloaded # Vars zum Überladen LOCAL_STABLE=0 LOCAL_TESTING=0 @@ -42,6 +46,8 @@ CRCCOMMAND=md5sum CRCEXTENSION=md5 # Mindestens freier Plattenplatz in Kilobytes MINSPACE=409600 # 400MB +# Allgemein +DATUM=$(date +%Y%m%d) trap "{ rm -f $REMOTEINDEX $WWWTEMP/* $WWWDIR/*.$CRCEXTENSION; }" SIGINT SIGTERM EXIT @@ -67,6 +73,7 @@ cp "$PXETEMPLATE" "$PXECONFIG" ERR=$?; [ $ERR -ne 0 ] && error "Kann PXE-Vorlage nicht umkopieren!" mkdir -p "$WWWTEMP" +print "Kopiere bestehende Dateien sicherheitshalber um..." cp -p "$WWWDIR/$FILEPRAEFIX"* "$WWWTEMP/" ERR=$?; [ $ERR -ne 0 ] && error "Kann bestehende Dateien nicht nach $WWWTEMP kopieren!" @@ -92,7 +99,7 @@ for REL in ${!AVAILABLE_*}; do continue fi # Download - wget -O "$WWWTEMP/$FILEPRAEFIX$FILE" "$MIRROR/$MIRRORDIR/$FILE" || { warning "Could not download $FILE"; continue; } + wget -O "$WWWTEMP/$FILEPRAEFIX$FILE" "$MIRROR/$MIRRORDIR/$FILE" && DLFLAG=1 || { warning "Could not download $FILE"; continue; } # Download md5 value wget -O "$WWWTEMP/$FILEPRAEFIX$FILE.$CRCEXTENSION" "$MIRROR/$MIRRORDIR/$FILE.$CRCEXTENSION" \ || { warning "Could not download $FILE.$CRCEXTENSION!"; continue; } @@ -133,10 +140,40 @@ done # If we are here, then we can assume everything went either right, or at least no fatal error happened. # So, we will move the stuff in $WWWTEMP to $WWWDIR. -print "Alles scheint ok - Bewege neue Abbilder zum Webserver." -mv "$WWWTEMP/"* "$WWWDIR/" -print "Done." -# print "Old files left over:" -# ls -alh "$WWWTEMP" +if [ "$DLFLAG" -ne 0 ]; then + print "Alles scheint ok - Bewege neue Abbilder zum Webserver." + mv "$WWWTEMP/"* "$WWWDIR/" + print "Neue Abbilder bewegt." +else + print "Keine Abbilder heruntergeladen - leere temporäres Verzeichnis $WWWTEMP." + rm -f "$WWWTEMP/"* +fi -exit 0 +# Update Scripts openslx-install and openslx-update, if possible. +if [ ! -d "$SCRIPTBACKUPDIR" ]; then + print "Erzeuge Sicherungsverzeichnis für Skripte $SCRIPTBACKUPDIR" + mkdir -p "$SCRIPTBACKUPDIR" || error "Kann Sicherungsverzeichnis für Skripte nicht erstellen!" +fi + +for FILE in $SLXSCRIPTS; do + wget -O "$WWWTEMP/$FILE.$CRCEXTENSION" "$MIRROR/$MIRRORDIR/$FILE.$CRCEXTENSION" + CRCVALNEW=$(cat "$WWWTEMP/$FILE.$CRCEXTENSION"|cut -f 1 -d " ") + CRCVALOLD=$($CRCCOMMAND "$SCRIPTPATH/$FILE"|cut -f 1 -d " ") + if [ "$CRCVALNEW" == "$CRCVALOLD" ]; then + print "$SCRIPTPATH/$FILE - kein Update notwendig." + continue + else + wget -O "$WWWTEMP/$FILE" "$MIRROR/$MIRRORDIR/$FILE" + if [ $($CRCCOMMAND "$WWWTEMP/$FILE"|cut -f 1 -d " ") != "$CRCVALNEW" ]; then + warning "$SCRIPTPATH/$FILE konnte nicht upgedatet werden ($CRCEXTENSION-Fehler)!" + continue + else + print "$SCRIPTPATH/$FILE wird upgedatet - $CRCEXTENSION ok." + print "Alte Version $SCRIPTPATH/$FILE gesichert nach: $SCRIPTBACKUPDIR/$FILE.$DATUM." + mv "$SCRIPTPATH/$FILE" "$SCRIPTBACKUPDIR/$FILE.$DATUM" + chmod u+x "$WWWTEMP/$FILE" # sonst wg. wget keine exec-bit + mv "$WWWTEMP/$FILE" "$SCRIPTPATH" + fi + fi +done +exit 0 |
