]> git.sur5r.net Git - bacula/bacula/blob - regress/tests/backup-bacula-tape
Backport from BEE
[bacula/bacula] / regress / tests / backup-bacula-tape
1 #!/bin/sh
2 #
3 # Run a simple backup of the Bacula build directory 
4 #   to a tape then restore it, we do that twice to ensure that
5 #   we can correctly append to a tape.
6 # We also use the purge and the relabel commands as
7 #   well as a pile of status storage commands.
8 #
9 TestName="backup-bacula-tape"
10 JobName=backuptape
11 . scripts/functions
12
13 require_tape_drive
14
15 scripts/copy-tape-confs
16 scripts/cleanup-tape
17
18 echo "${cwd}/build" >${cwd}/tmp/file-list
19
20 change_jobname NightlySave $JobName
21 start_test
22
23
24 # Write out bconsole commands
25 cat <<END_OF_DATA >${cwd}/tmp/bconcmds
26 @$out /dev/null
27 messages
28 @$out ${cwd}/tmp/log1.out
29 @#setdebug level=200 storage=tape
30 label storage=tape volume=TestVolume001 slot=0 pool=Default
31 purge volume=TestVolume001
32 relabel pool=Default storage=tape oldVolume=TestVolume001 volume=TestVolume002 slot=0
33 purge volume=TestVolume002
34 relabel pool=Default storage=tape oldVolume=TestVolume002 volume=TestVolume001 slot=0
35 run job=$JobName yes
36 status storage=tape
37 status storage=tape
38 status storage=tape
39 status storage=tape
40 status storage=tape
41 status storage=tape
42 @sleep 1
43 status storage=tape
44 status storage=tape
45 status storage=tape
46 status storage=tape
47 status storage=tape
48 @sleep 1
49 status storage=tape
50 status storage=tape
51 status storage=tape
52 status storage=tape
53 status storage=tape
54 @sleep 1
55 status storage=tape
56 status storage=tape
57 status storage=tape
58 status storage=tape
59 status storage=tape
60 @sleep 1
61 status storage=tape
62 status storage=tape
63 status storage=tape
64 status storage=tape
65 status storage=tape
66 wait
67 messages
68 @# 
69 @# now do a restore
70 @#
71 @$out ${cwd}/tmp/log2.out
72 restore where=${cwd}/tmp/bacula-restores select all storage=tape done
73 yes
74 wait
75 list volumes
76 messages
77 END_OF_DATA
78
79 run_bacula
80 check_for_zombie_jobs storage=tape
81 stop_bacula
82
83 #
84 # Now do a second backup after making a few changes
85 #
86 touch ${cwd}/build/src/dird/*.c
87 echo "test test" > ${cwd}/build/src/dird/xxx
88
89 cat <<END_OF_DATA >${cwd}/tmp/bconcmds
90 @$out /dev/null
91 messages
92 @$out ${cwd}/tmp/log1.out
93 list volumes
94 run job=$JobName yes
95 wait
96 list volumes
97 messages
98 @# 
99 @# now do a second restore
100 @#
101 @$out ${cwd}/tmp/log2.out
102 list volumes
103 restore where=${cwd}/tmp/bacula-restores select all storage=tape done
104 yes
105 wait
106 list volumes
107 messages
108 quit
109 END_OF_DATA
110
111 run_bacula
112 check_for_zombie_jobs storage=tape
113 stop_bacula
114
115 check_two_logs
116 check_restore_diff
117 end_test