Skip to content

Datensicherung zwischen zwei Server

Linux
2 1 787
  • 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.

  • Podman - Forgejo Server aufsetzen

    Angeheftet Podman podman linux forgejo
    5
    0 Stimmen
    5 Beiträge
    904 Aufrufe
    FrankMF
    Und noch was sehr wichtiges! The Forgejo configuration is stored in the app.ini file as described in the Configuration Cheat Sheet. When using the Forgejo container image, this file is automatically created if it does not exist already. In addition it is possible to add settings using configuration variables. For instance: FORGEJO__repository__ENABLE_PUSH_CREATE_USER=true is the equivalent of adding the following to app.ini: [repository] ENABLE_PUSH_CREATE_USER = true NOTE: it is not possible to use environment variables to remove an existing value, it must be done by editing the app.ini file. NOTE: in case you are in a SELinux environment check the audit logs if you are having issues with containers. Quelle: https://forgejo.org/docs/latest/admin/installation-docker/
  • Raspberry Pi5 - Netzteil

    RaspberryPi raspberrypi linux
    1
    0 Stimmen
    1 Beiträge
    584 Aufrufe
    Niemand hat geantwortet
  • Proxmox 8.1 released

    Linux proxmox linux
    1
    0 Stimmen
    1 Beiträge
    191 Aufrufe
    Niemand hat geantwortet
  • Fragen, Probleme, geht nicht?

    Angeheftet Support vaultwarden support linux
    1
    0 Stimmen
    1 Beiträge
    176 Aufrufe
    Niemand hat geantwortet
  • PHP - ChatGPT

    PHP php linux chatgpt
    1
    2
    0 Stimmen
    1 Beiträge
    172 Aufrufe
    Niemand hat geantwortet
  • Vorstellung Star64

    Hardware star64 risc-v linux
    2
    1
    0 Stimmen
    2 Beiträge
    158 Aufrufe
    FrankMF
    Ich konnte heute einen ergattern und die 8GB RAM Version ist unterwegs. Achtung, aktuell ist die Softwareunterstützung fast nicht vorhanden!
  • VSCodium

    Linux linux vscodium
    1
    1
    0 Stimmen
    1 Beiträge
    283 Aufrufe
    Niemand hat geantwortet
  • NodeBB auf dem Raspberry3 B+ installieren

    RaspberryPi nodebb raspberrypi linux
    1
    0 Stimmen
    1 Beiträge
    892 Aufrufe
    Niemand hat geantwortet