#!/bin/sh # # Run a simple backup of the Bacula build directory but # create three volumes and do six backups causing the # volumes to be recycled, and cycling through the volumes # twice. Tests maxvoljobs and volretention. # # Note, this test is a bit tricky, in that if you get too # much data in the regress/build directory, the test will # fail because it will run out of enough volumes to backup # all the data. # TestName="recycle-test" JobName=Recycle . scripts/functions scripts/cleanup scripts/copy-test-confs echo "${cwd}/build" >${cwd}/tmp/file-list change_jobname NightlySave $JobName start_test cat <${cwd}/tmp/bconcmds @output /dev/null messages @$out ${cwd}/tmp/log1.out label storage=File1 volume=TestVolume001 label storage=File1 volume=TestVolume002 label storage=File1 volume=TestVolume003 label storage=File1 volume=TestVolume004 @# Note, this is going to fail if the pruning gets @# to tight because the saved volume is too large. @# In that case, either add another volume, or @# increase the volume capacity a bit. update Volume=TestVolume001 volretention=10s update Volume=TestVolume001 maxvolbytes=200000000 update Volume=TestVolume002 volretention=10s update Volume=TestVolume002 maxvolbytes=200000000 update Volume=TestVolume003 volretention=10s update Volume=TestVolume003 maxvolbytes=200000000 update Volume=TestVolume004 volretention=10s update Volume=TestVolume004 maxvolbytes=200000000 list volumes setdebug level=150 storage=File1 run job=$JobName storage=File1 level=full yes run job=$JobName storage=File1 level=full yes run job=$JobName storage=File1 level=full yes wait messages list volumes @sleep 11 run job=$JobName storage=File1 level=full yes run job=$JobName storage=File1 level=full yes run job=$JobName storage=File1 level=full yes wait messages list volumes @sleep 11 run job=$JobName storage=File1 level=full yes run job=$JobName storage=File1 level=full yes run job=$JobName storage=File1 level=full yes wait messages list volumes @sleep 11 run job=$JobName storage=File1 level=full yes run job=$JobName storage=File1 level=full yes run job=$JobName storage=File1 level=full yes wait messages list volumes @sleep 11 run job=$JobName storage=File1 level=full yes run job=$JobName storage=File1 level=full yes run job=$JobName storage=File1 level=full yes wait messages list volumes @# @# now do a restore @# @$out ${cwd}/tmp/log2.out restore where=${cwd}/tmp/bacula-restores select storage=File1 unmark * mark * done yes wait messages @output quit END_OF_DATA run_bacula check_for_zombie_jobs storage=File1 stop_bacula check_two_logs check_restore_diff end_test