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