#!/bin/sh # # Copyright (C) 2000-2015 Kern Sibbald # License: BSD 2-Clause; see file LICENSE-FOSS # # # Run a simple backup of the Bacula build directory # prune file records, then restore only README files. # TestName="fileregexp-test" JobName=backup . scripts/functions scripts/cleanup scripts/copy-confs # # Zap out any schedule in default conf file so that # it doesn't start during our test # outf="${tmp}/sed_tmp" echo "s% Schedule =%# Schedule =%g" >${outf} echo "s%File Retention =%File Retention = 2 #%" >> ${outf} cp ${scripts}/bacula-dir.conf ${tmp}/1 sed -f ${outf} ${tmp}/1 >${scripts}/bacula-dir.conf change_jobname BackupClient1 $JobName start_test cat <${tmp}/bconcmds @output /dev/null messages @$out ${tmp}/log1.out label volume=TestVolume001 storage=File1 pool=File slot=1 drive=0 run job=$JobName yes wait messages @sleep 5 prune files yes quit END_OF_DATA run_bacula touch $cwd/build/po/* cat <${tmp}/bconcmds run job=$JobName yes wait messages @# @# now do a restore @# @$out ${tmp}/log2.out restore where=${tmp}/bacula-restores 5 no README yes wait messages END_OF_DATA run_bconsole check_for_zombie_jobs storage=File1 stop_bacula # # The above restore should have restored some directories, but only # files that have README in their name. There should in fact, be # no other files restored COUNT_OTHER==0 and 13 README files restored. # We complain if there are less than 11 # COUNT_OTHER=`find ${tmp}/bacula-restores -type f | grep -v README | wc -l` COUNT_README=`find ${tmp}/bacula-restores -type f | grep README | wc -l` if [ $COUNT_OTHER -gt 0 -o $COUNT_README -lt 11 ]; then print_debug "Found non matching files" print_debug "Count_other=$COUNT_OTHER count_readme=$COUNT_README" print_debug `find ${tmp}/bacula-restores -type f | grep -v README` rstat=2 fi #check_two_logs # don't work because of "warning file count mismatch" grep "Backup OK" ${tmp}/log1.out > /dev/null if [ $? -ne 0 ]; then print_debug "Found error in backup" bstat=2 fi end_test