@@ -38,18 +38,18 @@ add_minute() {
38
38
# Expect date string in the format of yyyymmddTHHMMSS
39
39
# Here parse date differently depending on GNU Linux vs BSD MacOS
40
40
if date -v -1d > /dev/null 2>&1 ; then
41
- echo " $( date -v +$2 M -ujf' %Y%m%dT%H%M%S' $1 +%Y%m%dT%H%M%S) "
41
+ date -v +" $2 " M -ujf' %Y%m%dT%H%M%S' " $1 " +%Y%m%dT%H%M%S
42
42
else
43
43
dt=$1
44
- echo " $( date -u ' +%Y%m%dT%H%M%S' -d " ${dt: 0: 8} ${dt: 9: 2} :${dt: 11: 2} :${dt: 13: 2} $2 minutes" ) "
44
+ date -u ' +%Y%m%dT%H%M%S' -d " ${dt: 0: 8} ${dt: 9: 2} :${dt: 11: 2} :${dt: 13: 2} $2 minutes"
45
45
fi
46
46
}
47
47
48
48
find_timestamp () {
49
49
filename=" ${1##*/ } "
50
50
IFS=' @' read -ra parts <<< " $filename"
51
51
datetime_part=${parts[1]: 0: 15}
52
- echo $datetime_part
52
+ echo " $datetime_part "
53
53
}
54
54
55
55
actions_dbs () {
@@ -98,7 +98,7 @@ get_latest_backup_file() {
98
98
db=$2
99
99
ext=$3
100
100
101
- latest_full_backup=$( find " $backups_dir " -type f -name " $db *.$ext " | egrep ' [0-9]{8}T[0-9]{6}' | sort | tail -n 1)
101
+ latest_full_backup=$( find " $backups_dir " -type f -name " $db *.$ext " | grep -E ' [0-9]{8}T[0-9]{6}' | sort | tail -n 1)
102
102
latest_full_backup_file=" ${latest_full_backup##*/ } "
103
103
echo " $latest_full_backup_file "
104
104
}
@@ -146,8 +146,8 @@ get_next_diff_backup_base_lsn() {
146
146
147
147
last_mssql=$GHE_DATA_DIR /current/mssql
148
148
149
- if [ ! -d $last_mssql ] \
150
- || [ -z " $( find $last_mssql -type f -name ' *.bak' | head -n 1) " ]; then
149
+ if [ ! -d " $last_mssql " ] \
150
+ || [ -z " $( find " $last_mssql " -type f -name ' *.bak' | head -n 1) " ]; then
151
151
ghe_verbose " Taking first full backup"
152
152
backup_type=" full"
153
153
else
@@ -159,34 +159,34 @@ else
159
159
current=$( date -u +%Y%m%d%H%M%S)
160
160
161
161
full=$( find " $last_mssql " -type f -name " *.bak" | head -n 1)
162
- full=$( find_timestamp $full )
163
- full_expire=$( add_minute $full ${cadence[0]} )
162
+ full=$( find_timestamp " $full " )
163
+ full_expire=$( add_minute " $full " " ${cadence[0]} " )
164
164
full_expire=" ${full_expire// T} "
165
165
166
166
diff=$( find " $last_mssql " -type f -name " *.diff" | head -n 1)
167
167
if [ -f " $diff " ]; then
168
- diff=$( find_timestamp $diff )
169
- diff_expire=$( add_minute $diff ${cadence[1]} )
168
+ diff=$( find_timestamp " $diff " )
169
+ diff_expire=$( add_minute " $diff " " ${cadence[1]} " )
170
170
diff_expire=" ${diff_expire// T} "
171
171
else
172
- diff_expire=$( add_minute $full ${cadence[1]} )
172
+ diff_expire=$( add_minute " $full " " ${cadence[1]} " )
173
173
diff_expire=" ${diff_expire// T} "
174
174
fi
175
175
176
- tran=$( find " $last_mssql " -type f -name " *.log" | egrep ' [0-9]{8}T[0-9]{6}' | sort | tail -1)
177
- tran=$( find_timestamp $tran )
178
- tran_expire=$( add_minute $tran ${cadence[2]} )
176
+ tran=$( find " $last_mssql " -type f -name " *.log" | grep -E ' [0-9]{8}T[0-9]{6}' | sort | tail -1)
177
+ tran=$( find_timestamp " $tran " )
178
+ tran_expire=$( add_minute " $tran " " ${cadence[2]} " )
179
179
tran_expire=" ${tran_expire// T} "
180
180
181
181
ghe_verbose " current $current , full expire $full_expire , \
182
182
diff expire $diff_expire , tran expire $tran_expire "
183
183
184
184
# Determine the type of backup to take based on expiry time
185
- if [ $current -gt $full_expire ]; then
185
+ if [ " $current " -gt " $full_expire " ]; then
186
186
backup_type=' full'
187
- elif [ $current -gt $diff_expire ]; then
187
+ elif [ " $current " -gt " $diff_expire " ]; then
188
188
backup_type=' diff'
189
- elif [ $current -gt $tran_expire ]; then
189
+ elif [ " $current " -gt " $tran_expire " ]; then
190
190
backup_type=' transaction'
191
191
fi
192
192
264
264
mkdir -p " $backup_dir "
265
265
266
266
# Use hard links to "copy" over previous applicable backups to the new snapshot folder to save disk space and time
267
- if [ -d $last_mssql ]; then
268
- for p in $last_mssql /*
267
+ if [ -d " $last_mssql " ]; then
268
+ for p in " $last_mssql " /*
269
269
do
270
270
[[ -e " $p " ]] || break
271
271
@@ -274,23 +274,23 @@ if [ -d $last_mssql ]; then
274
274
transfer=
275
275
276
276
# Copy full backups unless we're taking a new full backup
277
- if [ $extension = " bak" ] && [ " $backup_type " != ' full' ]; then
277
+ if [ " $extension " = " bak" ] && [ " $backup_type " != ' full' ]; then
278
278
transfer=1
279
279
fi
280
280
281
281
# Copy diff backups unless we're taking a new full or diff backup
282
- if [ $extension = " diff" ] && [ " $backup_type " != ' full' ] && [ " $backup_type " != ' diff' ]; then
282
+ if [ " $extension " = " diff" ] && [ " $backup_type " != ' full' ] && [ " $backup_type " != ' diff' ]; then
283
283
transfer=1
284
284
fi
285
285
286
286
# Copy transaction log backups unless we're taking a new full or diff backup
287
- if [ $extension = " log" ] && [ " $backup_type " != ' full' ] && [ " $backup_type " != ' diff' ]; then
287
+ if [ " $extension " = " log" ] && [ " $backup_type " != ' full' ] && [ " $backup_type " != ' diff' ]; then
288
288
transfer=1
289
289
fi
290
290
291
291
if [ -n " $transfer " ]; then
292
292
ghe_verbose " Creating hard link to $filename "
293
- ln $last_mssql / $filename $backup_dir / $filename
293
+ ln " $last_mssql " / " $filename " " $backup_dir " / " $filename "
294
294
fi
295
295
done
296
296
fi
@@ -305,9 +305,9 @@ if [ -n "$backup_type" ]; then
305
305
backup_command=' ghe-export-mssql -t'
306
306
fi
307
307
308
- bm_start " $( basename $0 ) "
309
- ghe-ssh " $GHE_HOSTNAME " -- " $backup_command " || failures= " $failures mssql "
310
- bm_end " $( basename $0 ) "
308
+ bm_start " $( basename " $0 " ) "
309
+ ghe-ssh " $GHE_HOSTNAME " -- " $backup_command "
310
+ bm_end " $( basename " $0 " ) "
311
311
312
312
# Configure the backup cadence on the appliance, which is used for diagnostics
313
313
ghe-ssh " $GHE_HOSTNAME " " ghe-config mssql.backup.cadence $GHE_MSSQL_BACKUP_CADENCE "
@@ -319,6 +319,6 @@ if [ -n "$backup_type" ]; then
319
319
for b in $backups
320
320
do
321
321
ghe_verbose " Transferring to backup host $b "
322
- ghe-ssh " $GHE_HOSTNAME " " sudo cat $appliance_dir /$b " > $backup_dir / $b
322
+ ghe-ssh " $GHE_HOSTNAME " " sudo cat $appliance_dir /$b " > " $backup_dir " / " $b "
323
323
done
324
324
fi
0 commit comments