Return to networkupdate.sh CVS log | Up to [local] / mss / netupdate |
1.1 kirby 1: #!/usr/local/bin/bash 1.14 ! kirby 2: # $Id 1.1 kirby 3: 4: # Use config file instead of editing script itself 1.9 kirby 5: source /var/lib/mss/netupdate.conf 1.1 kirby 6: 1.7 kirby 7: # Add version file if it's missing (useful on clean systems) 8: if [ ! -e /var/lib/mss/version ]; then 9: echo "0.0" > /var/lib/mss/version 10: fi 11: 1.1 kirby 12: # Set some variables 13: LOCK=/var/run/mssupdate.lock 14: LOCALVERSION=`cat /var/lib/mss/version` 1.12 kirby 15: DATE=`date '+%F %H:%M'` 1.1 kirby 16: 17: # Get apropriate programm version and full path to it from fileserver 1.5 kirby 18: VERSION=`ssh $USER@$SERVER grep $MYNAME $HOSTLIST |awk '{print $2}'` 19: UPDATEDIR=`ssh $USER@$SERVER grep $MYNAME $HOSTLIST |awk '{print $3}'` 1.2 kirby 20: 1.1 kirby 21: # Check whether we have latest version 1.10 kirby 22: if [ -n "$VERSION" ] && [ -n "$UPDATEDIR" ] && [ "$(echo "$LOCALVERSION < $VERSION" |bc -l )" -eq 1 ] && [ ! -e $LOCK ]; then 1.2 kirby 23: echo "Starting update..." 1.13 kirby 24: ssh $USER@$SERVER "echo "$DATE INFO: $MYNAME started update from $UPDATEDIR $LOCALVERSION '-\>' $VERSION" >> $UPDATEDIR/update.log" 1.2 kirby 25: touch $LOCK 1.5 kirby 26: rsync -Havx --ignore-existing --exclude-from=/var/lib/mss/rsync-exclude $USER@$SERVER:$UPDATEDIR/music /var/lib/mss/ 1.10 kirby 27: rsync -Hacvx --exclude-from=/var/lib/mss/rsync-exclude $USER@$SERVER:$UPDATEDIR/$VERSION/ /var/lib/mss 1.6 kirby 28: if [ $? -eq 0 ]; then 1.2 kirby 29: echo "Updated from $LOCALVERSION to $VERSION" 30: echo $VERSION > /var/lib/mss/version 1.12 kirby 31: ssh $USER@$SERVER "echo "$DATE SUCCESS: $MYNAME was updated from $UPDATEDIR $LOCALVERSION '-\>' $VERSION" >> $UPDATEDIR/update.log" 1.2 kirby 32: rm -f $LOCK 1.6 kirby 33: else 34: echo "Update failed" 1.12 kirby 35: ssh $USER@$SERVER "echo "$DATE ERROR: $MYNAME update from $UPDATEDIR $LOCALVERSION '-\>' $VERSION failed" >> $UPDATEDIR/update.log" 1.6 kirby 36: fi 1.10 kirby 37: elif [ -n "$VERSION" ] && [ -n "$UPDATEDIR" ] && [ "$(echo "$LOCALVERSION < $VERSION" |bc -l )" -eq 1 ] && [ -e $LOCK ]; then 1.2 kirby 38: echo "Update is running..." 1.12 kirby 39: ssh $USER@$SERVER "echo "$DATE WARNING: $MYNAME is still running update from $LOCALVERSION to $VERSION" >> $UPDATEDIR/update.log" 1.10 kirby 40: elif [ -z "$VERSION" ] && [ -z "$UPDATEDIR" ]; then 41: echo "Can't find myself in $HOSTLIST" 1.1 kirby 42: else 1.2 kirby 43: echo "Version $LOCALVERSION is already installed" 1.1 kirby 44: fi 45: 46: 47: 48: 49: 50: # Debug 1.5 kirby 51: echo $USER $SERVER $MYNAME $UPDATEDIR $VERSION $LOCALVERSION $HOSTLIST