RSnapshot Backup: ---------------------------------------------------------------------------------------------------------------------------- Vorteile: Klein, effektiv, schnell. ---> https://de.wikipedia.org/wiki/Rsnapshot Vorwort: Der RSnapshot Server "holt" die zu sichernden Dateien bei den Clients "ab". Als Protokoll wird einfach SSH verwendet. Windows Clients am einfachsten per cifs Mount (autofs) sichern. Voraussetzungen: Server: apt-get install rsnapshot rsync Client: atp-get install rsync Client: Der Server muss sich ohne Kennwort am Client anmelden können (Public-Key Authentication) RSnapshot Version aus Jessie hat Probleme, installieren der brauchbaren Version aus SID: wget http://ftp.de.debian.org/debian/pool/main/r/rsnapshot/rsnapshot_1.4.1-1_all.deb Ab Debian Stretch ist das nicht mehr notwendig ! RSnapReport rsnapreport.pl wird nur für das aufbereiten des Reports (Mailversand) benötigt. Wo bekomme ich rsnapreport.pl her ? cp /usr/share/doc/rsnapshot/examples/utils/rsnapreport.pl /usr/bin chmod +x /usr/bin/rsnapreport.pl ---------------------------------------------------------------------------------------------------------------------------- RSnapshot Backup als root: ---------------------------------------------------------------------------------------------------------------------------- 1. Public-Key auf RSnapshot Server erstellen (WICHTIG: Kein Password setzen, einfach ENTER !) ssh-keygen 2. Kopieren des Public-Key auf den Client (WICHTIG: ersetzen !) ssh-copy-id root@ 3. Testen der Password losen Anmeldung am Client (WICHTIG: ersetzen !) ssh root@ ---------------------------------------------------------------------------------------------------------------------------- RSnapshot Backup als normaler User: ---------------------------------------------------------------------------------------------------------------------------- 1. Hierzu wird "sudo" auf dem Client benötigt. apt-get install sudo 2. Höhere Rechte für rsync Einfügen/Anpassen der folgenden Zeile in Datei /etc/sudoers # User privilege specification root ALL=(ALL:ALL) ALL backup ALL=(root) NOPASSWD: /usr/bin/rsync * 3. Anpassen der /etc/rsnapshot.conf (rsync_long_args --rsync-path='sudo rsync') rsync_long_args --delete --numeric-ids --relative --delete-excluded --delete-after --stats --rsync-path='sudo rsync' 4. backup Benutzer auf Client erstellen, und .ssh Ordner erstellen useradd -m backup su - backup mkdir .ssh exit 5. Public-Key muss dem "backup" Benutzer zu Verfügung gestellt werden (nicht dem root Benutzer) ssh-copy-id backup@remote_server 6. Testen der Password losen Anmeldung am Client (WICHTIG: ersetzen !) ssh backup@ ---------------------------------------------------------------------------------------------------------------------------- Anpassen der RSnapshot Konfiguration /etc/rsnapshot.conf: ---------------------------------------------------------------------------------------------------------------------------- #BUG in RSNAPSHOT!, WICHTIG: KEINE LEERZEICHEN VERWENDEN, SONDERN TABs !) #Nach Änderung der Konfiguration immer testen per Befehl: rsnapshot configtest Syntax OK ---------------------------------------------------------------------------------------------------------------------------- Wohin soll gesichert werden ? snapshot_root /srv/backup/ Entferne # vor folgenden Zeilen cmd_cp /bin/cp cmd_rm /bin/rm cmd_rsync /usr/bin/rsync cmd_ssh /usr/bin/ssh cmd_logger /usr/bin/logger Loging einstellen: #verbose 4, ansonsten funktioniert rsnapreport.pl nicht !! verbose 4 loglevel 3 logfile /var/log/rsnapshot.log Kurze Argumente: rsync_short_args -az Lange Argumente: (erweitern um "--stats", bzw. --rsync-path='sudo rsync' bei sudo backup ) rsync_long_args --delete --numeric-ids --relative --delete-excluded --delete-after --stats --rsync-path='sudo rsync' Bei anderen SSH-Port folgende Zeile anpassen: ssh_args -p 2222 Backup Points: #Server3 backup backup@client3.domain.net:/root/ client3.domain.net/ backup backup@client3.domain.net:/var/backups/ client3.domain.net/ backup backup@client3.domain.net:/var/scripts/ client3.domain.net/ backup backup@client3.domain.net:/var/spool/cron/ client3.domain.net/ backup backup@client3.domain.net:/var/www/ client3.domain.net/ backup_script /usr/bin/ssh root@px3 /usr/bin/dpkg --get-selections > packages_installed client3.domain.net/packages/ #io Symcon backup root@io:/root/ io.domain.net/ backup root@io:/etc/ io.domain.net/ backup root@io:/var/spool/cron/ io.domain.net/ backup root@io:/var/scripts/ io.domain.net/ backup root@io:/usr/local/ io.domain.net/ backup root@io:/var/lib/symcon/ io.domain.net/ ---------------------------------------------------------------------------------------------------------------------------- Crontabs: (Teste vorab ob Command "mail" funktioniert !) ---------------------------------------------------------------------------------------------------------------------------- #rsnapshot 0 2 * * * rsnapshot daily 2>&1 | rsnapreport.pl | mail -s "rSnaphot - daily [host.domain.net]" root 0 5 * * 1 rsnapshot weekly 2>&1 14 2 1 * * rsnapshot monthly 2>&1 ---------------------------------------------------------------------------------------------------------------------------- ERRORS: NO STATS DATA ---------------------------------------------------------------------------------------------------------------------------- Hier hilft rsync selbst vom Backup auszuschliessen, füge folgende Zeile in in rsnapshot.conf ein: exclude etc/default/rsync ---------------------------------------------------------------------------------------------------------------------------- Code 23 ---------------------------------------------------------------------------------------------------------------------------- Prüfe den Error Pfad per manuellem rsync Befehl: rsync -avn server:/var/folder/ /tmp/test