Duplicity mit FTP – Kurzanleitung

Veröffentlichung 3. Juli 2018 @ 22:27
Letzte Änderung 3. September 2018 @ 20:47

Voraussetzungen

Netzwerk

  • FTP-Backup-Benutzer ftpuser
  • FTP-Backup-Server ftp.backup.com
  • Lokaler Benutzer root

Software

  • duplicity 0.7.06 #duplicity –version
  • LFTP 4.6.3a #lftp –version
  • Ubuntu Server 16.04.04 LTS #lsb_release -a

Ordner und Dateien

  • Log /var/log/duplicity/ftp-backup.log
  • Logrotate /etc/logrotate.d/duplicity
  • Skript /root/ftp-backup.sh

duplicity und LFTP installieren

apt install duplicity lftp

Skript für FTP-Backup anlegen

Skript erstellen

#!/bin/bash
export FTP_PASSWORD=*** #Passwort für ftpuser
export PASSPHRASE=*** #Passphrase für Backup-Verschlüsselung
#(Inkrementelle) Sicherung in Verzeichnis ftp auf FTP-Backup-Server,
#Ausschluss der Ordner /dev, /media, /proc, /sys und /tmp,
#wöchentliche Komplettsicherung:
duplicity --exclude /dev --exclude /media --exclude /proc --exclude /sys --exclude /tmp --full-if-older-than 1W / lftp+ftp://ftpuser@ftp.backup.com/ftp
#Vergleich von Original und Sicherung:
duplicity verify --exclude /dev --exclude /media --exclude /proc --exclude /sys --exclude /tmp lftp+ftp://ftpuser@ftp.backup.com/ftp /
#Löschen von Sicherungen, die älter als 1 Monat sind:
duplicity remove-older-than 1M --force lftp+ftp://ftpuser@ftp.backup.com/ftp
unset FTP_PASSWORD
unset PASSPHRASE

Zugriffsrechte setzen

chmod 0700 /root/ftp-backup.sh

Cronjob für automatisches Backup mit Logging und Rotation erstellen

Ordner für Logdateien anlegen

mkdir --mode=0700 /var/log/duplicity

Crontab ergänzen

crontab -e -u root
...
15 08 * * * /root/ftp-backup.sh >> /var/log/duplicity/ftp-backup.log

Konfigurationsdatei für Logrotate anlegen

/var/log/duplicity/ftp-backup.log {
  daily
  missingok
  nocompress
  notifempty
  rotate 7
}

Backup von FTP-Server rücksichern

duplicity restore lftp+ftp://ftpuser@ftp.backup.com/ftp /

[Beispiel] Teilbackup von /home in Verzeichnis /home-ftp-backup rücksichern und auf geänderte Ordner und Dateien prüfen

duplicity restore --file-to-restore home lftp+ftp://ftpuser@ftp.backup.com/ftp /home-ftp-backup
diff --brief --recursive /home /home-ftp-backup
#rm --recursive /home-ftp-backup

[Optional] Backup bereinigen

z. B. bei Meldung „Achtung, es wurden unvollständige Sicherungssätze gefunden, wahrscheinlich von einer abgebrochenen Sitzung zurückgelassen“ / „Warning, found incomplete backup sets, probably left from aborted session“

duplicity cleanup --force lftp+ftp://ftpuser@ftp.backup.com/ftp

Quellen

http://duplicity.nongnu.org/duplicity.1.html
http://manpages.ubuntu.com/manpages/xenial/man1/lftp.1.html
http://manpages.ubuntu.com/manpages/xenial/man5/crontab.5.html
http://manpages.ubuntu.com/manpages/xenial/man8/logrotate.8.html
https://www.gnu.org/software/bash/manual/

Schreibe einen Kommentar