Digital Eliteboard

Registriere dich noch heute kostenloses 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 Bereiche, welche für Gäste verwert bleiben

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

MegaV0lt

Hacker
Mitglied seit
24. April 2011
Beiträge
425
Reaktion auf Beiträge
125
Punkte
43
Ich möchte hier eine Anlaufstelle für meine Weiterentwicklung des Backup-Skript's "backup-321tux.sh" von 321tux.de | Linux & Ubuntu | Internet & WordPress eröffnen.



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 321tux.de | Linux & Ubuntu | Internet & WordPress 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: Komfortables Backup-Skript (rsync) (Update) | 321tux.de

Meine aktuelle Version bekommt man im GIT: GitHub - MegaV0lt/MV_Backup: RSYNC Backup Skript
Originalversion zum Vergleich ist ebenfalls enthalten.

Den aktuellen Stand im GIT als ZIP
 
Zuletzt bearbeitet:

cenobita77

Ist gelegentlich hier
Mitglied seit
18. September 2012
Beiträge
71
Reaktion auf Beiträge
0
Punkte
6
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..?
 
OP
OP
MegaV0lt

MegaV0lt

Hacker
Mitglied seit
24. April 2011
Beiträge
425
Reaktion auf Beiträge
125
Punkte
43
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!
 

cenobita77

Ist gelegentlich hier
Mitglied seit
18. September 2012
Beiträge
71
Reaktion auf Beiträge
0
Punkte
6
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
 
OP
OP
MegaV0lt

MegaV0lt

Hacker
Mitglied seit
24. April 2011
Beiträge
425
Reaktion auf Beiträge
125
Punkte
43
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:

cenobita77

Ist gelegentlich hier
Mitglied seit
18. September 2012
Beiträge
71
Reaktion auf Beiträge
0
Punkte
6
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
 

Jogi29

Freak
Mitglied seit
9. November 2009
Beiträge
208
Reaktion auf Beiträge
98
Punkte
28
AW: RSYNC BACKUP - bachup-321tux.sh

Hi,

ich werde die neue Version des Scripts testen und berichten.
 
OP
OP
MegaV0lt

MegaV0lt

Hacker
Mitglied seit
24. April 2011
Beiträge
425
Reaktion auf Beiträge
125
Punkte
43
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...
 

Jogi29

Freak
Mitglied seit
9. November 2009
Beiträge
208
Reaktion auf Beiträge
98
Punkte
28
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
 
OP
OP
MegaV0lt

MegaV0lt

Hacker
Mitglied seit
24. April 2011
Beiträge
425
Reaktion auf Beiträge
125
Punkte
43
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}/
 

Jogi29

Freak
Mitglied seit
9. November 2009
Beiträge
208
Reaktion auf Beiträge
98
Punkte
28
AW: RSYNC BACKUP - bachup-321tux.sh

Vielen Dank, werden das Script sofort austauschen und die Conf ggf. erweitern, Bericht folgt.
 
Zuletzt bearbeitet:

cenobita77

Ist gelegentlich hier
Mitglied seit
18. September 2012
Beiträge
71
Reaktion auf Beiträge
0
Punkte
6
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
 
OP
OP
MegaV0lt

MegaV0lt

Hacker
Mitglied seit
24. April 2011
Beiträge
425
Reaktion auf Beiträge
125
Punkte
43
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.
 

Jogi29

Freak
Mitglied seit
9. November 2009
Beiträge
208
Reaktion auf Beiträge
98
Punkte
28
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.
 
OP
OP
MegaV0lt

MegaV0lt

Hacker
Mitglied seit
24. April 2011
Beiträge
425
Reaktion auf Beiträge
125
Punkte
43
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
 

Oben Unten