From a8b9586bf314ed146b28a924b96023e8d6b1f837 Mon Sep 17 00:00:00 2001 From: Kern Sibbald Date: Tue, 25 Nov 2003 17:24:30 +0000 Subject: [PATCH] Add new tape tests git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@815 91ce42f0-d328-0410-95d8-f526ca767f89 --- regress/all-non-root-2tape-tests | 12 +++ regress/all-non-root-tape-tests | 4 +- regress/all-root-tests | 1 + regress/scripts/.cvsignore | 3 + regress/scripts/bacula-dir-tape.conf.in | 1 + regress/scripts/bacula-sd-2tape.conf.in | 55 +++++++++++ regress/scripts/bacula-sd-tape.conf.in | 2 - regress/scripts/cleanup-2tape.in | 32 +++++++ regress/scripts/cleanup-tape.in | 11 --- regress/scripts/copy-2tape-confs | 5 + regress/scripts/do_sed | 4 +- regress/scripts/freebsd_tape_options | 1 + regress/tests/bsr-opt-test | 7 +- regress/tests/four-concurrent-jobs-tape | 66 +++++++++++++ regress/tests/four-jobs-tape | 119 ++++++++++++++++++++++++ regress/tests/incremental-2tape | 88 ++++++++++++++++++ regress/tests/incremental-tape | 83 +++++++++++++++++ regress/tests/incremental-test | 6 +- regress/tests/lib-tape-root | 64 +++++++++++++ regress/tests/two-volume-tape | 2 +- regress/tests/usr-tape-root | 64 +++++++++++++ 21 files changed, 610 insertions(+), 20 deletions(-) create mode 100755 regress/all-non-root-2tape-tests create mode 100644 regress/scripts/bacula-sd-2tape.conf.in create mode 100755 regress/scripts/cleanup-2tape.in create mode 100755 regress/scripts/copy-2tape-confs create mode 100755 regress/tests/four-concurrent-jobs-tape create mode 100755 regress/tests/four-jobs-tape create mode 100755 regress/tests/incremental-2tape create mode 100755 regress/tests/incremental-tape create mode 100755 regress/tests/lib-tape-root create mode 100755 regress/tests/usr-tape-root diff --git a/regress/all-non-root-2tape-tests b/regress/all-non-root-2tape-tests new file mode 100755 index 0000000000..5201731263 --- /dev/null +++ b/regress/all-non-root-2tape-tests @@ -0,0 +1,12 @@ +#!/bin/sh +# +# Run all tape tests +# +tests/test0 +tests/two-volume-tape +tests/incremental-2tape +echo " " +echo " " +echo "2 Tape Test results" +cat test.out +scripts/cleanup diff --git a/regress/all-non-root-tape-tests b/regress/all-non-root-tape-tests index 3fc6308a56..3bf232766c 100755 --- a/regress/all-non-root-tape-tests +++ b/regress/all-non-root-tape-tests @@ -5,8 +5,10 @@ tests/test0 tests/backup-bacula-tape tests/small-file-size-tape -tests/two-volume-tape tests/restore-by-file-tape +tests/incremental-tape +tests/four-concurrent-jobs-tape +tests/four-jobs-tape echo " " echo " " echo "Test results" diff --git a/regress/all-root-tests b/regress/all-root-tests index ce7f7ae533..3f077bba4c 100755 --- a/regress/all-root-tests +++ b/regress/all-root-tests @@ -6,5 +6,6 @@ rm -f test.out tests/dev-test-root tests/etc-test-root tests/lib-test-root +tests/usr-tape-root cat test.out scripts/cleanup diff --git a/regress/scripts/.cvsignore b/regress/scripts/.cvsignore index e4e5fdaa82..8d7e0007c7 100644 --- a/regress/scripts/.cvsignore +++ b/regress/scripts/.cvsignore @@ -2,6 +2,7 @@ bacula-dir.conf bacula-fd.conf bacula-sd.conf console.conf +bconsole.conf test-bacula-dir.conf test-bacula-fd.conf test-bacula-sd.conf @@ -9,5 +10,7 @@ test-console.conf testa-bacula-dir.conf bacula-dir-tape.conf bacula-sd-tape.conf +bacula-sd-2tape.conf cleanup-tape +cleanup-2tape prepare-two-tapes diff --git a/regress/scripts/bacula-dir-tape.conf.in b/regress/scripts/bacula-dir-tape.conf.in index bc22c35a4e..5907f322b5 100644 --- a/regress/scripts/bacula-dir-tape.conf.in +++ b/regress/scripts/bacula-dir-tape.conf.in @@ -94,6 +94,7 @@ Storage { Device = DDS-4 # must be same as Device in Storage daemon Media Type = DDS-4 # must be same as MediaType in Storage daemon AutoChanger = yes + Maximum Concurrent Jobs = 4 } diff --git a/regress/scripts/bacula-sd-2tape.conf.in b/regress/scripts/bacula-sd-2tape.conf.in new file mode 100644 index 0000000000..bd917ccfa8 --- /dev/null +++ b/regress/scripts/bacula-sd-2tape.conf.in @@ -0,0 +1,55 @@ +# +# Default Bacula Storage Daemon Configuration file +# +# For Bacula release 1.30 (12 April 2003) -- redhat 7.3 +# +# You may need to change the name of your tape drive +# on the "Archive Device" directive in the Device +# resource. If you change the Name and/or the +# "Media Type" in the Device resource, please ensure +# that dird.conf has corresponding changes. +# + +Storage { # definition of myself + Name = @hostname@-sd + SDPort = 8103 # Director's port + WorkingDirectory = "@working_dir@" + Pid Directory = "@piddir@" + Subsys Directory = "@subsysdir@" +} + +# +# List Directors who are permitted to contact Storage daemon +# +Director { + Name = @hostname@-dir + Password = "ccV3lVTsQRsdIUGyab0N4sMDavui2hOBkmpBU0aQKOr9" +} + +# +# Devices supported by this Storage daemon +# To connect, the Director's bacula-dir.conf must have the +# same Name and MediaType. +# + +Device { + Name = DDS-4 # + Media Type = DDS-4 + Changer Device = @autochanger@ + Changer Command ="@scriptdir@/mtx-changer %c %o %S %a" + Archive Device = @tape_drive@ + AutomaticMount = yes; # when device opened, read it + AlwaysOpen = yes; + RemovableMedia = yes; + @@sbindir@/tape_options +# Maximum File Size = 1000000 +} + +# +# Send all messages to the Director, +# mount messages also are sent to the email address +# +Messages { + Name = Standard + director = @hostname@-dir = all +} diff --git a/regress/scripts/bacula-sd-tape.conf.in b/regress/scripts/bacula-sd-tape.conf.in index bd917ccfa8..6019e19b9e 100644 --- a/regress/scripts/bacula-sd-tape.conf.in +++ b/regress/scripts/bacula-sd-tape.conf.in @@ -35,8 +35,6 @@ Director { Device { Name = DDS-4 # Media Type = DDS-4 - Changer Device = @autochanger@ - Changer Command ="@scriptdir@/mtx-changer %c %o %S %a" Archive Device = @tape_drive@ AutomaticMount = yes; # when device opened, read it AlwaysOpen = yes; diff --git a/regress/scripts/cleanup-2tape.in b/regress/scripts/cleanup-2tape.in new file mode 100755 index 0000000000..06583b5f69 --- /dev/null +++ b/regress/scripts/cleanup-2tape.in @@ -0,0 +1,32 @@ +#!/bin/sh +# +# Cleanup left over files -- both before and after test run +# +rm -rf /tmp/TestVolume001 /tmp/bacula-restores /tmp/Small* +rm -rf tmp/original tmp/bacula-restores tmp/Small* tmp/TestVolume* +rm -rf tmp/restored tmp/largefile tmp/bscan.bsr tmp/log*.out + +if ! test x@autochanger@ = x/dev/null; then + drive=`bin/mtx-changer @autochanger@ loaded` + if ! test x$drive = x2; then + bin/mtx-changer @autochanger@ unload + bin/mtx-changer @autochanger@ load 2 + fi + mt -f @tape_drive@ rewind + mt -f @tape_drive@ weof +fi + + +# +# If we have an autochanger always load tape in slot 1 +# +if ! test x@autochanger@ = x/dev/null; then + drive=`bin/mtx-changer @autochanger@ loaded` + if ! test x$drive = x1; then + bin/mtx-changer @autochanger@ unload + bin/mtx-changer @autochanger@ load 1 + fi +fi + +mt -f @tape_drive@ rewind +mt -f @tape_drive@ weof diff --git a/regress/scripts/cleanup-tape.in b/regress/scripts/cleanup-tape.in index 64ad92f31b..debc2a9840 100755 --- a/regress/scripts/cleanup-tape.in +++ b/regress/scripts/cleanup-tape.in @@ -6,16 +6,5 @@ rm -rf /tmp/TestVolume001 /tmp/bacula-restores /tmp/Small* rm -rf tmp/original tmp/bacula-restores tmp/Small* tmp/TestVolume* rm -rf tmp/restored tmp/largefile tmp/bscan.bsr tmp/log*.out -# -# If we have an autochanger always load tape in slot 1 -# -if ! test x@autochanger@ = x/dev/null; then - drive=`bin/mtx-changer @autochanger@ loaded` - if ! test x$drive = x1; then - bin/mtx-changer @autochanger@ unload - bin/mtx-changer @autochanger@ load 1 - fi -fi - mt -f @tape_drive@ rewind mt -f @tape_drive@ weof diff --git a/regress/scripts/copy-2tape-confs b/regress/scripts/copy-2tape-confs new file mode 100755 index 0000000000..dbf9466330 --- /dev/null +++ b/regress/scripts/copy-2tape-confs @@ -0,0 +1,5 @@ +#!/bin/sh +/bin/cp -f scripts/bacula-dir-tape.conf bin/bacula-dir.conf +/bin/cp -f scripts/bacula-sd-2tape.conf bin/bacula-sd.conf +/bin/cp -f scripts/test-bacula-fd.conf bin/bacula-fd.conf +/bin/cp -f scripts/test-console.conf bin/bconsole.conf diff --git a/regress/scripts/do_sed b/regress/scripts/do_sed index 0a119f43ef..cb92d78344 100755 --- a/regress/scripts/do_sed +++ b/regress/scripts/do_sed @@ -34,11 +34,13 @@ sed -f ${out} ${cwd}/scripts/test-bacula-sd.conf.in >${cwd}/scripts/test-bacula- sed -f ${out} ${cwd}/scripts/test-console.conf.in >${cwd}/scripts/test-console.conf sed -f ${out} ${cwd}/scripts/bacula-dir-tape.conf.in >${cwd}/scripts/bacula-dir-tape.conf sed -f ${out} ${cwd}/scripts/bacula-sd-tape.conf.in >${cwd}/scripts/bacula-sd-tape.conf +sed -f ${out} ${cwd}/scripts/bacula-sd-2tape.conf.in >${cwd}/scripts/bacula-sd-2tape.conf sed -f ${out} ${cwd}/scripts/cleanup-tape.in >${cwd}/scripts/cleanup-tape +sed -f ${out} ${cwd}/scripts/cleanup-2tape.in >${cwd}/scripts/cleanup-2tape sed -f ${out} ${cwd}/scripts/prepare-two-tapes.in >${cwd}/scripts/prepare-two-tapes cp ${cwd}/bin/bacula-sd.conf /tmp/bac$$ sed s%/tmp%${cwd}/tmp%g /tmp/bac$$ >${cwd}/bin/bacula-sd.conf -chmod 777 ${cwd}/scripts/cleanup-tape ${cwd}/scripts/prepare-two-tapes +chmod 777 ${cwd}/scripts/cleanup-*tape ${cwd}/scripts/prepare-two-tapes rm -f /tmp/bac$$ cp ${cwd}/bin/mtx-changer /tmp/bac$$ sed "s%^MTX.*$%MTX=${4}%g" /tmp/bac$$ >${cwd}/bin/mtx-changer diff --git a/regress/scripts/freebsd_tape_options b/regress/scripts/freebsd_tape_options index c17288ba24..fa037b4aa7 100644 --- a/regress/scripts/freebsd_tape_options +++ b/regress/scripts/freebsd_tape_options @@ -1,3 +1,4 @@ Hardware End of Medium = no +Fast Forward Space File = no BSF at EOM = yes Backward Space Record = no diff --git a/regress/tests/bsr-opt-test b/regress/tests/bsr-opt-test index 8e1d315076..fb19d53c12 100755 --- a/regress/tests/bsr-opt-test +++ b/regress/tests/bsr-opt-test @@ -48,7 +48,12 @@ messages quit END_OF_DATA bin/bacula stop 2>&1 >/dev/null -grep TestVolume001 working/restore.bsr 2>&1 >/dev/null +# +# This test is not really reliable. What we want to do is +# to select files on only one Volume, then insure here +# that only one Volume is chosen. +# +grep TestVolume002 working/restore.bsr 2>&1 >/dev/null bsrstat=$? grep "^Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null bstat=$? diff --git a/regress/tests/four-concurrent-jobs-tape b/regress/tests/four-concurrent-jobs-tape new file mode 100755 index 0000000000..d3ede9a780 --- /dev/null +++ b/regress/tests/four-concurrent-jobs-tape @@ -0,0 +1,66 @@ +#!/bin/sh +# +# Run two jobs at the same time +# +cwd=`pwd` +bin/bacula stop 2>&1 >/dev/null +bin/drop_sqlite_tables +bin/make_sqlite_tables +scripts/copy-tape-confs +scripts/cleanup-tape +echo "${cwd}/build" >/tmp/file-list + +echo " " +echo " " +echo " === Starting four-concurent-jobs-tape ===" +echo " === Starting four-concurent-jobs-tape ===" >>working/log +echo " " + +#bin/bacula start 2>&1 >/dev/null +bin/bacula start +bin/bconsole -c bin/bconsole.conf <&1 >/dev/null +grep "^Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null +bstat=$? +grep "^Termination: *Restore OK" tmp/log2.out 2>&1 >/dev/null +rstat=$? +diff -r build tmp/bacula-restores${cwd}/build 2>&1 >/dev/null +if [ $? != 0 -o $bstat != 0 -o $rstat != 0 ] ; then + echo " " + echo " " + echo " !!!!! four-concurent-jobs-tape Bacula source failed!!! !!!!! " + echo " !!!!! four-concurent-jobs-tape failed!!! !!!!! " >>test.out + echo " " + exit 1 +else + echo " ===== four-concurent-jobs-tape Bacula source OK ===== " + echo " ===== four-concurent-jobs-tape OK ===== " >>test.out + scripts/cleanup + exit 0 +fi diff --git a/regress/tests/four-jobs-tape b/regress/tests/four-jobs-tape new file mode 100755 index 0000000000..b5f21b4271 --- /dev/null +++ b/regress/tests/four-jobs-tape @@ -0,0 +1,119 @@ +#!/bin/sh +# +# Run a simple backup of the Bacula build directory using the compressed option +# then backup four times, each with incremental then finally restore. +# It should require at least 4 different bsrs. +# +cwd=`pwd` +bin/bacula stop 2>&1 >/dev/null +bin/drop_sqlite_tables +bin/make_sqlite_tables + +scripts/copy-tape-confs +scripts/cleanup-tape +echo "${cwd}/build" >/tmp/file-list + +echo " " +echo " " +echo " === Starting four-jobs-tape ===" +echo " === Starting four-jobs-tape ===" >>working/log +echo " " + +bin/bacula start 2>&1 >/dev/null +bin/bconsole -c bin/bconsole.conf <&1 >/dev/null +grep "^Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null +bstat=$? +grep "^Termination: *Restore OK" tmp/log2.out 2>&1 >/dev/null +rstat=$? +diff -r build tmp/bacula-restores${cwd}/build 2>&1 >/dev/null +if [ $? != 0 -o $bstat != 0 -o $rstat != 0 ] ; then + echo " " + echo " " + echo " !!!!! four-jobs-tape Bacula source failed!!! !!!!! " + echo " !!!!! four-jobs-tape failed!!! !!!!! " >>test.out + echo " " +else + echo " ===== four-jobs-tape Bacula source OK ===== " + echo " ===== four-jobs-tape OK ===== " >>test.out + scripts/cleanup +fi diff --git a/regress/tests/incremental-2tape b/regress/tests/incremental-2tape new file mode 100755 index 0000000000..783ec8b794 --- /dev/null +++ b/regress/tests/incremental-2tape @@ -0,0 +1,88 @@ +#!/bin/sh +# +# Run a simple backup of the Bacula build directory then create some +# new files, do an Incremental and restore those two files. +# +# This script uses the autochanger and two tapes +# +cwd=`pwd` +bin/bacula stop 2>&1 >/dev/null +bin/drop_sqlite_tables +bin/make_sqlite_tables + +scripts/copy-2tape-confs +scripts/cleanup-2tape +echo "${cwd}/tmp/build" >/tmp/file-list +if test ! -d ${cwd}/tmp/build ; then + mkdir ${cwd}/tmp/build +fi +cp -p ${cwd}/build/src/dird/*.c ${cwd}/tmp/build +cd ${cwd}/tmp +echo "${cwd}/tmp/build/ficheriro1.txt" >restore-list +echo "${cwd}/tmp/build/ficheriro2.txt" >>restore-list +cd ${cwd} + +echo " " +echo " " +echo " === Starting incremental-2tape test ===" +echo " === Starting incremental-2tape test ===" >>working/log +echo " " + +bin/bacula start 2>&1 >/dev/null +bin/bconsole -c bin/bconsole.conf <${cwd}/tmp/build/ficheriro1.txt +echo "ficheriro2.txt" >${cwd}/tmp/build/ficheriro2.txt +bin/bconsole -c bin/bconsole.conf <&1 >/dev/null +grep "^Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null +bstat=$? +grep "^Termination: *Restore OK" tmp/log2.out 2>&1 >/dev/null +rstat=$? +# +# Delete .c files because we will only restored the txt files +# +rm -f tmp/build/*.c +diff -r tmp/build tmp/bacula-restores${cwd}/tmp/build 2>&1 >/dev/null +if [ $? != 0 -o $bstat != 0 -o $rstat != 0 ] ; then + echo " " + echo " " + echo " !!!!! incremental-2tape test Bacula source failed!!! !!!!! " + echo " !!!!! incremental-2tape test failed!!! !!!!! " >>test.out + echo " " +else + echo " ===== incremental-2tape test Bacula source OK ===== " + echo " ===== incremental-2tape test OK ===== " >>test.out + scripts/cleanup +fi diff --git a/regress/tests/incremental-tape b/regress/tests/incremental-tape new file mode 100755 index 0000000000..43eb3f4052 --- /dev/null +++ b/regress/tests/incremental-tape @@ -0,0 +1,83 @@ +#!/bin/sh +# +# Run a simple backup of the Bacula build directory then create some +# new files, do an Incremental and restore those two files. +# +cwd=`pwd` +bin/bacula stop 2>&1 >/dev/null +bin/drop_sqlite_tables +bin/make_sqlite_tables + +scripts/copy-tape-confs +scripts/cleanup-tape +echo "${cwd}/tmp/build" >/tmp/file-list +if test ! -d ${cwd}/tmp/build ; then + mkdir ${cwd}/tmp/build +fi +cp -p ${cwd}/build/src/dird/*.c ${cwd}/tmp/build +cd ${cwd}/tmp +echo "${cwd}/tmp/build/ficheriro1.txt" >restore-list +echo "${cwd}/tmp/build/ficheriro2.txt" >>restore-list +cd ${cwd} + +echo " " +echo " " +echo " === Starting incremental-tape test ===" +echo " === Starting incremental-tape test ===" >>working/log +echo " " + +bin/bacula start 2>&1 >/dev/null +bin/bconsole -c bin/bconsole.conf <${cwd}/tmp/build/ficheriro1.txt +echo "ficheriro2.txt" >${cwd}/tmp/build/ficheriro2.txt +bin/bconsole -c bin/bconsole.conf <&1 >/dev/null +grep "^Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null +bstat=$? +grep "^Termination: *Restore OK" tmp/log2.out 2>&1 >/dev/null +rstat=$? +# +# Delete .c files because we will only restored the txt files +# +rm -f tmp/build/*.c +diff -r tmp/build tmp/bacula-restores${cwd}/tmp/build 2>&1 >/dev/null +if [ $? != 0 -o $bstat != 0 -o $rstat != 0 ] ; then + echo " " + echo " " + echo " !!!!! incremental-tape test Bacula source failed!!! !!!!! " + echo " !!!!! incremental-tape test failed!!! !!!!! " >>test.out + echo " " +else + echo " ===== incremental-tape test Bacula source OK ===== " + echo " ===== incremental-tape test OK ===== " >>test.out + scripts/cleanup +fi diff --git a/regress/tests/incremental-test b/regress/tests/incremental-test index 29605f8c7e..3123ccbf61 100755 --- a/regress/tests/incremental-test +++ b/regress/tests/incremental-test @@ -27,7 +27,7 @@ bin/bacula start 2>&1 >/dev/null bin/bconsole -c bin/bconsole.conf <${cwd}/tmp/build/ficheriro2.txt bin/bconsole -c bin/bconsole.conf <&1 >/dev/null +bin/drop_sqlite_tables +bin/make_sqlite_tables + +scripts/copy-tape-confs +scripts/cleanup-tape +echo "/lib" >/tmp/file-list +echo " " +echo " " +echo " === Starting lib-tape-root test ===" +echo " " +echo " " +bin/bacula start 2>&1 >/dev/null +bin/bconsole -c bin/bconsole.conf <&1 >/dev/null +cd / +${cwd}/bin/testls -e ${cwd}/scripts/exclude-usr-test lib >${cwd}/tmp/original +cd ${cwd}/tmp/bacula-restores +${cwd}/bin/testls -e ${cwd}/scripts/exclude-usr-test lib >${cwd}/tmp/restored +cd ${cwd}/tmp +sed s%.*lib/kbd/consolefonts$%lib/kbd/consolefonts% original >1 +sort <1 >original +# +sed s%.*lib/kbd/consolefonts$%lib/kbd/consolefonts% restored >1 +sort <1 >restored +rm -f 1 +# +cd ${cwd} +diff tmp/original tmp/restored 2>&1 1>/dev/nul +if [ $? != 0 ] ; then + echo " " + echo " " + echo " ===== lib-tape-root failed!!! ===== " + echo " ===== lib-tape-root failed!!! ===== " >>test.out + echo " " +else + echo " ===== lib-tape-root OK ===== " + echo " ===== lib-tape-root OK ===== " >>test.out + scripts/cleanup +fi diff --git a/regress/tests/two-volume-tape b/regress/tests/two-volume-tape index 4e61cf846d..cb0aa64fd2 100755 --- a/regress/tests/two-volume-tape +++ b/regress/tests/two-volume-tape @@ -5,7 +5,7 @@ # cwd=`pwd` bin/bacula stop 2>&1 >/dev/null -scripts/copy-tape-confs +scripts/copy-2tape-confs scripts/prepare-two-tapes echo "${cwd}/build" >/tmp/file-list bin/drop_sqlite_tables diff --git a/regress/tests/usr-tape-root b/regress/tests/usr-tape-root new file mode 100755 index 0000000000..95206c8870 --- /dev/null +++ b/regress/tests/usr-tape-root @@ -0,0 +1,64 @@ +#!/bin/sh +# +# Run a simple backup of the /usr directory +# then restore it. +# +cwd=`pwd` +bin/bacula stop 2>&1 >/dev/null +bin/drop_sqlite_tables +bin/make_sqlite_tables + +scripts/copy-tape-confs +scripts/cleanup-tape +echo "/usr" >/tmp/file-list +echo " " +echo " " +echo " === Starting usr-tape-root test ===" +echo " " +echo " " +bin/bacula start 2>&1 >/dev/null +bin/bconsole -c bin/bconsole.conf <&1 >/dev/null +cd / +${cwd}/bin/testls -e ${cwd}/scripts/exclude-usr-test lib >${cwd}/tmp/original +cd ${cwd}/tmp/bacula-restores +${cwd}/bin/testls -e ${cwd}/scripts/exclude-usr-test lib >${cwd}/tmp/restored +cd ${cwd}/tmp +sed s%.*lib/kbd/consolefonts$%lib/kbd/consolefonts% original >1 +sort <1 >original +# +sed s%.*lib/kbd/consolefonts$%lib/kbd/consolefonts% restored >1 +sort <1 >restored +rm -f 1 +# +cd ${cwd} +diff tmp/original tmp/restored 2>&1 1>/dev/nul +if [ $? != 0 ] ; then + echo " " + echo " " + echo " ===== usr-tape-root failed!!! ===== " + echo " ===== usr-tape-root failed!!! ===== " >>test.out + echo " " +else + echo " ===== usr-tape-root OK ===== " + echo " ===== usr-tape-root OK ===== " >>test.out + scripts/cleanup +fi -- 2.39.5