#!/bin/sh # # Test RunScript # TestName="runscript-test" JobName=backup . scripts/functions copy_test_confs rm -f bin/bacula-dir.conf rm -f tmp/RUN*log /bin/cp -f scripts/bacula-dir.conf.testrunscript bin/bacula-dir.conf echo "${cwd}/build/po" >/tmp/file-list start_test cat <tmp/bconcmds @$out /dev/null messages label volume=TestVolume001 @$out tmp/RUN_FD_WARNING.log run job=RUN_FD_WARNING yes wait messages @sleep 1 @$out tmp/RUN_ALL_OK.log run job=RUN_ALL_OK yes wait messages @sleep 1 @$out tmp/RUN_FD_FAILED.log run job=RUN_FD_FAILED yes wait messages @sleep 1 @$out tmp/RUN_DIR_FAILED.log run job=RUN_DIR_FAILED yes wait messages @sleep 1 @$out tmp/RUN_FD_FAILED2.log run job=RUN_FD_FAILED2 yes wait messages st dir quit END_OF_DATA bin/bacula start cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf > /dev/null stop_bacula dstat=0 bstat=0 rstat=0 export dstat export bstat export rstat grep 'dir: BeforeJob: run command "/bin/echo RunBeforeJob"' tmp/RUN_ALL_OK.log >/dev/null 2>&1 a=$? grep 'fd: ClientRunBeforeJob: ClientRunBeforeJob' tmp/RUN_ALL_OK.log >/dev/null 2>&1 b=$? grep 'fd: ClientAfterJob: run command "/bin/echo ClientRunAfterJob' tmp/RUN_ALL_OK.log >/dev/null 2>&1 c=$? grep 'dir: AfterJob: run command "/bin/echo RunAfterJob' tmp/RUN_ALL_OK.log >/dev/null 2>&1 d=$? if [ $a = 0 -a $b = 0 -a $c = 0 -a $d = 0 ] then [ "$debug" = 1 ] && echo RUN_ALL_OK ok else echo "RUN_ALL_OK in error" rstat=1 fi grep 'dir: BeforeJob: run command "/bin/false RUN_DIR_FAILED"' tmp/RUN_DIR_FAILED.log >/dev/null 2>&1 a=$? grep 'dir: AfterJob: RunAfterFailedJob' tmp/RUN_DIR_FAILED.log >/dev/null 2>&1 b=$? if [ $a = 0 -a $b = 0 ] then [ "$debug" = 1 ] && echo RUN_DIR_FAILED ok else echo "RUN_DIR_FAILED in error" rstat=1 fi grep 'fd: ClientBeforeJob: run command "/bin/false RUN_FD_FAILED1"' tmp/RUN_FD_FAILED.log >/dev/null 2>&1 a=$? grep 'fd: ClientBeforeJob: run command "/bin/false RUN_FD_FAILED2"' tmp/RUN_FD_FAILED.log >/dev/null 2>&1 b=$? grep 'dir: AfterJob: run command "/bin/echo RunAfterFailedJob"' tmp/RUN_FD_FAILED.log >/dev/null 2>&1 c=$? grep '*** Backup Error ***' tmp/RUN_FD_FAILED.log >/dev/null 2>&1 d=$? if [ $a = 0 -a $b = 0 -a $c = 0 -a $d = 0 ] then [ "$debug" = 1 ] && echo RUN_FD_FAILED ok else echo "RUN_FD_FAILED in error" rstat=1 fi grep 'fd: ClientBeforeJob: run command "/bin/false RUN_FD_FAILED1"' tmp/RUN_FD_FAILED2.log >/dev/null 2>&1 a=$? grep 'fd: ClientBeforeJob: run command "/bin/false RUN_FD_FAILED2"' tmp/RUN_FD_FAILED2.log >/dev/null 2>&1 b=$? grep 'fd: ClientBeforeJob: run command "/bin/false RUN_FD_FAILED3"' tmp/RUN_FD_FAILED2.log >/dev/null 2>&1 c=$? grep 'dir: AfterJob: run command "/bin/echo RunAfterFailedJob"' tmp/RUN_FD_FAILED2.log >/dev/null 2>&1 d=$? grep '*** Backup Error ***' tmp/RUN_FD_FAILED2.log >/dev/null 2>&1 e=$? if [ $a = 0 -a $b != 0 -a $c = 0 -a $d = 0 -a $e = 0 ] then [ "$debug" = 1 ] && echo RUN_FD_FAILED ok else echo "RUN_FD_FAILED2 in error" rstat=1 fi grep 'fd: ClientBeforeJob: run command "/bin/false RUN_FD_WARNING"' tmp/RUN_FD_WARNING.log >/dev/null 2>&1 a=$? grep 'RunAfterFailedJob' tmp/RUN_FD_WARNING.log >/dev/null 2>&1 b=$? grep 'Backup OK -- with warnings' tmp/RUN_FD_WARNING.log >/dev/null 2>&1 c=$? if [ $a = 0 -a $b != 0 -a $c = 0 ] then [ "$debug" = 1 ] && echo RUN_FD_WARNING ok else echo "RUN_FD_WARNING in error" rstat=1 fi end_test