Wie sichert ihr eure ganze Server?

  • Doch doch, du verstehst schon was ich meine :D

    • Wenn ich Backup 1 mounte sehe ich alle Dateien
    • Wenn ich Backup 2 mounte sehe ich alle Dateien + neue

    Aber wie erkenne ich nun genau welche Dateien wirklich Neu sind? Bei einem Restore werden ja sonst alles Dateien komplett überschrieben oder nicht?
    Da können doch in der Installation zB Dateien vorhanden bleiben wenn man einfach nur das Restore drüber bügelt? :D

    Ich würde schon gern sehen welche Dateien entweder entfernt oder neu dazugekommen sind :D

    ┌П┐(◉_◉)┌П┐

  • Das Geheimnis ist wohl

    Code
    #borg diff /root/backups/borg/files/::20200527_141821 20200527_141944
    +26 B     -26 B root/.config/borg/security/56d59e4c379f37a00c681d068da4a384a551eb1b8baa8709f6d1a53fc0519453/manifest-timestamp
    removed         0 B root/test.txt

    Das zeigt an welche Dateien sich geändert haben, dazu gekommen sind oder entfernt wurden von einem backup zum anderen.

    Aber ich komm noch nicht ganz dahinter nehmen wir an ich will ein Backup von gestern wiederherstellt /www/domain/public, dann werden ja alle Dateien aus dem Archiv im public überschrieben.

    Aber was mit den Dateien die dann auch dem Server durch zB ein Plugin hinzugefügt werden? Die bleiben ja dann noch vorhanden obwohl zB die Datenbank sich ja dann bei einem Restort (dump) auch geändert haben. Die Dateien auf dem vhost und aus dem Backup sind ja dann nicht mehr zu 100% syncron?

    Da müsste ja man ja eigentlich vorher /www/domain/public komplett leeren und dann erst einspielen damit es syncron ist?

    Ich komm da nicht so ganz dahinter :D

    Bei rsync würde das zB gehen, gibs hier sowas auch ? :D

    EDIT: Mal ne Frage zum mysqldum sind die Flags so richtig?:

    mysqldump --single-transaction --opt --no-create-db

    ┌П┐(◉_◉)┌П┐

    Einmal editiert, zuletzt von TeRRible__KHONS (27. Mai 2020 um 15:32)

  • EDIT: Mal ne Frage zum mysqldum sind die Flags so richtig?:

    mysqldump --single-transaction --opt --no-create-db

    Bei mir mach ich so sqldump:

    Code
    mysql -N -e 'show databases' | while read dbname; do mysqldump --complete-insert --routines --triggers --single-transaction "$dbname" > "$dbname".sql; done

    Vorteile:

    • Datenbanken in einzelnen Dateien und somit einzelne Wiederherstellungen möglich, Dateiname nach Datenbank
    • Vorteil von Complete Insert ist, dass im SQL Befehl passend dazu der Tabellenname steht. Die Spalten könnten aber an anderen Stellen sein.
    • Parameter triggers exportiert auch Trigger, da man nie unbedingt weiß, ob welche für eine Tabelle definiert sind. Ist aber im normalfall eh aktiv
    • routines exportiert Prozeduren und Funktionen von Tabellen, falls definiert
    • Bei single-transactions lass ich dir mal den englischen Titel drin. Das ist etwas mehr zu erklären: https://dev.mysql.com/doc/refman/8.0…gle-transaction
    • --opt braucht man nicht, da es eh im Standard aktiv ist.
    • --no-create-db ist sowieso nur relevant, wenn du --databases oder --all-databases nutzt, was ich ja nicht tu.

    Ohne Complete Insert

    SQL
    INSERT INTO `tsw_news` VALUES (1,'Aktualisierung von TeamSpeak auf Version 3.12.0',1,'2020-03-18 16:44:18',NULL,'Am kommenden Samstag, den 21.03.2020, um 11 Uhr aktualisieren wir den TeamSpeak Server. Es kommt dadurch zu einem Ausfall von maximal 30 Minuten. Wenn alles rund l&auml;uft, dauert es nur 5 Minuten. <br>Das Update ist wichtig, da auch ein Fehler beim Whispern behoben wurde.<br><em><strong>-Update abgeschlossen- </strong></em>');

    Mit Complete Insert:

    SQL
    INSERT INTO `tsw_news` (`newsid`, `title`, `langid`, `added`, `edited`, `content`) VALUES (1,'Aktualisierung von TeamSpeak auf Version 3.12.0',1,'2020-03-18 16:44:18',NULL,'Am kommenden Samstag, den 21.03.2020, um 11 Uhr aktualisieren wir den TeamSpeak Server. Es kommt dadurch zu einem Ausfall von maximal 30 Minuten. Wenn alles rund l&auml;uft, dauert es nur 5 Minuten. <br>Das Update ist wichtig, da auch ein Fehler beim Whispern behoben wurde.<br><em><strong>-Update abgeschlossen- </strong></em>');

    Mit der ersten Variante, würde SQL von Spalte zu Spalte gehen zum einfügen. Bei Version 2 wird nach dem Spaltennamen gegangen, was theoretisch generell sicherer ist, da die Position der Spalte egal ist.

    „If you can only do one thing, hone it to perfection. Hone it to the utmost limit!“ – Zenitsu Agatsuma

    Einmal editiert, zuletzt von Xopez (27. Mai 2020 um 19:15)

  • Stimmt, so ähnlich hatte ich das auch in meinen Shell-Scripten, habe deinen Flag nun übernommen, danke:

    Code: BORG-DUMP (alle Datenbanken)
    mysql -N -e 'show databases' | while read dbname; do mysqldump --complete-insert --routines --triggers --single-transaction "$dbname" > /root/backups/borg/databases/"${currentDate}"/"${currentDate}-$dbname".sql; [[ $? -eq 0 ]] && gzip /root/backups/borg/databases/"${currentDate}"/"${currentDate}-$dbname".sql; done
    Code: FULL-BACKUP (nur die Datenbanken der Webseiten)
    databases=`mysql -e "SHOW DATABASES;" | grep -Ev "(Database|information_schema|performance_schema|sys|phpmyadmin|mysql)"`
    
    for db in $databases; do
      mysqldump --complete-insert --routines --triggers --single-transaction --databases "$db" | gzip > /root/backups/full-backup/databases/"${currentDate}-$db.sql.gz"
    done

    EDIT: Trotzdem check ich das mit BORG nicht so richtig, wenn man was wieder herstellt, ist das nicht syncron ausser man löscht vorher den ganzen Ordner des Ziels? :/ :D

    ┌П┐(◉_◉)┌П┐

  • EDIT: Trotzdem check ich das mit BORG nicht so richtig, wenn man was wieder herstellt, ist das nicht syncron ausser man löscht vorher den ganzen Ordner des Ziels? :/ :D

    Ich kenn mich leider mit Borg nicht aus. Ich habe ja ne kombination von Rsync, Packen und komprimieren, verschlüsseln und dann in ne cloud hochladen :D und dazu das Backup in der Hetznercloud^^

    „If you can only do one thing, hone it to perfection. Hone it to the utmost limit!“ – Zenitsu Agatsuma

  • Ich will ja auch auf die Hetznercloud , vor größeren System änderungen ist ein snapshot perfekt (habe ich auch für den Mailserver).

    Weiß auch nicht rsync, hâlt die Dateien (File-system und backups) wenigsten syncron, Borg anscheinend nicht :/

    ┌П┐(◉_◉)┌П┐

  • Ich will ja auch auf die Hetznercloud , vor größeren System änderungen ist ein snapshot perfekt (habe ich auch für den Mailserver).

    Snapshot? :O Sicherlich meintest du Backups^^

    Aber im Grunde genommen ist es ja nichts anderes als ein Snapshot^^

    Snapshots sind wirklich nur bei Knopfdruck. MIt Backup bekommst du jeden Tag eins automatisch bis 7 Stück maximal.

    „If you can only do one thing, hone it to perfection. Hone it to the utmost limit!“ – Zenitsu Agatsuma

  • Achso du meinst die Backups, ja ist auch wie ein Snapshot aber das mach ich nicht weil diese im laufendem Betrieb gemacht werden und somit auch korrupt/inkonsistent werden können.

    Wenn ich ein Snapshot erstelle wahre ich den Server zuvor geordnet herunten und mach dann erst den Snapshot :)

    Aber das mit Borg nervt mich, verstehe den Workflow nicht so richtig :D

    ┌П┐(◉_◉)┌П┐

  • kombination von Rsync, Packen und komprimieren, verschlüsseln und dann in ne cloud hochladen :D

    Also quasi Borg in umständlich :P

    Ganze System Backups mache ich gar nicht. Würde mir ein Server hops gehen, richte ich eben einen neuen ein und schmeiß das Backup da drauf. Das dauert vielleicht ne Stunde.

    TeRRible__KHONS Was meinst du mit synchron?

  • Hat sich erledigt :) hab Borg getestet aber ist mir zu umständlich, bin jetzt wieder bei rsync :D

    • 1x Täglich mit rsync des ganzen Systems + alle Datenbanken.
    • 1x die Woche mit tar alle Webseiten + Webseiten Datenbanken.

    Das Problem bei Borg ist das wenn man aus dem Backup was wieder herstellt dass trotzdem Dateien auf dem Server bleiben die sich nicht geändert haben, hier sehe ich den Vorteil eindeutig bei rsync durch --delete werden Quelle und Ziel abgeglichen

    Bei Borg wird einfach Stur nur ersetzt und nicht abgeglichen, das heißt wurde eine Datei zB durch ein Plugin hinzugefügt, dann crasht dein System, spielst ein Borg backup + Datenbank wieder ein, bleiben trotzdem noch überreste der Plugins im System, es sei denn du löschst vorher den ganzen Ordner und spielst dann das Backup wieder ein.

    Vorteil rsync entfernt dann bei einem restore alle Dateien die sich nicht im Backup befinden. so hat man immer ein Syncrones-System, Live = Backup :)

    PS. Mir ist es lieber einmal die Woche trotzdem ein Webseiten-TAR + Webseiten Dankbank unabhängig vom rsync zu erstellen um wirklich sicher zu sein.

    Sobald das System live irgendwann ist, werde ich mir alle Daten von beiden Backups zusätzlich Täglich bzw. Montags auf den PC ziehen auch per rsync.

    ┌П┐(◉_◉)┌П┐

  • Deine Argumentation ist mir zwar suspekt, aber Jedem das seine :)

    Zudem ist es doch Banane, ob du rsync mit delete flag nutzt oder vor dem borg extract ein rm -R auf den Zielordner machst. Letzteres fände ich beim Einspielen eines Backups sauberer, als darauf zu Vertrauen dass rsync keinen Fehler macht ^^

    Einmal editiert, zuletzt von Tobias777 (27. Mai 2020 um 23:01)

  • Ja sag ich doch, du musst erst alles löschen dann das Backup einspielen, sonst bleiben überbleibsel ;)

    Xopez Bei Hetzner kann man die Backup-Zeit (nicht Snapshot) nicht selbst bestimmen oder? Hetzner wählt da selbst eine Zeit?

    Dachte nämlich gerade sonst könnte man das per API machen und vor den Maintenance einschalten, aber finde in den DOCs dazu nichts, man kann nur Backups über API ein oder ausschalten aber nicht manuell starten :/

    ┌П┐(◉_◉)┌П┐

  • Schade :/ Hab Angst dass die Backup's dann nicht konsistent sind und beschädigt sein könnten weil diese ja im laufendem Betrieb und dann auch noch zufällig erstellt werden zu diversen Zeiten :/

    Wenn man das wenigstens per API irgendwie triggern könnte dann könnte man die Webseiten zuvor alle in Maintenance schicken.

    ┌П┐(◉_◉)┌П┐

  • Xopez Bei Hetzner kann man die Backup-Zeit (nicht Snapshot) nicht selbst bestimmen oder? Hetzner wählt da selbst eine Zeit?

    Dachte nämlich gerade sonst könnte man das per API machen und vor den Maintenance einschalten, aber finde in den DOCs dazu nichts, man kann nur Backups über API ein oder ausschalten aber nicht manuell starten :/

    Nöp. Siehe dazu das hier: https://wiki.hetzner.de/index.php/Clou…sw.C3.A4hlen.3F

    Zitat

    Kann ich meine Backup-Zeit auswählen?

    Früher gab es eine Option, ein Fenster selbst auszuwählen, wir mussten diese Funktion jedoch deaktivieren. Dadurch können wir die zusätzliche Last, die durch das Ausführen von Backups entsteht, besser über den Tag verteilen. Dies war notwendig, da viele Benutzer dasselbe Fenster auswählten. Dies hatte Auswirkungen auf die Leistung und beeinträchtigte die Serverleistung zu bestimmten Tageszeiten.

    Verwenden Sie unsere Snapshot-Funktion, wenn Sie genau steuern möchten, wann Ihre Festplatte gespeichert wird.

    Mit der API geht das auch nicht. Das würde dir aber eh nichts helfen, denn wenn Backup an ist, macht der einmal pro Tag eins. Heißt du hast ggf. sonst mehrere pro Tag durch manuelles Backup und das aktive.

    „If you can only do one thing, hone it to perfection. Hone it to the utmost limit!“ – Zenitsu Agatsuma

  • Mit der API geht das auch nicht. Das würde dir aber eh nichts helfen, denn wenn Backup an ist, macht der einmal pro Tag eins. Heißt du hast ggf. sonst mehrere pro Tag durch manuelles Backup und das aktive.

    Danke dir, ne dachte wenn man ein Backup per API triggern könnte wäre das alles viel einfacherer :D

    Muss ich meine Backups eben selber machen und nur ein Snapshot einmal im Monat bzw. vor großeren Änderungen wenn der Server ausgeschaltet ist.

    Wird aber bestimmt bei 60-85 GB etwas dauern :D Mailserver dauert schon und da ist nicht viel druff.

    ┌П┐(◉_◉)┌П┐

  • [...]

    Muss ich meine Backups eben selber machen und nur ein Snapshot einmal im Monat bzw. vor großeren Änderungen wenn der Server ausgeschaltet ist.

    [...]

    Sich auf Backups von anderen zu verlassen, ist eine ganz ganz dumme Idee.

    BorgBackup sichert einmal vollständig und anschließend nur noch Änderungen. Damit sparst du dir massiv Zeit und Speicherplatz, da du nur Änderungen herunterladen musst.

    rsync kann sowas auch(?), aber mir gefällt Borg besser, da du dort deine Backups auch gleich verschlüsselt und komprimiert abspeichern kannst.

    Backup-Retention geht da auch wunderbar.

    Natürlich musst du dann wissen, was du wiederherstellen willst. Borg kann ja nicht wissen, was du alles wieder haben willst.

  • Jap werde selbst Backups anfertigen wie die letzten 10 Jahren auch, nur eben ab und zu mal ein Snapshot bei größeren Änderungen am Server.

    Borg hab auch ausprobiert aber mir gefällt der Workflow da nicht so ganz zur Wiederherstellung, Backupen ging gut.

    Werde weiterhin auf rsync setzen + Manuelles TAR als Fullbackup der Webseiten.

    ┌П┐(◉_◉)┌П┐

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!