Project

General

Profile

Backup » History » Version 11

« Previous - Version 11/24 (diff) - Next » - Current version
Laurent GUERBY, 04/14/2016 05:29 PM


Backup

Liens

BackupPC

Attic

Borg

Borg script

Pour une machine qui va etre eteinte et rallumée de maniere non controlable.

# crontab -l
@reboot /root/cron-borg.sh

# cat /root/cron-borg.sh
#!/bin/bash
export LANG=en_US.UTF-8
mkdir -p /root/borg >& /dev/null

sleep 300
echo === start === $(date) >> /root/borg/cron.log

NICK=myhost
REPO=ssh://USER@MACHINE:PORT/some/where/borg/${NICK}-repo
export BORG_PASSPHRASE=lalalala

if [ -f /root/borg/stamp ]; then
    STAMP=$(cat /root/borg/stamp)
    borg break-lock $REPO
else
    STAMP=$(date '+%Y%m%dT%H%M%S')
    if [ -f /root/borg/previous-stamp ]; then
      PREVIOUS_STAMP=$(cat /root/borg/previous-stamp)
      if [ "${STAMP%T*}" = "${PREVIOUS_STAMP%T*}" ]; then
              echo === delay === $(date) >> /root/borg/cron.log
          exit 0
      fi
    fi
    echo $STAMP > /root/borg/stamp
fi

borg create --compression lz4 --stats --verbose --exclude /root/borg --exclude-caches --one-file-system ${REPO}::${NICK}-$STAMP / >> /root/borg/log-$STAMP 2>> /root/borg/err-$STAMP

if [ $? -eq 0 ]; then
    mv -f /root/borg/stamp /root/borg/previous-stamp >& /dev/null
    rm -f /root/borg/stamp >& /dev/null
fi

echo === done === $(date) >> /root/borg/cron.log

Migration Attic vers Borg

# apt-get -t jessie-backports install borgbackup
$ cd /backup/attic/
$ borg upgrade <repo>
$ borg check --repair <repo>
$ mv <repo> ../borg/
$ chown -R backupinfra: /backup/borg/<repo>

Dans le module puppet, le changement le plus important est le parametre compression explicite pour correspondre au défaut de attic create :

attic create ... <repo> -> borg create --compression zlib,6 ... <repo>

Sinon le prochain backup sera non compressé, et aucun nouveau chucks ne correspondra aux anciens -> perte de la dedup. "zlib,6" étant le niveau de compression de attic.

https://github.com/jborg/attic/issues/299
http://borgbackup.readthedocs.org/en/stable/usage.html#environment-variables

export ATTIC_UNKNOWN_UNENCRYPTED_REPO_ACCESS_IS_OK=yes