]> git.sur5r.net Git - bacula/bacula/blob - regress/tests/four-jobs-tape
4252ba2d7eaf3f0ede77152c50134bc8a9d1090d
[bacula/bacula] / regress / tests / four-jobs-tape
1 #!/bin/sh
2 #
3 # Run a simple backup of the Bacula build directory using the compressed option
4 #   then backup four times, each with incremental then finally restore.
5 #   It should require at least 4 different bsrs.
6 #
7 TestName="four-jobs-tape"
8 JobName=fourjobstape
9 . scripts/functions
10 set_debug 0
11
12 scripts/cleanup-tape
13 scripts/copy-tape-confs
14 echo "${cwd}/build" >/tmp/file-list
15
16 change_jobname $JobName
17 start_test
18
19 cat <<END_OF_DATA >tmp/bconcmds
20 @$out /dev/null
21 estimate job=$JobName listing
22 estimate job=$JobName listing
23 estimate job=$JobName listing
24 messages
25 @$out tmp/log1.out
26 label storage=DDS-4 volume=TestVolume001 slot=0 pool=Default
27 run job=$JobName yes
28 wait
29 messages
30 quit
31 END_OF_DATA
32 if test "$debug" -eq 1 ; then
33   bin/bacula start
34   cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf
35 else
36   bin/bacula start 2>&1 >/dev/null
37   cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf  2>&1 >/dev/null
38 fi
39
40 scripts/check_for_zombie_jobs storage=DDS-4
41 echo "Backup 1 done"
42 # make some files for the incremental to pick up
43 touch ${cwd}/build/src/dird/*.c ${cwd}/build/src/dird/*.o
44 touch ${cwd}/build/src/lib/*.c ${cwd}/build/src/lib/*.o
45    
46 #
47 # run a second job
48 #
49 cat <<END_OF_DATA >tmp/bconcmds
50 @$out /dev/null
51 messages
52 @$out tmp/log1.out
53 run job=$JobName level=Incremental yes
54 wait
55 messages
56 quit
57 END_OF_DATA
58 if test "$debug" -eq 1 ; then
59   bin/bacula start
60   cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf
61 else
62   bin/bacula start 2>&1 >/dev/null
63   cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf  2>&1 >/dev/null
64 fi
65
66 scripts/check_for_zombie_jobs storage=DDS-4
67 echo "Backup 2 done"
68 touch ${cwd}/build/src/dird/*.c
69 touch ${cwd}/build/src/lib/*.c ${cwd}/build/src/lib/*.o
70 #
71 # run a third job
72 #
73 cat <<END_OF_DATA >tmp/bconcmds
74 @$out /dev/null
75 messages
76 @$out tmp/log1.out
77 run job=$JobName level=Incremental yes
78 wait
79 messages
80 quit
81 END_OF_DATA
82 if test "$debug" -eq 1 ; then
83   bin/bacula start
84   cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf
85 else
86   bin/bacula start 2>&1 >/dev/null
87   cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf  2>&1 >/dev/null
88 fi
89
90 scripts/check_for_zombie_jobs storage=DDS-4
91 echo "Backup 3 done"
92 # make some files for the incremental to pick up
93 touch ${cwd}/build/src/lib/*.c ${cwd}/build/src/lib/*.o
94 #
95 # run a fourth job
96 #
97 cat <<END_OF_DATA >tmp/bconcmds
98 @$out /dev/null
99 messages
100 @$out tmp/log1.out
101 run job=$JobName level=Incremental yes
102 wait
103 messages
104 quit
105 END_OF_DATA
106 if test "$debug" -eq 1 ; then
107   bin/bacula start
108   cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf
109 else
110   bin/bacula start 2>&1 >/dev/null
111   cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf  2>&1 >/dev/null
112 fi
113
114 scripts/check_for_zombie_jobs storage=DDS-4
115 echo "Backup 4 done"
116
117 # now do several restores to ensure we cleanup between jobs
118 #
119 cat <<END_OF_DATA >tmp/bconcmds
120 @$out /dev/null
121 restore where=${cwd}/tmp/bacula-restores select all done
122 yes
123 wait
124 restore where=${cwd}/tmp/bacula-restores select all done
125 yes
126 wait
127 @$out tmp/log2.out
128 @#
129 @# now unmount the tape and start two restores
130 @#  at the same time
131 @#
132 unmount storage=DDS-4
133 restore where=${cwd}/tmp/bacula-restores select all done
134 yes
135 restore where=${cwd}/tmp/bacula-restores select
136 unmark *
137 mark *
138 done
139 yes
140 mount storage=DDS-4
141 wait
142 messages
143 @$out
144 quit
145 END_OF_DATA
146
147 run_bacula
148 check_for_zombie_jobs storage=DDS-4
149 stop_bacula
150
151 check_two_logs
152 check_restore_diff
153 end_test