Du betrachtest gerade BORG Backup | lokal und remote sichern | Teil 2/2

BORG Backup | lokal und remote sichern | Teil 2/2

Der zweite Teil beschäftigt sich jetzt mit der Sicherung einen entfernten SERVERS, PC oder Notebooks. Dazu verwenden wir SSH/SSHFS um das entfernte WINDOWS 11 mit seinen Daten, Docker Daten inc. SQL zu sicher. Hierbei kommt ein Script zu Einsatz, das uns die ganze Tipperei im Terminal / Eingabeaufforderung abnimmt.

Das Anlegen der Benutzer und SSH Keys wird in Teil 1 beschrieben. Ebenso wie Grundlagen und das Basic Skript, das wir zum sichern verwenden.

Video Teil: 2/2
BORG Backup remote und SQL Sicherung

Sprache: 🇩🇪
Untertitel: 🇩🇪🇬🇧

Vorraussetzungen

Inizalisiere zuerst das Repository. In diesem Fall verwende ich das Verzeichnis „/backup-server“ als Repository. Wenn Du ein anderes Verzeichnis verwendest achte darauf es im weiteren Verlauf immer, an das Beispiel hier, anzupassen. Der Benutzer ist bei mir „borgback“ wie es im Teil beschrieben, angelegt ist. Wenn Du einen Anderen Benutzernamen verwendest, musst Du die Befehlszeilen btw. das Skript immer endsprechend anpassen.

sudo borg init --encryption=repokey /backup-server

Laufwerke mounten mit SSHfs

Um das Laufwerk der Remotemaschine zu mounten verwenden wir „SSHfs“. Du kannst dies einfach installieren, wenn das noch nicht der Fall ist.

sudo apt install sshfs

Als nächstes brauchst Du das Verzeichnis in das wir das Remotelaufwerk mounten werden. Dieses erstellst Du im Verzeichnis „/media“ und vergibst dann noch die entsprechenden Zugriffsrechte.

sudo mkdir /media/backup-server
sudo chown borgback:borgback /media/backup-server

Als letzte Vorbereitung bearbeitest Du die Datei „fuse.conf“ um SSHfs die richtigen Benutzerrechte zu ermöglichen.

sudo nano /etc/fuse.conf

Entferne die „#“ vor „user_allow_other“

user_allow_other

Speichern und den Editor verlassen. Bitte starte denn PC neu Starten !

jetzt kannst Du Dein Remote Laufwerk mounten

sshfs -o allow_root [email protected]:C:/ /media/backup-server

Denke daran gegebenenfalls den Benutzernamen@PIadresse, in der Befehlszeile, anzupassen.

Im Video erkläre ich sehr genau, wie Du das gemostete Laufwerk anschauen kannst, und wir die Verzeichnisstruktur aufgebaut ist. Wichtig ist bei der Verzeichnisstruktur, wie sie aufgebaut ist und mit welchen Pfadangaben Du arbeiten musst. Denn nur ein Tippfehler, oder ein falscher Pfad, und das ganze bringt nur noch Fehlermeldungen.

Test Backup ausführen

Zum Test sichern wir kurz alle „Documente“ Ordner aller Benutzer auf der Remotemaschine

sudo borg create -s -p /backup-server::'test Sicherung' /media/backup-server/Users/*/Documents

Gemountetes Laufwerk trennen

umount /media/beckup-server

Repository Key sichern

Sichere Dein Repository Passwort und den Key ! Wenn Du mal den Zugriff verlierst brauchst Du Passwort und Schlüssel um an die Sicherung heranzukommen. Den Key kannst Du exportieren, verwende einfach

sudo borg key export /backup-server >Schreibtisch/repro-key-server.txt 

SQL sichern mit mySQLdump

MySQL, die Datenbank, ist wohl in jedem Benutzten Netzwerk eines der Wertvollsten Stücke. Nun Du und ich sind und uns einig, das wir die SQL Datenbank ebenfalls sichern wollen. Dafür verwenden wir unser Repro „/backup-server“ und einen Eigenen Sicherung Satz „sql-server“

Wenn bei Dir „mysqldump“ noch nicht installiert ist, verwendest Du bitte denn Befehl

sudo apt install mysql-client-core-8.0

unter Ubuntu, Mint usw. bei anderen Distributionen passe den Befehl einfach kurz an.

Jetzt zum Script, els erstes das Haupt-Script. Die Einträge die Du ändern musst, habe ich Dir Fett markiert. Achte bitte auch auf die Ausführungen im Video.

Script Datei: backup-server.sh
(Bitte achte auf die Berechtigung als Programm ausführbar)

#!/bin/sh

# Einfaches BORG Backup script.sh
# by Michael Klissner, www.klissner.uk

# --------------------------------------------------------------------------------------------
# --- Parameter und Einstellungen
# --------------------------------------------------------------------------------------------
# Parameter
REPOSITORY='/Dein-Repro'

# Wenn Sie dies einstellen, muss das Projektarchiv nicht auf der 
# Kommandozeile angegeben werden:
export BORG_REPO=$REPOSITORY

# Weitere Informationen finden Sie im Abschnitt Hinweise zur Passphrase
# Wenn Du as einstellst wird der Passphrase nicht in der 
# Kommandozeile eingegeben werden
export BORG_PASSPHRASE='DeinPasswortDerSicherung'

# mout laufwerke
# shfs -o allow_root [email protected]:C:/ /media/backup-server

echo mySQLdump : erstellen
echo "-------------------------------------------------------------"
echo "#### beginne SQL dump : $(date) #### SQL"  
# SQL Dump erstellen, Kopie der Datenbank anlegen
# und unter VerzeichnisFürDeineSicheung/backup.sql ablegen
mysqldump -h DeinServerIP -u SQLrootBenutzer -pSQLrootPasswort --all-databases > VerzeichnisFürDeineSicheung/backup.sql

# --------------------------------------------------------------------------------------------
# --- Backup der Server Daten
# --------------------------------------------------------------------------------------------
echo Repro : $REPOSITORY
echo Date  : $(date)
echo "-------------------------------------------------------------"

echo "#### beginne backup   : $(date) #### SERVER"                                            
borg create                                                  \
      --verbose                                              \
      --stats                                                \
      --info                                                 \
      --filter AME                                           \
      --show-rc                                              \
      --compression lz4                                      \
      --progress                                             \
      --exclude-caches                                       \
      --exclude '/media/backup-server/Users/Default'         \
      --exclude '/media/backup-server/Users/*/NTUSER.*'      \
      --exclude '/media/backup-server/Users/*/ntuser.*'      \
      $REPOSITORY::'{hostname}_{now:%Y-%m-%d_%H-%M}'         \
      /media/backup-server/Users/*/Documents                 \
      /media/backup-server/Users/*/Downloads                 \
      /media/backup-server/Users/*/OneDrive                  \
      /media/backup-server/Users/*/Videos                    \
      /media/backup-server/Users/*/.ssh                      \
      /media/backup-server/Users/*/Music

echo "#### Backup beendet   : $(date) #### SERVER"

## Mit den keep Optionen werden die sieben letzten täglichen Backups,
## eins aus den jeweiligen letzten vier Wochen und eins der letzten sechs
## Monate behalten

echo "#### beginne pruning  : $(date) #### SERVER"

borg prune -v $REPOSITORY             \
      --list                          \
      --glob-archives '{hostname}_*'  \
      --show-rc                       \
      --keep-daily=7                  \
      --keep-weekly=4                 \
      --keep-monthly=6

echo "#### pruning beendet  : $(date) #### SERVER" 
         
echo "#### beginne compact  : $(date) #### SERVER" 
borg compact
echo "#### compact beendet  : $(date) #### SERVER"

# --------------------------------------------------------------------------------------------
# --- Backup der SQL Daten
# --------------------------------------------------------------------------------------------
echo Repro : $REPOSITORY
echo Date  : $(date)
echo "-------------------------------------------------------------"

echo "#### beginne backup   : $(date) #### SQL"                                            
borg create                                                  \
      --verbose                                              \
      --stats                                                \
      --info                                                 \
      --filter AME                                           \
      --show-rc                                              \
      --compression lz4                                      \
      --progress                                             \
      --exclude-caches                                       \
      $REPOSITORY::'sql-server_{now:%Y-%m-%d_%H-%M}'         \
      VerzeichnisFürDeineSicheung/backup.sql

echo "#### Backup beendet   : $(date) #### SQL"

## Mit den keep Optionen werden die sieben letzten täglichen Backups,
## eins aus den jeweiligen letzten vier Wochen und eins der letzten sechs
## Monate behalten

echo "#### beginne pruning  : $(date) #### SQL"

borg prune -v $REPOSITORY               \
      --list                            \
      --glob-archives 'sql-server_*'    \
      --show-rc                         \
      --keep-daily=7                    \
      --keep-weekly=4                   \
      --keep-monthly=6

echo "#### pruning beendet  : $(date) #### SQL" 
         
echo "#### beginne compact  : $(date) #### SQL" 
borg compact
echo "#### compact beendet  : $(date) #### SQL"

# --------------------------------------------------------------------------------------------
# --- Backup Vorgänge abgeschlossen
# --------------------------------------------------------------------------------------------

echo "#### SQL Daten löschen: $(date) #### Clean up"
sudo rm VerzeichnisFürDeineSicheung/backup.sql

echo "#### Laufwerke trennen  $(date) #### Clean up"
umount /media/backup-server
echo "#### Trennung vom Kolegtiv beendet"

echo "-------------------------------------------------------------"
echo "#### backup beendet  :  $(date) #### Info"


Zum Starten brauchen wir eine Start-Script-Datei, da wir das Mount in der unter sudo ausgeführten Scriptdatei „backup-server.sh“ nicht ausführen können.

Script Datei: backup-server-start.sh
(Bitte achte auf die Berechtigung als Programm ausführbar)

#!/bin/sh

# Mounten des SERVER Laufwerks C:\ mit SSHfs
sshfs -o allow_root borgback@192.168.1.106:C:/ /media/backup-server

# das Script zum sichern mit SUDO Rechten starten
sudo ./Schreibtisch/backup-server.sh

Mit dieser kurzen Scriptdatei startest Du die Sicherung.

./Schreibtisch/backup-server.start.sh

Möglicher weise wirst Du nach der „Passphrase“ des Keys gefragt, die gibst Du bitte ein.

Als zweites wirst Du wahrscheinlich nach dem sudo Passwort gefragt, das gibst Du natürlich auch ein.

Automatisierung

Das Script kannst Du in der root crontab -e hinterlegen, dabei fällt auch die sudo Passworteingabe weg.

Die „Passphrase“ des Keys hingegen kann man momentan nicht umgehen. Die einzigste Lösung ist hier ein SSH Key ohne „Passphrase“

Auch das gemostete Laufwerk wird dann permanent eingebunden, kann aber auch als Abruf weiter geführt werden. Auf Abruf erfordert aber wieder viele Tricks 17 (Live Hacks).

Link zur Unterstützung / Spende für denn Kanal
PayPal Link
Überweisung, Bitcoin und Lightning

#Backup #BORG #BorgBackup #BORGbackupScript #BORGpullBackup #BORGremoteBackup #Linux #PullBackup #RemoteBackup #SSHfs #SSHfsBackup #SSHfsBORG #SSHfsBORGbackup #WINDOWSsubsystemFuerLinux #WSL #Datensicherung #BorgDatensicherung #BORGbackupDatensicherung

Schreibe einen Kommentar