X-Git-Url: https://git.hcoop.net/hcoop/scripts.git/blobdiff_plain/6cc4523aaf00b4b630dc6bed91a7c1f5098b1148..3b16fa867a36f38b2032b8f49c8725f6ac711418:/hcoop-backup diff --git a/hcoop-backup b/hcoop-backup index 10bdc9a..934c257 100755 --- a/hcoop-backup +++ b/hcoop-backup @@ -15,67 +15,13 @@ PATH=$PATH:/bin:/usr/bin:/sbin:/usr/sbin #COMPRESS_PROG=bzip2 COMPRESS_EXT=.gz COMPRESS_PROG=gzip -# units for BWLIMIT are KB/s -BWLIMIT=325 -# units for CHUNKSIZE are MB -CHUNKSIZE=5000 - -IFS=$'\n' - -SCRIPTDIR=$(dirname $0) KEYFILE=/etc/backup-encryption-key -BUCKET=hcoop.net-backups -BACKUPDIR=full BACKUPTMP=/var/backups/hcoop-backup-testing -SUBDIR=$(date +%Y.%m.%d) - -export S3_ACCESS_KEY_ID=$(cat ~mwolson_admin/.amazon/access.key) -export S3_SECRET_ACCESS_KEY=~mwolson_admin/.amazon/secret.key - -function s3_cmd () { - # $1: command (get|put|ls|rm) - # $2: remote file - # $3: local file - local cmd=$1 - shift - local bwarg - if test "$cmd" = "put"; then - bwarg="${BWLIMIT}K"; - else - bwarg= - fi - $SCRIPTDIR/s3 $cmd $BUCKET "$1" "$2" $bwarg -} - -function copy_over () { - # Move file to its offsite destination - # $1: file, $2: relative directory (optional) - if test -z "$1" || test -n "$3"; then - echo "Bad programming" - exit 1 - fi - local FILE=$1 - local DEST=$BACKUPDIR/$SUBDIR - if test -n "$2"; then - DEST=$DEST/$2 - fi - split -d -b ${CHUNKSIZE}m $FILE ${FILE}. - for i in ${FILE}.*; do - s3_cmd put $DEST/$i $i - rm -f $i - done - rm -f $FILE -} - -function prune_old_backups () { - local oldpwd=$PWD - cd $BACKUPDIR - find . -mindepth 1 -maxdepth 1 -type d -ctime +7 \ - -execdir rm -fr '{}' \; || true - rm -rf $SUBDIR - mkdir -p $SUBDIR - cd $oldpwd -} +CURDATE=$(date +%Y.%m.%d) + +MOVE_OVER=$(dirname $0)/s3-move + +IFS=$'\n' #prune_old_backups @@ -159,8 +105,8 @@ cat backupfiles | \ F=hcoop.backup.tar$COMPRESS_EXT.aescrypt tar clpf - --ignore-failed-read --no-recursion -C / -T backupfiles | \ $COMPRESS_PROG | \ - ccrypt -k $KEYFILE -e > $F -copy_over $F + ccrypt -k $KEYFILE -e | \ + $MOVE_OVER $CURDATE $F # Acquire lock before messing with spamd COUNT=0 @@ -181,12 +127,10 @@ touch $LOCK F=common.spamd.tar$COMPRESS_EXT.aescrypt tar clpf - --ignore-failed-read -C / /var/local/lib/spamd | \ $COMPRESS_PROG | \ - ccrypt -k $KEYFILE -e > $F.new + ccrypt -k $KEYFILE -e > $F rm -f $LOCK -copy_over $F.new .. - -test -s $BACKUPDIR/$F.new && \ - mv $BACKUPDIR/$F.new $BACKUPDIR/$F +< $F $MOVE_OVER $CURDATE $F +rm -f $F vos listvol deleuze | \ tail -n +2 | \ @@ -205,16 +149,15 @@ cat volumes | \ bash -c \ "F={}.dump$COMPRESS_EXT.aescrypt ; vos dump -id {} -localauth -clone | - $COMPRESS_PROG | ccrypt -k $KEYFILE -e > \$F ; - < \$F catsync -b $BWLIMIT $BACKUPDIR/$SUBDIR/\$F ; - rm -f \$F" + $COMPRESS_PROG | ccrypt -k $KEYFILE -e | + $MOVE_OVER $CURDATE \$F" echo backing up databases F=databases.tar$COMPRESS_EXT.aescrypt tar -C /var/backups/databases/ -cf - . | \ $COMPRESS_PROG | \ - ccrypt -k $KEYFILE -e > $F -copy_over $F + ccrypt -k $KEYFILE -e | \ + $MOVE_OVER $CURDATE $F grep '[a-z/]' complain && \ mail -a 'From: The Backup Program ' \