#!/bin/sh # # Copyright (C) 2000-2017 Kern Sibbald # License: BSD 2-Clause; see file LICENSE-FOSS # # Test of ANSI labeled tapes # # 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="ansi-label-tape" JobName=backuptape . scripts/functions require_tape_drive scripts/copy-tape-confs /bin/cp -f scripts/ansi-sd-tape.conf bin/bacula-sd.conf 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=Vol001 slot=0 pool=Default purge volume=Vol001 relabel pool=Default storage=tape oldVolume=Vol001 volume=Vol002 slot=0 purge volume=Vol002 relabel pool=Default storage=tape oldVolume=Vol002 volume=Vol001 slot=0 run job=$JobName yes status storage=tape @sleep 1 wait messages @# @# now do a restore @# @$out ${cwd}/tmp/log2.out setdebug level=200 storage=tape 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 @#setdebug level=300 storage=tape 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