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