All pastes #22945 Raw Edit

Unnamed

public shellscript v1 · immutable
#22945 ·published 2005-09-14 22:05 UTC
rendered paste body
#!/bin/bash# how many backups to keepKEEP=3# prefix of backups (must be a local path)# if /path/backup is used, then /path/backup.2005-09-03.12-45-23 etc. will be created (with current date)PREFIX=/backup/oxygen/tmp# source to backup fromSOURCE=/tmp############################################################ get current timestampNOW=`date +%Y-%m-%d.%H-%M-%S`echo "[BACKUP] Starting at "`date`echo "[BACKUP] Backing up "$SOURCE" to "$PREFIX"."$NOWCOUNT=0for i in $PREFIX.*do        if [ -d $i -a ! -L $i ]        then                COUNT=$(($COUNT+1))        fidone;TOTAL=$COUNTDELETE=$(($TOTAL-$KEEP))echo "[BACKUP] "$TOTAL" total backups, "$DELETE" to delete"COUNT=0for i in $PREFIX.*do        if [ -d $i -a ! -L $i ]        then                COUNT=$(($COUNT+1))                if [ $COUNT -le $DELETE ]                then                        echo "[BACKUP] Removing "$i                        rm -rf $i                fi                if [ $COUNT -eq $TOTAL ]                then                        LATEST=$i                fi        fidone;echo "[BACKUP] Latest is "$LATEST# copy using hardlinks to new timestamp directoryecho "[BACKUP] Creating new directory with hardlinks.."cp -al $LATEST $PREFIX.$NOW# do actual backupecho "[BACKUP] Running rsync.."rsync -aHx --numeric-ids --delete  $SOURCE $PREFIX.$NOW/# create symlink for currentrm $PREFIX.curln -s $PREFIX.$NOW $PREFIX.curecho "[BACKUP] Done"