Quantcast
Aktuelles
Digital Eliteboard - Das Digitale Technik Forum

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

Support RSYNC BACKUP - MV_Backup.sh (Linux - Bash)

MegaV0lt

Spezialist
Registriert
24. April 2011
Beiträge
524
Reaktionspunkte
170
Punkte
103
Ort
Neuland
Ich möchte hier eine Anlaufstelle für meine Weiterentwicklung des Backup-Skript's "backup-321tux.sh" von eröffnen.

Du musst angemeldet sein, um Bilder zu sehen.


Ich verwende das Skript nun schon eine ganze Weile auf vier meiner Systeme (PC, Laptop, VDR, HP-T5730) und bin sehr zufrieden, da es meine Bedürfnisse, welche ich teilweise selbst integriert habe perfekt abdeckt.
Das Skript stammt im Original von und wurde von mir um ein paar Funktionen erweitert. Da im Blog auf der Originalseite die Möglichkeiten und Übersichtlichkeit ein wenig eingeschränkt sind, ist ein Forum wie dieses hier wohl besser geeignet, Fragen zu beantworten.

Der Link zum Originalskript und den Blog:

Meine aktuelle Version bekommt man im GIT:
Originalversion zum Vergleich ist ebenfalls enthalten.

Zusätzlich gibt es nun auch eine Version , die borg zum sichern verwendet:

Ist von MV_Backup abgeleitet und bietet ähnliche Funktionalität. Frühe Version. Test auf eigenes Risiko ;-)
 
Zuletzt bearbeitet:
AW: RSYNC BACKUP - bachup-321tux.sh

also du hast mir ja in deinem Blog geschrieben, dass es heute eine neue Version gibt, diese hier "20140920" es reicht also diese zu ersetzen, die *.conf Datei bleibt die selbe..?
 
AW: RSYNC BACKUP - bachup-321tux.sh

Richtig. Das Skript kannst Du ersetzten; solange Du nicht selbst Änderungen vorgenommen hast. Bei der .conf Musst Du mal schauen, ob der eMail-Abschnitt so aussieht:
Code:
############################### EMAIL KONFIGURATION #####################################

MAILPROG="mpack"   # mpack, sendmail oder sendEmail (http://j.mp/Xo69II)
#                  Ausfüllen, wenn "sendEmail" verwendert wird
MAILSERVER=        # Server (z.B. mail.gmx.net)
MAILPORT=          # Port (z.B. 25)
MAILUSER=          # z.B. Meine@email.de
MAILPASS=          # z.B. v784hcnfd <- eMail-Passwort
MAILSENDER=        # Sendeadresse (z.B. Meine@email.de)
#USETLS="-o tls=yes" # Enable TLS for the SMTP connection
#                  Einstellungen für den eMail-Bericht
SHOWCONTENT="true" # Zeige Inhalt der Sichrungsziele (Oberste Ebene [ls -lh])
Die letzte Zeile (SHOWCONTENT) ist relativ neu. Bei den Profilen hat sich nichts geändert.
Natürlich solltest Du Deine ausgefüllten Werte behalten!
 
AW: RSYNC BACKUP - bachup-321tux.sh

nein am Script habe ich nichts verändert, dass ist doch auch gut so, da braucht man eben nur die conf Datei anfassen.. Sehr gute Lösung.
Was mit persönlich besser gefällt ist dies mit der Mailadresse, so wie ich es geschrieben habe im Blog... dann brauche ich dies nicht im crontab mit angeben, dass kann ja jeder so machen wie er es möchte, gibt ja genug Erklärungen dafür...

Was ich jetzt noch nicht probiert habe ist, wie und ob das Script die Verzeichnisse mounten kann. Bisher habe ich das in meiner fstab gemacht, das muss ich mir noch anschauen. Ich sichere mit zwei Profilen auf zwei verschiedene Qnap NAS... diese Verzeichnisse mounte ich eben in der fstab...
Was anderes habe ich noch nicht probiert

so habe ich es eingetragen:
# = = Profil 1 = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
p_nr=1 # Fortlaufende Profil-Nummer
title[$p_nr]="FHEM-Sicherung-Qnap219"
arg[$p_nr]="r"
source[$p_nr]="/opt"
target[$p_nr]="$MOUNT/mnt/share/MD0_DATA/Sicherung/Backup_FHEM"
log[$p_nr]="${target[$p_nr]}/$(date +%F)_${title[$p_nr]}.log"
exfrom[$p_nr]="$(mktemp -t "tmp.rsync.XXXX")"
rsync_opt[$p_nr]=""
cat > "${exfrom[$p_nr]}" <<EOF
dev/
lost+found/
mnt/
proc/
sys/
tmp/
var/tmp/
video/
EOF

# = = Profil 2 = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
((p_nr++)) # Variable p_nr um eins hochzählen
title[$p_nr]="FHEM-Sicherung-Qnap439"
arg[$p_nr]="s"
source[$p_nr]="/opt"
target[$p_nr]="$MOUNT/mnt/share/HDD_DATA/Sicherung/Backup_FHEM"
log[$p_nr]="${target[$p_nr]}/$(date +%F)_${title[$p_nr]}.log"
exfrom[$p_nr]="$(mktemp -t "tmp.rsync.XXXX")"
rsync_opt[$p_nr]=""
cat > "${exfrom[$p_nr]}" <<EOF
_incoming
lost+found/
portage/
tmp/
video/
EOF

der Pfad ist leer
MOUNT="$(readlink -m/ )" # Mountpoint ist ein Symlink
 
AW: RSYNC BACKUP - bachup-321tux.sh

Die Option, dass man die eMail-Adresse fest konfigurieren kann baue ich in die .conf noch ein; Gute Idee!

Wenn das Ziel in der fstab steht (mit noauto), dann wird das Skript versuchen es Einzuhängen. Am Ende wird es auch wieder ausgehängt.

Beispiel fstab mit NFS und SAMBA-Freigaben von meinem VDR:

Code:
# NFS-Freigaben von SheevaPlug
SheevaPlug:/    /mnt/sheeva_root  nfs  noauto,rsize=8192,wsize=8192,timeo=14,intr  0 0
SheevaPlug:/mnt/usbdisk  /mnt/sheeva_usbdisk  nfs  noauto,rsize=8192,wsize=8192,timeo=14,intr  0 0
SheevaPlug:/mnt/usbdrive  /mnt/sheeva_stick  nfs  noauto,rsize=8192,wsize=8192,timeo=14,intr  0 0

# Samba-Freigabe
//SheevaPlug/root  /mnt/sheeva_root  cifs  defaults,user,username=root,password=xxx 0 0
Die NFS-Freigaben werden nicht eingehängt (noauto) und erst vom Skript aktiviert.

Nachtrag: Hier die exports auf meiner SheevaPlug:
Code:
# Root Filesystem
/                 *(rw,no_subtree_check,no_root_squash,fsid=1)

# USB-Festplatte
/mnt/usbdisk         *(rw,no_subtree_check,no_root_squash)

# USB-Stick
/mnt/usbdrive         *(rw,no_subtree_check,no_root_squash)

- - - - - - - - - -

der Pfad ist leer
MOUNT="$(readlink -m/ )" # Mountpoint ist ein Symlink
Mach daraus besser MOUNT=
 
Zuletzt bearbeitet:
AW: RSYNC BACKUP - bachup-321tux.sh

Ok also bei MOUNT= den gnazen symlink weglassen..

Das mit dem mounten/einhängen vom Script werde ich mal probieren, habe ich noch nicht gemacht. Bei mir sind die permanent gemountet...!
VDR habe ich auch noch als Server mit einem XBMC openelec-Client, der macht mir aber nur Sorgen und braucht regelmäßig Zuwendung. Grad erst alles Neu gemacht, aber noch nicht weiter getestet ;-) OK andere Baustelle
 
AW: RSYNC BACKUP - bachup-321tux.sh

Ich habe mir das mal angeschaut. Das mit dem Einhängen funktioniert nur, wenn man auch den MOUNT= Parameter verwendet. Das geht dann auch nur, wenn für alle Profile das Sicherungsziel auf dem selben Einhängepunkt liegt.

Ich glaube aber, dass ich das lösen kann, in dem ich bei den Profilen einen mount[]= mit einbaue und im Skript dann abfrage...
 
AW: RSYNC BACKUP - bachup-321tux.sh

noch eine Frage:
wenn ich die Mailadresse mit MAILADRESS= setze, muss diese in Anführungszeichen gesetzt werden, wie eine Zeile zuvor bei MAILPROG="mpack"?

Viele Grüße
Jürgen
 
AW: RSYNC BACKUP - bachup-321tux.sh

Grundsätzlich ist es gut alles in Anführungszeichen zu setzen (MAILADRESS="My@mail.de"). Es sollte aber auch ohne funktionieren.

Ich habe eben eine aktuelle Version hochgeladen:

  • Neu ist der Versuch mit verschiedenen Einhängepunkten zu Arbeiten. Wer nur Einen hat verwendet weiterhin nur MOUNT=
    In den Profilen ist hierzu die Variable mount[$p_nr] dazugekommen.
  • Neu ist auch SHOWUSAGE="true" in den Einstellungen. Damit kann man wenn man es auskommentiert die Anzeige von df abschalten.
  • Neu auch, dass ich im Mailtext versuche immer nur ein Sicherungsziel und Verzeichnis anzuzeigen. Sollten keine mehr doppelt kommen.
  • Neu ist auch ein kleiner Countdown bevor die Sicherung startet
  • Und einige kleinere interne "Optimierungen"

Im Quelltext und in der .conf sind viele Kommentare, die alles ein wenig erklären sollen ;)

Bitte die .conf überprüfen, da neue Werte eingebaut oder verändert wurden:
Neu: SHOWUSAGE
Neu: mount[$p_nr]
Neu: ftpsrc[$p_nr]
geändert: target[$p_nr]="${mount[$p_nr]:-$MOUNT}/
 
AW: RSYNC BACKUP - bachup-321tux.sh

Vielen Dank, werden das Script sofort austauschen und die Conf ggf. erweitern, Bericht folgt.
 
Zuletzt bearbeitet von einem Moderator:
AW: RSYNC BACKUP - bachup-321tux.sh

noch eine Frage:
wenn ich die Mailadresse mit MAILADRESS= setze, muss diese in Anführungszeichen gesetzt werden, wie eine Zeile zuvor bei MAILPROG="mpack"?
ich setze alles in "" das geht immer :dance3:

werde das die Woche mal testen...! sind Erklärungen dabei was, was macht..? gerade mit dem Mount Befehl, dass würde ich gerne probieren da ich verschiedene Einhängepunkte von zwei NAS habe
 
AW: RSYNC BACKUP - bachup-321tux.sh

Ausschnitt aus der .conf:
Code:
# mount[$p_nr]     [optional] Eigener Einhängepunkt
#                       ACHTUNG: Bei target[] kein $MOUNT angeben. Entweder vollen Pfad verwenden
#                           oder die Varaible mount[$p_nr] oder "${mount[$p_nr]:-$MOUNT}" verwenden
...
 mount[$p_nr]=""             # Eigener Einhängepunkt
...
target[$p_nr]="${mount[$p_nr]:-$MOUNT}/_Backup/VDR/Root"
Wenn mount[$p_nr] ausgefüllt wird, dann wid das verwendet; ansonsten MOUNT
Du kannst das in jedem Profil nun machen. MOUNT ist der Default, falls mount[$p_nr] leer ist

Ist aber ungetestet.
 
AW: RSYNC BACKUP - bachup-321tux.sh

habe folgenden Eintrag in der backup.conf:
MAILADRESS="info@meinname.de" # Ausfüllen, wenn man kein -e ... verwenden will (z.B. für crontab)
eine Mail habe ich allerdings nicht erhalten. Mit -e in crontab hat der Mailversand geklappt.
 
AW: RSYNC BACKUP - bachup-321tux.sh

Hab es hier noch mal getestet. Geht. Du kannst im Skript die Zeile 249 auskommentieren, dann wird alles außer das Backup selbst gemacht:
Code:
    eval rsync $RSYNC_OPT --log-file=\"$LOG\" --exclude-from=\"$EXFROM\" --backup-dir=\"$BAK_DIR\" $SOURCE \"$TARGET\"
# an die erste Stelle setzten.

Dann das Skript mit "bash -x backup..." starten. Parameter nicht vergessen (-p). In der Konsole kommen dann viele Debugausgaben, die den Fehler Zeigen müssten.

Evtl. das aktuelle Skript von heute laden
 
Zurück
Oben