Linux Server Backups

  • Guten Abend zusammen,


    ich räume aktuell etwas auf, altes fliegt raus, kostenpflichtiges/Proprietäres muss gehen etc. Nun bin ich bei den Backups und meinem geliebten Veeam angekommen und frage mich wie löst ihr das mit den Backups bei euren RS/VPS.


    Ich habe in der Vergangenheit hauptsächlich mit Dedis gearbeitet, d.h. ich verwalte den Hypervisor. Und da habe ich Veeam lieben gelernt, Recovery ISO reinstopfen, Backup von gestern Abend zurück und gut ist. Konfigfile zerschossen? Kein Problem unter /mnt/veeam finde ich das letzte Backup aus dem ich rauskopieren kann. Eine Backuplösung hat netcup bis heute nicht (Snapshots sind keine Backups) und auf den Hypervisor kommt man selbstverständlich auch nicht. Auch bei netcup kein Problem, ich kann ja die ISO schnell hochladen.


    Nun bin ich auf der Suche nach etwas neuem, vorwiegend Open Source. Meine Anforderungen sind eigentlich überschaubar:

    • Rotation einstellbar sowie inkrementell und Full
    • Kann mit LUKS umgehen
    • Kann ins laufende System eingebunden werden (wie oben der Fall mit dem Konfigfile)
    • Lauffähig auf CentOS 8 und in naher Zukunft auch Debian
    • Fähig auf WebDAV, SFTP oder SCP Ziel zu sichern
    • "Monitorbar" mit Mail (an SMTP Server der nicht lokal installiert ist) oder noch lieber Zabbix


    Mit Scripten habe ich grundsätzlich kein Problem so lange sie funktionieren, ich dachte schon an rsync oder rsnapshot. Bevor ich mich festlege wollte ich aber mal nachhören was sonst noch so im Einsatz ist und mich inspirieren lassen.

  • ich dachte schon an rsync oder rsnapshot

    Borg - entweder mit SSH direkt auf ein anderes System, oder lokal mit allem was der Kernel oder FUSE so sprechen kann.

    Mail übernimmt dann crond.


    https://www.borgbackup.org/


    Bash: clean-backup.sh
    #!/bin/bash
    
    export BORG_REPO=ssh://backup/./mail/
    export BORG_PASSPHRASE='Passphrase-fuers-Backup'
    
    borg prune --keep-within=7d
  • Mit Scripten habe ich grundsätzlich kein Problem so lange sie funktionieren

    Zusätzlich zu borg kann ich borgmatic empfehlen. Nutze das ganze jetzt seit gut nem halben Jahr auf mehreren Servern und bin rund um zufrieden. Zudem deckt Borg im Zusammenhang mit borgmatic all deine Anforderungen ab. :thumbup:

  • Klingen beide gut nach etwas googlen. Was ich allerdings nicht auf Anhieb finden konnte ist der Restore. Klar kann ich das Target lokal mounten, in welchem Format liegt das ganze dann vor um da "mal eben schnell" eine Datei rauszuholen?


    Das scheinen beide reine Dateisystemskopien zu sein. Im Falle eines Crashs muss dann das System neu aufgesetzt werden und aus dem Backup zurückkopiert werden oder verstehe ich da was falsch?


    Ich habe generell von Borg viel gutes gehört, verstehe den Unterschied zwischen "BorgBackup" und "Borgmatic" nicht so ganz. Ich schau mir die beiden mal auf einer Test-VM an.

  • Klingen beide gut nach etwas googlen. Was ich allerdings nicht auf Anhieb finden konnte ist der Restore. Klar kann ich das Target lokal mounten, in welchem Format liegt das ganze dann vor um da "mal eben schnell" eine Datei rauszuholen?

    Generell wird das Backup verschlüsselt abgelegt (gibt hier sehr informative Videos vom CCC auf YouTube, ansonsten ist die offizielle Dokumentation auch sehr ausführlich & gut erklärt).


    Mounten lässt sich das ganze z.B. per FUSE was auch Recht flott vonstatten geht.

    Das scheinen beide reine Dateisystemskopien zu sein. Im Falle eines Crashs muss dann das System neu aufgesetzt werden und aus dem Backup zurückkopiert werden oder verstehe ich da was falsch?

    Genau Borg sichert nur die jeweils gewünschten Daten und macht kein Recovery Image o.ä. Wie genau man jetzt aber am besten bei einem Systemcrash handelt bzw. was Borg hier für Möglichkeiten bietet kann ich dir nicht sagen.

    Ich habe generell von Borg viel gutes gehört, verstehe den Unterschied zwischen "BorgBackup" und "Borgmatic" nicht so ganz. Ich schau mir die beiden mal auf einer Test-VM an.

    borgbackup ist die eigentliche Software womit du auch alles von Haus aus machen kannst. borgmatic ist so gesehen nur ein wrapper um Borg gebaut wodurch du z.B. Konfigurationsdateien für die Backup Automatisierung anlegen kannst, Befehle vereinfacht bzw. zusammengelegt werden + diverse Möglichkeit des monitorings etc.

  • Für das Problem mit den Konfigurationsdateien kann ich dir etckeeper empfehlen. Das ist eine kleine Scriptsammlung für GIt, die automatisch dein /etc versioniert. Das ist jetzt keine Backup-Lösung für's System, hilft aber, da man jederzeit Konfigurationen wiederherstellen kann, und nach Paketupgrades auch sieht, was verändert wurde.

  • Für das Problem mit den Konfigurationsdateien kann ich dir etckeeper empfehlen. Das ist eine kleine Scriptsammlung für GIt, die automatisch dein /etc versioniert. Das ist jetzt keine Backup-Lösung für's System, hilft aber, da man jederzeit Konfigurationen wiederherstellen kann, und nach Paketupgrades auch sieht, was verändert wurde.

    Das hatte ich nie auf dem Schirm, aber nette Sache. Ich hatte das bisher immer mal wieder manuell in meine git gekippt.



    borgbackup ist die eigentliche Software womit du auch alles von Haus aus machen kannst. borgmatic ist so gesehen nur ein wrapper um Borg gebaut wodurch du z.B. Konfigurationsdateien für die Backup Automatisierung anlegen kannst, Befehle vereinfacht bzw. zusammengelegt werden + diverse Möglichkeit des monitorings etc.

    Ja sowas dachte ich mir schon. Einfacher klingt besser. Ich bin bei Backups doch etwas Feature-verwöhnt.

    Mounten lässt sich das ganze z.B. per FUSE was auch Recht flott vonstatten geht.

    Ich habs gerade mal nachgelesen. Ist zwar ein Zwischenschritt aber das interessiert nicht wirklich da der Server ja die Arbeit macht :D

  • Ist zwar ein Zwischenschritt aber das interessiert nicht wirklich da der Server ja die Arbeit macht :D

    Dazu sollte man eventuell noch erwähnen das du keins der per Borg erstellten Backups permanent eingehängt haben darfst. Da ansonsten, bedingt durch die Deduplizierung von Borg, kein weiteres Backup erstellt werden kann.

  • Borg - entweder mit SSH direkt auf ein anderes System,

    Sicher ich als User mit dem Script auf dem Wetter-PC, funktioniert SSH (export BORG_REPO=ssh://User@111.222.33.44:port//mnt/speicher/borg

    (User sind identisch)

    Leider wird z.B. das Root-Verzeichnis wegen fehlender Berechtigung nicht gesichert

    Sicher ich mit Sudo Script funktioniert SSH nicht mehr, da der Root-Zugang nicht erlaubt ist.


    Wie kann ich dieses Dilemma auflösen?

  • Der übliche Weg bei rsync ist:

    Code
    rsync -e 'ssh -l vmk' --rsync-path="sudo rsync" remote:/ /local/

    Reicht das als Anregung? ;)

    "Security is like an onion - the more you dig in the more you want to cry"

  • Sicher ich mit Sudo Script funktioniert SSH nicht mehr, da der Root-Zugang nicht erlaubt ist.


    Wie kann ich dieses Dilemma auflösen?

    Borg als root ausführen und den user für SSH nehmen.

    Meine Borg Repos (ausser das lokale des Storage Servers selbst) gehören alle dem user borgbackup, der auch für SSH verwendet wird.

    CentOS 7 / nginx / php-fpm / postfix / rspamd / clamav / dovecot / nextcloud running on RS 1000 SSDx4 G8 / VPS 500 G8 / VPS 2000 G8 Plus

  • Borg als root ausführen und den user für SSH nehmen.

    Meine Borg Repos (ausser das lokale des Storage Servers selbst) gehören alle dem user borgbackup, der auch für SSH verwendet wird.

    Dito.



    Sicher ich als User mit dem Script auf dem Wetter-PC, funktioniert SSH (export BORG_REPO=ssh://User@111.222.33.44:port//mnt/speicher/borg

    (User sind identisch)

    Leider wird z.B. das Root-Verzeichnis wegen fehlender Berechtigung nicht gesichert

    Sicher ich mit Sudo Script funktioniert SSH nicht mehr, da der Root-Zugang nicht erlaubt ist.


    Wie kann ich dieses Dilemma auflösen?

    Das richtige Identity File nutzen. SSH findet bei mir mit Pubkey Authentifizierung statt - der private Key liegt auf der zu sichernden Maschine.

    Zusätzlich ist "backup" ein SSH Alias und in der SSH Client Config des Nutzers Root ist folgendes eingetragen:


    Code
    cat /root/.ssh/config 
    Host backup
        HostName backup.h6g-server.net
        User borg
        IdentityFile /root/.ssh/backup_ed25519


    Dann funktioniert das auch mit sudo oder unter dem root crontab.