=================================================================== RCS file: /cvs/mss/netupdate/networkupdate.sh,v retrieving revision 1.2 retrieving revision 1.8 diff -u -r1.2 -r1.8 --- mss/netupdate/networkupdate.sh 2013/07/18 11:54:30 1.2 +++ mss/netupdate/networkupdate.sh 2013/07/19 08:48:45 1.8 @@ -3,31 +3,37 @@ # Use config file instead of editing script itself source netupdate.conf +# 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 + # 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 $NAME $HOSTLIST |awk '{print $2}'` -UPDATEDIR=`ssh $USER@$SERVER grep $NAME $HOSTLIST |awk '{print $3}'` +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 -Hacvx --exclude-from=/var/lib/mss/rsync-exclude $USER@$SERVER:$UPDATEDIR/music /var/lib/mss/ + rsync -Havx --ignore-existing --exclude-from=/var/lib/mss/rsync-exclude $USER@$SERVER:$UPDATEDIR/music /var/lib/mss/ + rsync -Hacvx --exclude-from=/var/lib/mss/rsync-exclude $USER@$SERVER:$UPDATEDIR/$VERSION/1 /var/lib/mss + if [ $? -eq 0 ]; then echo "Updated from $LOCALVERSION to $VERSION" echo $VERSION > /var/lib/mss/version - ssh $USER@$SERVER echo "`date` $NAME updated from $LOCALVERSION to $VERSION" >> $UPDATEDIR/update.log + 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 ] + else + echo "Update failed" + ssh $USER@$SERVER "echo "`date` ERROR: $MYNAME update from $UPDATEDIR $LOCALVERSION '->' $VERSION failed" >> $UPDATEDIR/update.log" + fi +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 @@ -37,4 +43,4 @@ # Debug -echo $USER $SERVER $NAME $UPDATEDIR $VERSION $LOCALVERSION $HOSTLIST +echo $USER $SERVER $MYNAME $UPDATEDIR $VERSION $LOCALVERSION $HOSTLIST