Veröffentlichung 3. Juli 2018 @ 22:27
Letzte Änderung 3. Juli 2018 @ 22:27
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/