#!/bin/sh # # Run a simple backup of the Bacula build directory # to a tape then restore it, we do that twice to ensure that # we can correctly append to a tape. # We also use the purge and the relabel commands as # well as a pile of status storage commands. # TestName="backup-bacula-tape" JobName=backuptape . scripts/functions require_tape_drive scripts/copy-tape-confs scripts/cleanup-tape echo "${cwd}/build" >${cwd}/tmp/file-list change_jobname NightlySave $JobName start_test # Write out bconsole commands cat <${cwd}/tmp/bconcmds @$out /dev/null messages @$out ${cwd}/tmp/log1.out @#setdebug level=200 storage=tape label storage=tape volume=TestVolume001 slot=0 pool=Default purge volume=TestVolume001 relabel pool=Default storage=tape oldVolume=TestVolume001 volume=TestVolume002 slot=0 purge volume=TestVolume002 relabel pool=Default storage=tape oldVolume=TestVolume002 volume=TestVolume001 slot=0 run job=$JobName yes status storage=tape status storage=tape status storage=tape status storage=tape status storage=tape status storage=tape @sleep 1 status storage=tape status storage=tape status storage=tape status storage=tape status storage=tape @sleep 1 status storage=tape status storage=tape status storage=tape status storage=tape status storage=tape @sleep 1 status storage=tape status storage=tape status storage=tape status storage=tape status storage=tape @sleep 1 status storage=tape status storage=tape status storage=tape status storage=tape status storage=tape wait messages @# @# now do a restore @# @$out ${cwd}/tmp/log2.out restore where=${cwd}/tmp/bacula-restores select all storage=tape done yes wait list volumes messages END_OF_DATA run_bacula check_for_zombie_jobs storage=tape stop_bacula # # Now do a second backup after making a few changes # touch ${cwd}/build/src/dird/*.c echo "test test" > ${cwd}/build/src/dird/xxx cat <${cwd}/tmp/bconcmds @$out /dev/null messages @$out ${cwd}/tmp/log1.out list volumes run job=$JobName yes wait list volumes messages @# @# now do a second restore @# @$out ${cwd}/tmp/log2.out list volumes restore where=${cwd}/tmp/bacula-restores select all storage=tape done yes wait list volumes messages quit END_OF_DATA run_bacula check_for_zombie_jobs storage=tape stop_bacula check_two_logs check_restore_diff end_test