Changeset 360
- Timestamp:
- 11/26/08 18:45:57 (3 years ago)
- Location:
- main/linuxmuster-base/trunk
- Files:
-
- 2 edited
-
debian/changelog (modified) (1 diff)
-
sbin/linuxmuster-backup (modified) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
-
main/linuxmuster-base/trunk/debian/changelog
r357 r360 1 linuxmuster-base (1.4.43-1) testing; urgency=low 2 3 * linuxmuster-backup: 4 - minor improvements in handling incremental and differential backupsets 5 - backup device will be temporarily removed from fstab during backup 6 7 -- Thomas Schmitt <schmitt@lmz-bw.de> Wed, 26 Nov 2008 18:43:19 +0100 8 1 9 linuxmuster-base (1.4.42-1) testing; urgency=low 2 10 -
main/linuxmuster-base/trunk/sbin/linuxmuster-backup
r351 r360 5 5 # schmitt@lmz-bw.de 6 6 # 7 # 2 3.11.20087 # 26.11.2008 8 8 # 9 9 … … 16 16 . $HELPERFUNCTIONS || exit 1 17 17 18 # default return code19 RC=020 18 21 19 # default values 22 20 mondocache=/var/cache/mondo 23 difflevel="difflevel.0"21 cachefiles="difflevel.0" 24 22 verify=yes 25 23 isoprefix=server … … 170 168 171 169 *) 172 error "Unknown restore method!" 170 echo "Unknown restore method!" 171 error 173 172 ;; 174 173 … … 207 206 # shut down services 208 207 if [ -n "$services" ]; then 209 210 208 echo "Shutting down services ..." 211 212 209 if [ "$services" = "all" ]; then 213 214 210 for s in `ls -r /etc/rc${rl}.d/S*`; do 215 216 211 $s stop 217 218 212 done 219 220 213 else 221 222 214 for s in $services; do 223 224 215 [ -e /etc/rc${rl}.d/S??${s} ] && echo /etc/rc${rl}.d/S??${s} >> $stmp 225 226 216 done 227 228 217 if [ -s "$stmp" ]; then 229 230 218 for s in `sort -r $stmp`; do 231 232 219 $s stop 233 234 220 done 235 236 221 else 237 238 222 echo "No services to shut down!" 239 240 223 fi 241 242 fi 243 224 fi 244 225 fi 245 226 … … 270 251 backuptime=`date +%s` 271 252 253 RC=0 272 254 273 255 # determine last backup set 274 256 case $btype in 275 276 257 diff) 277 258 # difflevel of last full backup 278 259 if sets=`ls -dr $mountpoint/$isoprefix/*-*_full`; then 279 280 260 lastset=`echo $sets | awk '{ print $1 }'` 281 261 echo "Found last full backup set in $lastset." 282 283 262 else 284 285 263 echo "Last full backup set not found!" 286 264 RC=1 287 288 265 fi 289 266 ;; 290 291 267 inc) 292 268 # difflevel of last backup (full, diff or inc) 293 269 if sets=`ls -dr $mountpoint/$isoprefix/*-*_* | grep -G _[dfi][inu][cfl]`; then 294 295 270 lastset=`echo $sets | awk '{ print $1 }'` 296 271 echo "Found last backup set in $lastset." 297 298 272 else 299 300 273 echo "Last backup set not found!" 301 274 RC=1 302 303 275 fi 304 276 ;; 305 306 277 *) 307 278 ;; 308 309 279 esac 310 311 280 312 281 # restore mondo-archive cache if no full backup 313 282 if [ "$btype" != "full" ]; then 314 315 283 if [ -d "$lastset/cache" ]; then 316 317 # test if difflevel file is present 318 if [ -s "$lastset/cache/$difflevel" ]; then 319 320 echo "Restoring difflevel from $lastset/cache ..." 321 cp -f $lastset/cache/$difflevel $mondocache/ || RC=1 322 284 # test if all cachefiles are present 285 echo "Testing cachefiles in $lastset/cache ..." 286 for i in $cachefiles; do 287 [ -e "$lastset/cache/$i" ] || RC=1 288 done 289 if [ "$RC" -eq 0 ]; then 290 echo "Restoring cache from $lastset/cache ..." 291 rsync -a --delete $lastset/cache/ $mondocache/ 323 292 else 324 325 echo "$lastset/cache/$difflevel is missing!" 326 echo "Cannot restore difflevel!" 327 RC=1 328 293 echo "At least one of $cachefiles is missing!" 294 echo "Cannot restore cache!" 329 295 fi 330 331 296 else 332 333 echo "Cache directory $lastset/cache does not exist! Cannot restore difflevel!" 297 echo "$lastset/cache does not exist! Cannot restore cache!" 334 298 RC=1 335 336 fi 337 299 fi 338 300 fi 339 301 … … 348 310 349 311 312 # remove backupdevice from fstab 313 if [ $RC -eq 0 ]; then 314 if grep -q ^$backupdevice /etc/fstab; then 315 echo "Removing backup device $backupdevice from /etc/fstab!" 316 fstabtmp=/var/tmp/fstab.$$ 317 cp -f /etc/fstab $fstabtmp || RC=1 318 grep -v $backupdevice $fstabtmp > /etc/fstab || RC=1 319 fi 320 fi 321 322 350 323 # starting mondoarchive 351 324 if [ $RC -eq 0 ]; then … … 355 328 356 329 330 # restoring fstab 331 if [ -n "$fstabtmp" -a -e "$fstabtmp" ]; then 332 echo "Restoring /etc/fstab!" 333 mv -f $fstabtmp /etc/fstab 334 fi 335 336 357 337 # if mondoarchive exits cleanly 358 338 if [ "$RC" = "0" ]; then … … 360 340 echo "mondoarchive finished successfully!" 361 341 362 # store difflevel363 echo "Storing difflevelto $mountpoint/$isoprefix/$bfolder/cache ..."364 cp -f $mondocache/$difflevel$mountpoint/$isoprefix/$bfolder/cache/342 # store cache files 343 echo "Storing cache to $mountpoint/$isoprefix/$bfolder/cache ..." 344 rsync -a --delete $mondocache/ $mountpoint/$isoprefix/$bfolder/cache/ 365 345 366 346 case $btype in … … 387 367 setstokeep=$keepdiff 388 368 # store difflevel 389 echo $backuptime > $mountpoint/$isoprefix/$bfolder/cache/ $difflevel369 echo $backuptime > $mountpoint/$isoprefix/$bfolder/cache/difflevel.0 390 370 ;; 391 371 392 372 inc) 393 373 setstokeep=$keepinc 394 echo $backuptime > $mountpoint/$isoprefix/$bfolder/cache/ $difflevel374 echo $backuptime > $mountpoint/$isoprefix/$bfolder/cache/difflevel.0 395 375 ;; 396 376
Note: See TracChangeset
for help on using the changeset viewer.
