diff -ur amanda-2.6.1p1/changer-src/chg-zd-mtx.sh amanda-2.6.1p1-sh/changer-src/chg-zd-mtx.sh --- amanda-2.6.1p1/changer-src/chg-zd-mtx.sh 2008-12-16 21:46:41.000000000 +0100 +++ amanda-2.6.1p1-sh/changer-src/chg-zd-mtx.sh 2009-07-03 21:00:25.379617588 +0200 @@ -364,7 +364,7 @@ internal_call=0 Exit() { - if [ $internal_call -gt 0 ]; then + if [ "$internal_call" -gt 0 ]; then call_type=Return else call_type=Exit @@ -376,7 +376,7 @@ exit_answer="$@" Log $call_type "($code) -> $exit_slot $@" echo "$exit_slot" "$@" - if [ $call_type = Return ]; then + if [ "$call_type" = "Return" ]; then return $code fi amgetconf dbclose.$myname:$DBGFILE > /dev/null 2>&1 @@ -393,12 +393,12 @@ "$@" > $stdout 2> $stderr exitcode=$? Log `_ 'Exit code: %s' "$exitcode"` - if [ -s $stdout ] + if [ -s "$stdout" ] then LogAppend Stdout: cat $stdout >> $DBGFILE fi - if [ -s $stderr ] + if [ -s "$stderr" ] then LogAppend Stderr: cat $stderr >> $DBGFILE @@ -425,13 +425,13 @@ mtx_status_valid=0 get_mtx_status() { test -n "$DEBUG" && set -x - if [ $mtx_status_valid -ne 0 ]; then + if [ "$mtx_status_valid" -ne 0 ]; then return 0 fi rm -f $mtx_status Run $MTX status > $mtx_status 2>&1 status=$? - if [ $status -eq 0 ]; then + if [ "$status" -eq 0 ]; then mtx_status_valid=1 fi @@ -503,7 +503,7 @@ fi #Use the current slot if it's empty and we don't know which slot is loaded' - if [ $loadedslot -eq -2 ]; then + if [ "$loadedslot" -eq -2 ]; then set x `sed -n ' { /^.*Storage Element '$currentslot':Empty/ { @@ -526,13 +526,13 @@ ' < $mtx_status 2>& 1` shift # get rid of the "x" loadedslotx=$1 - if [ ! -z $loadedslotx ]; then + if [ ! -z "$loadedslotx" ]; then loadedslot=$loadedslotx fi fi #Use the first empty slot if we don't know which slot is loaded' - if [ $loadedslot -eq -2 ]; then + if [ "$loadedslot" -eq -2 ]; then set x `sed -n ' { /^.*Storage Element \([0-9][0-9]*\):Empty/ { @@ -606,27 +606,27 @@ } ' < $mtx_status 2>&1 | grep -v "^${cleanslot}\$" | sort -n` slot_list=`echo $slot_list` # remove the newlines - if [ $firstslot -lt 0 -o $lastslot -lt 0 ]; then + if [ "$firstslot" -lt 0 -o "$lastslot" -lt 0 ]; then last=$lastslot for slot in $slot_list; do - if [ $firstslot -lt 0 ]; then + if [ "$firstslot" -lt 0 ]; then Log `_ 'SLOTLIST -> firstslot set to %s' "$slot"` firstslot=$slot fi - if [ $lastslot -lt 0 ]; then + if [ "$lastslot" -lt 0 ]; then last=$slot fi done - if [ $lastslot -lt 0 -a $last -ge 0 ]; then + if [ "$lastslot" -lt 0 -a "$last" -ge 0 ]; then Log `_ 'SLOTLIST -> lastslot set to %s' "$last"` lastslot=$last fi - if [ $firstslot -lt 0 ]; then + if [ "$firstslot" -lt 0 ]; then Exit 2 \ `_ ''` \ `_ 'cannot determine first slot'` return $? # in case we are internal - elif [ $lastslot -lt 0 ]; then + elif [ "$lastslot" -lt 0 ]; then Exit 2 \ `_ ''` \ `_ 'cannot determine last slot'` @@ -635,7 +635,7 @@ fi amanda_slot_list= for slot in $slot_list; do - if [ $slot -ge $firstslot -a $slot -le $lastslot ]; then + if [ "$slot" -ge "$firstslot" -a "$slot" -le "$lastslot" ]; then amanda_slot_list="$amanda_slot_list $slot" fi done @@ -671,7 +671,7 @@ `_ 'Line %s malformed in %s: %s %s %s' "$line" "$labelfile" "$lbl" "$bc" "$junk"` return $? # in case we are internal fi - if [ $lbl = "$lbl_search" -o $bc = "$bc_search" ]; then + if [ "$lbl" = "$lbl_search" -o "$bc" = "$bc_search" ]; then if [ $labelfile_entry_found -ne 0 ]; then Log `_ 'ERROR -> Duplicate entries: %s line %s' "$labelfile" "$line"` LogAppend `_ ' -> Remove %s and run "%s %s update"' "$labelfile" "$sbindir/amtape" "$config"` @@ -860,7 +860,7 @@ Exit 2 \ ` _ ''` \ "tapedev $rawtape is not a tape device." -elif [ $tape = "/dev/null" -o `expr "$tape" : 'null:'` -eq 5 ]; then +elif [ "$tape" = "/dev/null" -o "`expr "$tape" : 'null:'`" -eq 5 ]; then Exit 2 \ `_ ''` \ "tapedev ($tape) may not be the null device" @@ -871,7 +871,7 @@ Exit 2 \ `_ ''` \ "changerdev may not be empty" -elif [ $TAPE = "/dev/null" ]; then +elif [ "$TAPE" = "/dev/null" ]; then Exit 2 \ `_ ''` \ "changerdev ($TAPE) may not be the null device" @@ -884,19 +884,19 @@ #### Set up the various config files. conf_match=`expr "$changerfile" : .\*\.conf\$` -if [ $conf_match -ge 6 ]; then +if [ "$conf_match" -ge 6 ]; then configfile=$changerfile changerfile=`echo $changerfile | sed 's/.conf$//g'` else configfile=$changerfile.conf fi -if [ ! -e $configfile ]; then +if [ ! -e "$configfile" ]; then Exit 2 \ `_ ''` \ "configuration file \"$configfile\" doesn't exist" fi -if [ ! -f $configfile ]; then +if [ ! -f "$configfile" ]; then Exit 2 \ `_ ''` \ "configuration file \"$configfile\" is not a file" @@ -907,10 +907,10 @@ slotfile=$changerfile-slot labelfile=$changerfile-barcodes slotinfofile="" -[ ! -s $cleanfile ] && echo 0 > $cleanfile -[ ! -s $accessfile ] && echo 0 > $accessfile -[ ! -s $slotfile ] && echo -1 > $slotfile -[ ! -f $labelfile ] && > $labelfile +[ ! -s "$cleanfile" ] && echo 0 > $cleanfile +[ ! -s "$accessfile" ] && echo 0 > $accessfile +[ ! -s "$slotfile" ] && echo -1 > $slotfile +[ ! -f "$labelfile" ] && > $labelfile cleancount=`cat $cleanfile` accesscount=`cat $accessfile` @@ -957,7 +957,7 @@ # Get DBGFILE set if it is not already. -if [ $DBGFILE = /dev/null ]; then +if [ "$DBGFILE" = /dev/null ]; then if [ -d "$DBGDIR" ]; then DBGFILE=$DBGDIR/changer.debug.drive$driveslot else @@ -1037,9 +1037,9 @@ Log `_ "Config info:"` for var in $varlist; do - if [ $var = "OFFLINE_BEFORE_UNLOAD" ]; then + if [ "$var" = "OFFLINE_BEFORE_UNLOAD" ]; then continue # old name - elif [ $var = "AUTOCLEAN" ]; then + elif [ "$var" = "AUTOCLEAN" ]; then continue # old name elif [ $var = "slotinfofile" ]; then continue # not numeric @@ -1062,12 +1062,12 @@ # Run the rest of the config file sanity checks. -if [ $firstslot -gt $lastslot ]; then +if [ "$firstslot" -gt "$lastslot" ]; then Exit 2 \ `_ ''` \ `_ 'firstslot (%s) greater than lastslot (%s) in %s' "$firstslot" "$lastslot" "$configfile"` fi -if [ $autoclean -ne 0 -a $cleanslot -lt 0 ]; then +if [ "$autoclean" -ne 0 -a "$cleanslot" -lt 0 ]; then Exit 2 \ `_ ''` \ `_ 'autoclean set but cleanslot not valid (%s)' "$cleanslot"` @@ -1077,10 +1077,10 @@ currentslot=`cat $slotfile` if IsNumeric "$currentslot" ; then - if [ $currentslot -lt $firstslot ]; then + if [ "$currentslot" -lt "$firstslot" ]; then Log `_ 'SETUP -> current slot %s less than %s ... resetting to %s' "$currentslot" "$firstslot" "$firstslot"` currentslot=$firstslot - elif [ $currentslot -gt $lastslot ]; then + elif [ "$currentslot" -gt "$lastslot" ]; then Log `_ 'SETUP -> current slot %s greater than %s ... resetting to %s' "$currentslot" "$lastslot" "$lastslot"` currentslot=$lastslot fi @@ -1093,19 +1093,19 @@ first_slot_in_list=-1 next_slot_after_current=-1 for slot in $slot_list; do - if [ $first_slot_in_list -lt 0 ]; then + if [ "$first_slot_in_list" -lt 0 ]; then first_slot_in_list=$slot # in case $firstslot is missing fi - if [ $slot -eq $currentslot ]; then + if [ "$slot" -eq "$currentslot" ]; then found_current=1 break - elif [ $slot -gt $currentslot ]; then + elif [ "$slot" -gt "$currentslot" ]; then next_slot_after_current=$slot # $currentslot is missing break fi done -if [ $found_current -eq 0 ]; then - if [ $next_slot_after_current -lt 0 ]; then +if [ "$found_current" -eq 0 ]; then + if [ "$next_slot_after_current" -lt 0 ]; then new_currentslot=$first_slot_in_list else new_currentslot=$next_slot_after_current @@ -1124,9 +1124,9 @@ test -n "$DEBUG" && set -x Log `_ 'EJECT -> ejecting tape from %s' "$tape"` get_loaded_info - if [ $loadedslot -gt 0 ]; then + if [ "$loadedslot" -gt 0 ]; then Log `_ 'EJECT -> moving tape from drive %s to storage slot %s' "$driveslot" "$loadedslot"` - if [ $offline_before_unload -ne 0 ]; then + if [ "$offline_before_unload" -ne 0 ]; then Run try_eject_device $tape fi sleep $unloadpause @@ -1134,7 +1134,7 @@ status=$? Log `_ ' -> status %s, result "%s"' "$status" "$result"` mtx_status_valid=0 - if [ $status -ne 0 ]; then + if [ "$status" -ne 0 ]; then answer="$result" code=2 else @@ -1213,7 +1213,7 @@ prev_slot=$1 shift while [ $# -gt 0 ]; do - if [ $1 -eq $find_slot ]; then + if [ "$1" -eq "$find_slot" ]; then break fi prev_slot=$1 @@ -1242,15 +1242,15 @@ # If the desired slot is already loaded, we are done. Only update # current slot if this is not the cleaning slot. get_loaded_info - if [ $loadslot = $loadedslot ]; then - if [ $loadslot -ne $cleanslot ]; then + if [ "$loadslot" = "$loadedslot" ]; then + if [ "$loadslot" -ne "$cleanslot" ]; then rm -f $slotfile echo $loadslot > $slotfile fi Exit 0 "$loadedslot" "$rawtape" return $? # in case we are internal fi - if [ $loadedslot -eq -2 ]; then + if [ "$loadedslot" -eq -2 ]; then Exit 0 "$loadedslot" "$rawtape" return $? # in case we are internal fi @@ -1258,20 +1258,20 @@ # If we are loading the cleaning tape, bump the cleaning count # and reset the access count. Otherwise, bump the access count # and see if it is time to do a cleaning. - if [ $loadslot = $cleanslot ]; then + if [ "$loadslot" = "$cleanslot" ]; then rm -f $cleanfile $accessfile expr $cleancount + 1 > $cleanfile echo 0 > $accessfile else rm -f $accessfile expr $accesscount + 1 > $accessfile - if [ $autoclean -ne 0 -a $accesscount -gt $autocleancount ] + if [ "$autoclean" -ne 0 -a "$accesscount" -gt "$autocleancount" ] then internal_call=`expr $internal_call + 1` loadslot clean > /dev/null 2>&1 status=$? internal_call=`expr $internal_call - 1` - if [ $status -ne 0 ]; then + if [ "$status" -ne 0 ]; then Exit $status "$loadslot" "$exit_answer" return $? # in case we are internal fi @@ -1291,14 +1291,14 @@ eject > /dev/null 2>&1 status=$? internal_call=`expr $internal_call - 1` - if [ $status -gt 1 ]; then + if [ "$status" -gt 1 ]; then Exit $status "$exit_slot" "$exit_answer" return $? # in case we are internal fi # If we were doing an "advance", we are done. - if [ $whichslot = advance ]; then - if [ $loadslot -ne $cleanslot ]; then + if [ "$whichslot" = "advance" ]; then + if [ "$loadslot" -ne "$cleanslot" ]; then rm -f $slotfile echo $loadslot > $slotfile fi @@ -1312,7 +1312,7 @@ status=$? Log `_ ' -> status %s, result "%s"' "$status" "$result"` mtx_status_valid=0 - if [ $status -ne 0 ]; then + if [ "$status" -ne 0 ]; then Exit 2 "$loadslot" "$result" return $? # in case we are internal fi @@ -1322,7 +1322,7 @@ # for "long enough" (as determined empirically by the user), # then return success. ### - if [ $loadslot -eq $cleanslot ]; then + if [ "$loadslot" -eq "$cleanslot" ]; then Run sleep $cleancycle Exit 0 "$loadslot" "$rawtape" return $? # in case we are internal @@ -1334,7 +1334,7 @@ waittime=0 ready=0 sleep $initial_poll_delay - while [ $waittime -lt $max_drive_wait ]; do + while [ "$waittime" -lt "$max_drive_wait" ]; do amdevcheck_status $tape if [ $? -eq 0 ]; then ready=1 @@ -1343,12 +1343,12 @@ sleep $poll_drive_ready waittime=`expr $waittime + $poll_drive_ready` done - if [ $ready -eq 0 ]; then + if [ "$ready" -eq 0 ]; then Exit 2 "$loadslot" `_ 'Drive not ready after %s seconds: %s' "$max_drive_wait" "$amdevcheck_message"` return $? # in case we are internal fi - if [ $loadslot -ne $cleanslot ]; then + if [ "$loadslot" -ne "$cleanslot" ]; then rm -f $slotfile echo $loadslot > $slotfile fi @@ -1379,11 +1379,11 @@ # can search based on barcodes. ### reader= - if [ $havereader -eq 1 ]; then + if [ "$havereader" -eq 1 ]; then reader=1 fi - if [ $currentslot -lt $firstslot -o $currentslot -gt $lastslot ]; then + if [ "$currentslot" -lt "$firstslot" -o "$currentslot" -gt "$lastslot" ]; then currentslot=$firstslot # what "current" will get fi numslots=`expr $lastslot - $firstslot + 1` @@ -1404,12 +1404,12 @@ fi tapelabel=$1 get_loaded_info - if [ $loadedslot -lt 0 ]; then + if [ "$loadedslot" -lt 0 ]; then Exit 1 `_ ''` `_ 'No tape currently loaded'` return $? # in case we are internal fi record_label_in_slot "$tapelabel" "$loadedslot" - if [ $havereader -eq 0 ]; then + if [ "$havereader" -eq 0 ]; then Exit 0 "$loadedslot" "$rawtape" # that's all we needed return $? # in case we are internal fi @@ -1419,7 +1419,7 @@ fi Log `_ 'LABEL -> Adding label "%s" with barcode "%s" for slot %s into %s' "$tapelabel" "$loadedbarcode" "$loadedslot" "$labelfile"` read_labelfile "$tapelabel" "$loadedbarcode" < $labelfile - if [ $labelfile_entry_found -ne 0 ]; then + if [ "$labelfile_entry_found" -ne 0 ]; then lf_val= if [ "$labelfile_barcode" != "$loadedbarcode" ]; then lf_type=label @@ -1465,13 +1465,13 @@ return $? # in case we are internal fi tapelabel=$1 - if [ $havereader -eq 0 ]; then + if [ "$havereader" -eq 0 ]; then Exit 2 `_ ''` `_ 'Not configured with barcode reader'` return $? # in case we are internal fi Log `_ 'SEARCH -> Hunting for label "%s"' "$tapelabel"` read_labelfile "$tapelabel" "" < $labelfile - if [ $labelfile_entry_found -eq 0 ]; then + if [ "$labelfile_entry_found" -eq 0 ]; then LogAppend `_ ' -> !!! label "%s" not found in %s !!!' "$tapelabel" "$labelfile"` LogAppend `_ ' -> Remove %s and run "%s %s update"' "$labelfile" "$sbindir/amtape" "$config"` Exit 2 \