#!/usr/local/bin/bash # Use config file instead of editing script itself source netupdate.conf # Set some variables LOCK=/var/run/mssupdate.lock LOCALVERSION=`cat /var/lib/mss/version` # Get apropriate programm version and full path to it from fileserver VERSION=`ssh $USER@$SERVER grep $MYNAME $HOSTLIST |awk '{print $2}'` UPDATEDIR=`ssh $USER@$SERVER grep $MYNAME $HOSTLIST |awk '{print $3}'` # Add version file if it's missing (useful on clean systems) if [ ! -e /var/lib/mss/version ]; then echo "0.0" > /var/lib/mss/version fi # Check whether we have latest version if [ "$(echo "$LOCALVERSION < $VERSION" |bc -l )" -eq 1 ] && [ ! -e $LOCK ]; then echo "Starting update..." touch $LOCK rsync -Hacvx --exclude-from=/var/lib/mss/rsync-exclude $USER@$SERVER:$UPDATEDIR/$VERSION/ /var/lib/mss rsync -Havx --ignore-existing --exclude-from=/var/lib/mss/rsync-exclude $USER@$SERVER:$UPDATEDIR/music /var/lib/mss/ echo "Updated from $LOCALVERSION to $VERSION" echo $VERSION > /var/lib/mss/version ssh $USER@$SERVER echo "`date` SUCCESS: $MYNAME was updated from $UPDATEDIR $LOCALVERSION '->' $VERSION" >> $UPDATEDIR/update.log rm -f $LOCK elif [ "$(echo "$LOCALVERSION < $VERSION" |bc -l )" -eq 1 ] && [ -e $LOCK ]; then echo "Update is running..." ssh $USER@$SERVER echo "`date` WARNING: $MYNAME is still running update from $LOCALVERSION to $VERSION" >> $UPDATEDIR/update.log else echo "Version $LOCALVERSION is already installed" fi # Debug echo $USER $SERVER $MYNAME $UPDATEDIR $VERSION $LOCALVERSION $HOSTLIST