Pool = Default
Write Bootstrap = "@working_dir@/NightlySave.bsr"
Maximum Concurrent Jobs = 4
+ SpoolData = yes
}
--- /dev/null
+#!/bin/sh
+#
+# Check for zombie jobs (not terminated).
+# Also scan logs for ERROR messages
+#
+bin/bconsole -c bin/bconsole.conf <<END_OF_DATA
+@output tmp/dir.out
+status dir
+@output tmp/fd.out
+status client
+@output tmp/sd.out
+status $1
+@output
+quit
+END_OF_DATA
+grep "No Jobs running." tmp/dir.out 2>&1 >/dev/null
+if [ $? != 0 ] ; then
+ echo " "
+ echo " !!!! Zombie Jobs in Director !!!!"
+ echo " !!!! Zombie Jobs in Director !!!!" >>test.out
+ echo " "
+fi
+grep "No Jobs running." tmp/fd.out 2>&1 >/dev/null
+if [ $? != 0 ] ; then
+ echo " "
+ echo " !!!! Zombie Jobs in File daemon !!!!"
+ echo " !!!! Zombie Jobs in File daemon !!!!" >>test.out
+ echo " "
+fi
+grep "No Jobs running." tmp/sd.out 2>&1 >/dev/null
+if [ $? != 0 ] ; then
+ echo " "
+ echo " !!!! Zombie Jobs in Storage daemon !!!!"
+ echo " !!!! Zombie Jobs in Storage daemon !!!!" >>test.out
+ echo " "
+fi
+grep "ERROR" tmp/log*.out 2>&1 >/dev/null
+if [ $? = 0 ] ; then
+ echo " "
+ echo " !!!! ERROR in log output !!!!"
+ echo " !!!! ERROR in log output !!!!" >>test.out
+ echo " "
+fi
+grep "Fatal Error" tmp/log*.out 2>&1 >/dev/null
+if [ $? = 0 ] ; then
+ echo " "
+ echo " !!!! Fatal Error in log output !!!!"
+ echo " !!!! Fatal Error in log output !!!!" >>test.out
+ echo " "
+fi
+
+
rm -rf tmp/restored tmp/largefile tmp/bscan.bsr tmp/log*.out
rm -rf /tmp/sed_tmp /tmp/file-list
rm -rf tmp/build tmp/restore-list tmp/restore2-list
+rm -rf tmp/fd.out tmp/dir.out tmp/sd.out
rm -rf working/log
Pool = Default
Write Bootstrap = "@working_dir@/NightlySave.bsr"
Maximum Concurrent Jobs = 4
+ SpoolData=yes
}
Job {
Messages = Standard
Write Bootstrap = "@working_dir@/SmallVols.bsr"
Pool = SmallVols
+ SpoolData = yes
}
@output
quit
END_OF_DATA
+scripts/check_for_zombie_jobs storage=DDS-4
bin/bacula stop 2>&1 >/dev/null
grep "^Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null
bstat=$?
@output
quit
END_OF_DATA
+scripts/check_for_zombie_jobs storage=File
bin/bacula stop 2>&1 >/dev/null
grep "^Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null
bstat=$?
@output
quit
END_OF_DATA
+scripts/check_for_zombie_jobs storage=File1
bin/bacula stop 2>&1 >/dev/null
mkdir -p ${cwd}/tmp/bacula-restores
bin/bextract -b working/restore.bsr -c bin/bacula-sd.conf ${cwd}/tmp ${cwd}/tmp/bacula-restores 2>&1 >/dev/null
messages
quit
END_OF_DATA
+scripts/check_for_zombie_jobs storage=File1
bin/bacula stop 2>&1 >/dev/null
echo "volume=TestVolume001|TestVolume002" >tmp/bscan.bsr
bin/bscan -w working -m -s -v -b tmp/bscan.bsr -c bin/bacula-sd.conf ${cwd}/tmp 2>&1 >/dev/null
@output
quit
END_OF_DATA
+scripts/check_for_zombie_jobs storage=File1
bin/bacula stop 2>&1 >/dev/null
grep "^Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null
bstat=$?
@output
quit
END_OF_DATA
+scripts/check_for_zombie_jobs storage=File1
bin/bacula stop 2>&1 >/dev/null
#
# This test is not really reliable. What we want to do is
@# now do a restore
@#
@output tmp/log2.out
-restore where=${cwd}/tmp/bacula-restores select all storage=File
+restore where=${cwd}/tmp/bacula-restores select storage=File
+unmark *
+mark *
+done
yes
wait
messages
@output
quit
END_OF_DATA
+scripts/check_for_zombie_jobs storage=File
bin/bacula stop 2>&1 >/dev/null
grep "^Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null
bstat=$?
@# now do a restore
@#
@output tmp/log2.out
-restore where=${cwd}/tmp/bacula-restores select all storage=File
+restore where=${cwd}/tmp/bacula-restores select storage=File
+unmark *
+mark *
+done
yes
wait
messages
@output
quit
END_OF_DATA
+scripts/check_for_zombie_jobs storage=File
bin/bacula stop 2>&1 >/dev/null
grep "^Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null
messages
quit
END_OF_DATA
+scripts/check_for_zombie_jobs storage=File
echo "ficheriro1.txt" >${cwd}/tmp/build/ficheriro1.txt
echo "ficheriro2.txt" >${cwd}/tmp/build/ficheriro2.txt
bin/bconsole -c bin/bconsole.conf <<END_OF_DATA
messages
@output
END_OF_DATA
+scripts/check_for_zombie_jobs storage=File
echo "ficheriro2.txt" >${cwd}/tmp/build/ficheriro2.txt
bin/bconsole -c bin/bconsole.conf <<END_OF_DATA
@output /dev/null
@output
quit
END_OF_DATA
+scripts/check_for_zombie_jobs storage=File
bin/bacula stop 2>&1 >/dev/null
grep "^Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null
bstat=$?
@# now do a restore
@#
@output tmp/log2.out
-restore where=${cwd}/tmp/bacula-restores select all
+restore where=${cwd}/tmp/bacula-restores select
+unmark *
+mark *
+done
yes
wait
messages
echo " === Starting four-concurrent-jobs-tape ===" >>working/log
echo " "
-#bin/bacula start 2>&1 >/dev/null
-bin/bacula start
+bin/bacula start 2>&1 >/dev/null
bin/bconsole -c bin/bconsole.conf <<END_OF_DATA
@output /dev/null
messages
@# now do a restore
@#
@output tmp/log2.out
-restore where=${cwd}/tmp/bacula-restores select all storage=DDS-4
+restore where=${cwd}/tmp/bacula-restores select storage=DDS-4
+unmark *
+mark *
+done
yes
wait
messages
@output
quit
END_OF_DATA
+scripts/check_for_zombie_jobs storage=DDS-4
bin/bacula stop 2>&1 >/dev/null
grep "^Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null
bstat=$?
@# now do a restore
@#
@output tmp/log2.out
-restore where=${cwd}/tmp/bacula-restores select all storage=File1
+restore where=${cwd}/tmp/bacula-restores select storage=File1
+unmark *
+mark *
+done
yes
wait
messages
@output
quit
END_OF_DATA
+scripts/check_for_zombie_jobs storage=File1
bin/bacula stop 2>&1 >/dev/null
grep "^Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null
messages
quit
END_OF_DATA
+scripts/check_for_zombie_jobs storage=DDS-4
echo "Backup 1 done"
# make some files for the incremental to pick up
touch ${cwd}/build/src/dird/*.c ${cwd}/build/src/dird/*.o
messages
quit
END_OF_DATA
+scripts/check_for_zombie_jobs storage=DDS-4
echo "Backup 2 done"
touch ${cwd}/build/src/dird/*.c
touch ${cwd}/build/src/lib/*.c ${cwd}/build/src/lib/*.o
messages
quit
END_OF_DATA
+scripts/check_for_zombie_jobs storage=DDS-4
echo "Backup 3 done"
# make some files for the incremental to pick up
touch ${cwd}/build/src/lib/*.c ${cwd}/build/src/lib/*.o
messages
quit
END_OF_DATA
+scripts/check_for_zombie_jobs storage=DDS-4
echo "Backup 4 done"
#
# now do several restores to ensure we cleanup between jobs
yes
wait
@output tmp/log2.out
-restore where=${cwd}/tmp/bacula-restores select all
+restore where=${cwd}/tmp/bacula-restores select
+unmark *
+mark *
+done
yes
wait
messages
messages
quit
END_OF_DATA
+scripts/check_for_zombie_jobs storage=File
echo "Backup 1 done"
# make some files for the incremental to pick up
touch ${cwd}/build/src/dird/*.c ${cwd}/build/src/dird/*.o
messages
quit
END_OF_DATA
+scripts/check_for_zombie_jobs storage=File
echo "Backup 2 done"
touch ${cwd}/build/src/dird/*.c
touch ${cwd}/build/src/lib/*.c ${cwd}/build/src/lib/*.o
messages
quit
END_OF_DATA
+scripts/check_for_zombie_jobs storage=File
echo "Backup 3 done"
# make some files for the incremental to pick up
touch ${cwd}/build/src/lib/*.c ${cwd}/build/src/lib/*.o
messages
quit
END_OF_DATA
+scripts/check_for_zombie_jobs storage=File
echo "Backup 4 done"
#
# now do several restores to ensure we cleanup between jobs
yes
wait
@output tmp/log2.out
-restore where=${cwd}/tmp/bacula-restores select all storage=File
+restore where=${cwd}/tmp/bacula-restores select storage=File
+unmark *
+mark *
+done
yes
wait
messages
@output
quit
END_OF_DATA
+scripts/check_for_zombie_jobs storage=File
bin/bacula stop 2>&1 >/dev/null
grep "^Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null
bstat=$?
messages
quit
END_OF_DATA
+scripts/check_for_zombie_jobs storage=DDS-4
echo "ficheriro1.txt" >${cwd}/tmp/build/ficheriro1.txt
echo "ficheriro2.txt" >${cwd}/tmp/build/ficheriro2.txt
bin/bconsole -c bin/bconsole.conf <<END_OF_DATA
@output
quit
END_OF_DATA
+scripts/check_for_zombie_jobs storage=DDS-4
bin/bacula stop 2>&1 >/dev/null
grep "^Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null
bstat=$?
messages
quit
END_OF_DATA
+scripts/check_for_zombie_jobs storage=File
echo "ficheriro1.txt" >${cwd}/tmp/build/ficheriro1.txt
echo "ficheriro2.txt" >${cwd}/tmp/build/ficheriro2.txt
bin/bconsole -c bin/bconsole.conf <<END_OF_DATA
@output
quit
END_OF_DATA
+scripts/check_for_zombie_jobs storage=File
bin/bacula stop 2>&1 >/dev/null
grep "^Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null
bstat=$?
@# now do a restore
@#
@output tmp/log2.out
-restore where=${cwd}/tmp/bacula-restores select all
+restore where=${cwd}/tmp/bacula-restores select
+unmark *
+mark *
+done
yes
wait
messages
@# now do a restore
@#
@output tmp/log2.out
-restore where=${cwd}/tmp/bacula-restores select all storage=File1
+restore where=${cwd}/tmp/bacula-restores select storage=File1
+unmark *
+mark *
+done
yes
wait
messages
@output
quit
END_OF_DATA
+scripts/check_for_zombie_jobs storage=File1
bin/bacula stop 2>&1 >/dev/null
grep "^Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null
bstat=$?
quit
END_OF_DATA
dstat=0
+scripts/check_for_zombie_jobs storage=DDS-4
#
# We need to stop and start Bacula to
# test appending to a previously written tape
@output
quit
END_OF_DATA
+scripts/check_for_zombie_jobs storage=DDS-4
bin/bacula stop 2>&1 >/dev/null
for i in `cat ${cwd}/tmp/restore2-list`; do
diff $i ${cwd}/tmp/bacula-restores$i
@output
quit
END_OF_DATA
+scripts/check_for_zombie_jobs storage=File
bin/bacula stop 2>&1 >/dev/null
grep "^Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null
bstat=$?
@output
quit
END_OF_DATA
+scripts/check_for_zombie_jobs storage=File
bin/bacula stop 2>&1 >/dev/null
# Now setup a control directory of only what we *should* restore
rm -rf ${cwd}/tmp/build
@output
quit
END_OF_DATA
+scripts/check_for_zombie_jobs storage=File
bin/bacula stop 2>&1 >/dev/null
grep "^Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null
bstat=$?
@# now do a restore
@#
@output tmp/log2.out
-restore where=${cwd}/tmp/bacula-restores select all storage=File
+restore where=${cwd}/tmp/bacula-restores select storage=File
+unmark *
+mark *
+done
yes
wait
messages
@output
quit
END_OF_DATA
+scripts/check_for_zombie_jobs storage=File
bin/bacula stop 2>&1 >/dev/null
grep "^Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null
bstat=$?
@# now do a restore
@#
@output tmp/log2.out
-restore where=${cwd}/tmp/bacula-restores select all storage=DDS-4
+restore where=${cwd}/tmp/bacula-restores select storage=DDS-4
+unmark *
+mark *
+done
yes
wait
messages
@output
quit
END_OF_DATA
+scripts/check_for_zombie_jobs storage=DDS-4
bin/bacula stop 2>&1 >/dev/null
grep "^Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null
bstat=$?
@# now do a restore
@#
@output tmp/log2.out
-restore where=${cwd}/tmp/bacula-restores select all storage=File1
+restore where=${cwd}/tmp/bacula-restores select storage=File1
+unmark *
+mark *
+done
yes
wait
messages
@output
quit
END_OF_DATA
+scripts/check_for_zombie_jobs storage=File1
bin/bacula stop 2>&1 >/dev/null
grep "^Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null
bstat=$?
@output
quit
END_OF_DATA
+scripts/check_for_zombie_jobs storage=File
bin/bacula stop 2>&1 >/dev/null
grep "^Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null
bstat=$?
@# now do a restore
@#
@output tmp/log2.out
-restore where=${cwd}/tmp/bacula-restores select all storage=File
+restore where=${cwd}/tmp/bacula-restores select storage=File
+unmark *
+mark *
+done
yes
wait
messages
@output
quit
END_OF_DATA
+scripts/check_for_zombie_jobs storage=File
bin/bacula stop 2>&1 >/dev/null
grep "^Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null
bstat=$?
bin/bacula start 2>&1 >/dev/null
bin/bconsole -c bin/bconsole.conf <<END_OF_DATA
+setdebug level=15 storage=File
+@output /dev/null
+messages
@output /dev/null
estimate job=CompressedTest listing
estimate job=CompressedTest listing
messages
quit
END_OF_DATA
+scripts/check_for_zombie_jobs storage=File
echo "Backup 1 done"
touch ${cwd}/build/src/dird/*.c
#
yes
wait
@output tmp/log2.out
-restore where=${cwd}/tmp/bacula-restores select all storage=File
+restore where=${cwd}/tmp/bacula-restores select storage=File
+unmark *
+mark *
+done
yes
wait
messages
@output
quit
END_OF_DATA
+scripts/check_for_zombie_jobs storage=File
bin/bacula stop 2>&1 >/dev/null
grep "^Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null
bstat=$?
@output
quit
END_OF_DATA
+scripts/check_for_zombie_jobs storage=File1
bin/bacula stop 2>&1 >/dev/null
grep "^Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null
bstat=$?
@output
quit
END_OF_DATA
+scripts/check_for_zombie_jobs storage=DDS-4
bin/bacula stop 2>&1 >/dev/null
grep "^Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null
bstat=$?
quit
END_OF_DATA
sleep 2
+scripts/check_for_zombie_jobs storage=File
bin/bacula stop 2>&1 >/dev/null
grep "^Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null
bstat=$?
cwd=`pwd`
scripts/copy-test-confs
scripts/cleanup
+#
+# Note, we save the weird-files directory twice on purpose
+# because this causes problems with hard linked files
+# that are only saved once. In 1.33, Bacula now deals
+# with this situation.
+#
echo "${cwd}/weird-files" >/tmp/file-list
+echo "${cwd}/weird-files" >>/tmp/file-list
bin/bacula stop 2>&1 >/dev/null
cd bin
./drop_bacula_tables >/dev/null 2>&1
echo " === Starting weird filenames test ===" >>working/log
echo " "
-bin/bacula start 2>&1 >/dev/null
+# bin/bacula start 2>&1 >/dev/null
+bin/bacula start
bin/bconsole -c bin/bconsole.conf <<END_OF_DATA
@output /dev/null
messages
@output
quit
END_OF_DATA
+scripts/check_for_zombie_jobs storage=File
bin/bacula stop 2>&1 >/dev/null
-${cwd}/bin/testls weird-files >${cwd}/tmp/original
+${cwd}/bin/testls weird-files | sort >${cwd}/tmp/original
cd tmp/bacula-restores${cwd}
-${cwd}/bin/testls weird-files >${cwd}/tmp/restored
+${cwd}/bin/testls weird-files | sort >${cwd}/tmp/restored
cd ${cwd}
grep "^Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null
bstat=$?
@output
quit
END_OF_DATA
+scripts/check_for_zombie_jobs storage=File
#
# Now mess up the a hard link, and a soft link
#
@output tmp/log2.out
restore where= storage=File
5
+unmark *
+mark *
done
yes
wait
@output
quit
END_OF_DATA
+scripts/check_for_zombie_jobs storage=File
bin/bacula stop 2>&1 >/dev/null
bin/testls weird-files2 >${cwd}/tmp/restored
grep "^Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null