Skip to content

Datensicherung zwischen zwei Server

Linux
  • Nehmen wir mal folgende Situation an.

    • einen Server im Internet Server1
    • einen Server im LAN Server2

    Auf dem Server1 liegt eine Datei, die ich gerne einmal am Tag sichern würde. Server2 dient als Ziel zur Datensicherung.

    0_1529324812635_database-1954920_640.jpg

    Wir brauchen

    • Script auf dem Server1
    • Script auf dem Server2

    Für beide Scripte legen wir einen Cronjob an, damit das Ganze vollautomatisch abläuft. Für die Datenübertragung benutzen wir das Programm scp

    scp ermöglicht die verschlüsselte Übertragung zwischen zwei Computern im Netz.

    Script 1

     #!/bin/bash
     ###############################################################################$
     #       Autor: Frank Mankel
     #       Redis Backup-Script
     #
     #       Kontakt: 
     #
     ###############################################################################$
     
     echo "Start Redis Backup-Script"
     
     echo "Daten sichern"
     # Daten kopieren
     cp /var/lib/redis/dump.rdb /home/frank/redis_backup
     
     # Ins Arbeitsverzeichnis wechseln
     cd /home/frank/redis_backup
     
     # Der Datei das aktuelle Datum anhängen
     cp dump.rdb dump.rdb_`date +%d_%b_%Y`
     
     # Den Namen der Datei einer Variablen zuordnen
     file=`find /home/frank/redis_backup -type f -name "*.rdb_*" -printf "%f\n"`
     
     # Den Benutzer ändern
     chown frank:frank dump.rdb*
     
     # Paar Textausgaben falls man das File mal von Hand ausführt
     echo "File kopiert"
     echo "Sie können jetzt die Daten per SCP sichern"
     echo "scp user@google.com:/home/frank/redis_backup/$file ."
     
     # Aus Sicherheitsgründen, lösche ich die Files nach einer bestimmten Zeit.
     # In dieser Zeit wird per Cron das File runter geladen!
     sleep 10m
     rm dump.rdb*
     
     # Fertig ;)
     echo "Scipt beendet"
    

    Script2

    #!/bin/bash
    ###############################################################################$
    #       Autor: Frank Mankel
    #       Redis Backup-Script
    #
    #       Kontakt: 
    #
    ###############################################################################$
    
    scp frank@google.com:/home/frank/redis_backup/dump.rdb_* .
    echo "Datei gesichert"
    
    # Alle Dateien löschen, die älter als 5 Tage sind.
    find /Datei_Pfad/ -name "*.rdb*" -mtime 5 -exec rm {} \;
    

    Bitte den find Befehl erst ohne die Löschfunktion testen!

     -exec rm {} \;
    

    Eine fehlerhafte Eingabe löscht gnadenlos, ohne Rückfrage!

    Für beide Scripte legen wir jeweils einen Crontab an. Da gehe ich hier nicht weiter drauf ein.

    crontab -e
    

    Bleibt noch ein Problem. scp verlangt das Passwort beim Aufruf, nicht gut. Aber auch dafür gibt es eine Lösung.

    Server2

    [user@server2]# ssh-keygen -t rsa -b 2048
    Generating public/private rsa key pair.
    Enter file in which to save the key (/root/.ssh/id_rsa): # Hit Enter
    Enter passphrase (empty for no passphrase): # Hit Enter
    Enter same passphrase again: # Hit Enter
    Your identification has been saved in /root/.ssh/id_rsa.
    Your public key has been saved in /root/.ssh/id_rsa.pub.
    

    Danach den Key auf Server1 kopieren

    ssh-copy-id user1@server1
    

    Quelle: unix.stackechange.com

    Danach kann man sich ohne Passwort auf dem Server1 anmelden, somit kann das Programm jetzt auch vollautomatisch gestartet werden.

  • Funktionskontrolle heute morgen war o.k. Schreibt die Daten aber noch ins falsche Verzeichnis, da muss ich nochmal ran.

  • 0 Stimmen
    1 Beiträge
    58 Aufrufe
    Niemand hat geantwortet
  • 0 Stimmen
    1 Beiträge
    75 Aufrufe
    Niemand hat geantwortet
  • NAS 2023 - Thema Datensicherung

    Verschoben Linux
    2
    0 Stimmen
    2 Beiträge
    119 Aufrufe
    FrankMF

    Bleibt noch etwas wichtiges. Die ganzen Konfigurationsdateien vom Proxmox Host. Sinnvoll, das man sich das sichert.

    #!/bin/bash # Script um mit Restic Daten automatisiert zu sichern! # Dient zum Sichern des Ordners /etc/pve! # Was soll gesichert werden? backup_pfad=/etc/pve # Programm Start restic --password-file /root/passwd -r /mnt/pve/Restic_Backups/pve backup $backup_pfad > backup_pve_001.log restic --password-file /root/passwd -r /mnt/pve/Restic_Backups/pve forget --keep-last 3 --keep-monthly 3 --prune >> backup_pve_002.log # Testen restic --password-file /root/passwd -r /mnt/pve/Restic_Backups/pve check --read-data >> backup_pve_003.log

    Crontab eingerichtet - fertig!

  • NAS 2023 - Software Teil 2

    Angeheftet Verschoben Linux
    1
    0 Stimmen
    1 Beiträge
    156 Aufrufe
    Niemand hat geantwortet
  • Redis - Datenbanken löschen

    Redis
    1
    0 Stimmen
    1 Beiträge
    137 Aufrufe
    Niemand hat geantwortet
  • 1 Stimmen
    85 Beiträge
    5k Aufrufe
    N

    Immer wieder gerne. Dieses mal gab es richtig etwas zu tun:
    13 files changed, 137 insertions(+), 96 deletions(-)
    Und das nur, damit es überhaupt wieder baut. Danach folgten noch 5 Bugfixing Runden, wobei zwei davon (lediglich) das Packaging betrafen.

    Ergänzend noch ein Hinweis:
    Port 3012 für die Websocket Verbindungen ist jetzt offiziell deprecated und wird demnächst vollständig aus Vaultwarden entfernt. Genau jetzt wäre der richtige Zeitpunkt die Apache/Nginx Konfiguration dahingehend anzupassen.

    Hierfür habe ich neue Templates online gestellt.
    Apache: https://bitwarden-deb.tech-network.de/Apache-VirtualHost.example.conf
    Nginx: https://bitwarden-deb.tech-network.de/Nginx-VirtualHost.example.conf

    Schönen Sonntag!

  • checkmk - Rest-Server überwachen

    Verschoben checkmk
    1
    0 Stimmen
    1 Beiträge
    350 Aufrufe
    Niemand hat geantwortet
  • Let's Encrypt installieren

    Verschoben Let's Encrypt
    3
    0 Stimmen
    3 Beiträge
    1k Aufrufe
    FrankMF

    Wenn ihr alles richtig gemacht habt, dann könnt ihr Euer Zertifikat überprüfen lassen. Sollte dann so aussehen.

    0_1538314120455_index.jpeg