Dies ist eine mobil optimierte Seite, die schnell lädt. Wenn Sie die Seite ohne Optimierung laden möchten, dann klicken Sie auf diesen Text.

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

    Nobody is reading this thread right now.
Moinsen,
ich hab das nochmal genau studiert und festgestellt das mail sehr wahrscheinlich keine Anhänge kann.
Daraufhin hab ich mir das versenden von mails mit postfix nochmal genauer angeschaut:
sendEmail kann einfach postfix verwenden zum verschicken von mails. Ich habe dafür nur den Authentifizierungs-Part ab dem Parameter -s auskommentiert in deinem Skript. Das wird nicht benötigt wenn man postfix als mta benutzt.
Mit anderen Worten Mails funktionieren jetzt 100%ig mit Anhängen über sendEmail.

Ich habe nun aber eine weitere Frage:
Ich möchte gerne meine Backups über einen bestehenden SSL-Tunnel per FTP auf ein anderes Linux-System schieben.
Das Problem ist nur das es in deinem Script keine Möglichkeit gibt FTP als Ziel einzustellen.
Habe ich etwas übersehen?

Gruß
ionfan
 
Am einfachsten wäre es, wenn Du das Ziel lokal einhängst. FTP kann man z. B. mit curlftpfs lokal Eihängen.
 
gibt es denn die möglichkeit pro profil eine pre und post-action auszuführen?
Ich will mein Ziel nun per curlftpfs einhängen aber nicht dauerhaft.
Am liebsten vor Ausführen des Profils einmal einhängen und nach dem Ausführen wieder aushängen.
 
Wenn es nur darum geht, dann brauchst Du kein PRE oder POST. Einfach in der Konfig eintragen und den Einhängepunkt in die fstab mit "noauto" (Wird nicht automatisch eingehängt). Dann wird das vom Skript erledigt. Einhängepunkte die vom Skript eingehängt werden, werden vom Skript auch wieder ausgehängt.

Beispiel-Konfig:
Code:
 [optional] Quellverzeichnis auf FTP-Server (curlftpfs wird benötigt)
# WICHTIG: Login-Daten mit angeben (user:password@ftp.server)
# ACHTUNG: Wenn angegeben, dann ist ftpmnt[nr] der Einhängepunkt für den FTP
#ftpsrc[nr]="ftp://myusername:mypassword@ftp.mydomain.com"  # Quelle ist ein FTP

# [optional] Wenn ftpsrc[nr] verwendet wird, ist ftpmnt[nr] der Einhängepunkt
#ftpmnt[nr]="/mnt/remote_ftp"  # Einhängepunkt für die FTP-Quelle
der Einhängepunkt (Z. B. /mnt/remote_FTP) muss existieren!

Das Skript hängt den ein und später wieder aus:
Code:
...
    # Ist die Quelle ein FTP und eingebunden?
    if [[ -n "$FTPSRC" ]] ; then
      if ! mountpoint "$FTPMNT" ; then
        echo -e -n "$msgINF Versuche FTP-Quelle (${FTPSRC}) unter \"${FTPMNT}\" einzuhängen…"
        curlftpfs "$FTPSRC" "$FTPMNT" &>/dev/null    # FTP einhängen
        grep -q "$FTPMNT" /proc/mounts \
          || { echo -e "\n$msgERR Die FTP-Quelle konnte nicht eingebunden werden! (RC: $?)\e[0m (\"${FTPMNT}\")" >&2 ; f_exit 1 ;}
        echo -e "OK.\nDie FTP-Quelle (${FTPSRC}) wurde erfolgreich unter (\"${FTPMNT}\") eingehängt."
        UMOUNT_FTP=1  # Nach Sicherung wieder aushängen
      fi  # ! mountpoint
    fi
...
  # Zuvor eingehängte FTP-Quelle wieder aushängen
  [[ -n "$UMOUNT_FTP" ]] && { umount "$FTPMNT" ; unset -v 'UMOUNT_FTP' ;}
...

Beispiel fstab:
Code:
curlftpfs#Benutzername:Password@ftp-server.de /mnt/ftp fuse auto,user,uid=1000,tlsv1,allow_other,disable_eprt,proxy=http://proxy-server:3128 0 0
Quelle:
"auto" durch "noauto" ersetzen. Dann wird es nicht automatisch eingehängt. Ob die anderen Optionen alle benötigt werden kann ich nicht sagen... Einfach mal testen

PS: Das geht aber momentan nur wenn FTP die Quelle ist...
PPS: Das müsste eigentlich auch ohne den fstab-Eintrag gehen... Der fstab müsste aber für den Ziel-FTP klappen. Mal eintragen und schauen, ob das Skript den Einhängt.
 
Zuletzt bearbeitet von einem Moderator:
Ok das wäre ja sehr einfach. Funktioniert das denn auch für den Mountpoint als Ziel? Mein Ziel liegt auf dem curlftpfs-mountpoint
 
Ja. müsste gehen. In die fstab und den bei MOUNT angeben...

Ich bin leider im Urlaub und kann das Skript erst ab Mitte August anpassen für PRE und POST Befehle je Profil...
 
Ok hab das mal ausprobiert und bin gegen ne Wand gelaufen:
Ich habe den curlftps mount in die fstab eingetragen. Ich habe erfolgreich getestet ob dieser Eintrag fehlerfrei gemountet werden kann.
Hier nun das Profil:
Code:
 = = = Profil 4  = = =
((nr++))                       # Fortlaufende Profil-Nummer
     title[$nr]="profilname"     # Profilname
       arg[$nr]="g"            # Argument (-p r)
      mode[$nr]="Normal"             # Modus (Normal, Snapshot oder Multi)
     mount[$nr]="/backup-remote-ftp"             # Eigener Einhängepunkt
    ftpsrc[$nr]=""             # Quelle ist ein FTP
    ftpmnt[$nr]=""             # Einhängepunkt für die FTP-Quelle
    source[$nr]="/root/testordner"
    target[$nr]="${mount[$nr]:-$MOUNT}"
   minfree[$nr]=""             # In MegaByte (1024 KByte)
 skip_full[$nr]=""             # Wenn gesetzt (1, yes, True, ...) wird das Profil übersprungen
   dry_run[$nr]=""             # Wenn gesetzt wird ein Testlauf durchgeführt (Nur im Modus normal)
minfree_bg[$nr]=""             # Mindestens frei auf dem Ziel (in MB). Wird alle 5 Minuten geprüft
       log[$nr]="${target[$nr]}/$(date +%F)_${title[$nr]}.log"
    exfrom[$nr]="$(mktemp "${TMPDIR:-/tmp}/tmp.rsync.XXXX")"
 rsync_opt[$nr]=""
cat > "${exfrom[$nr]}" <<_EOF_
_EOF_

Und hier die Fehlermeldungen:

Code:
  RSYNC BACKUP => Version: 170221 by MegaV0lt, http://j.mp/1TblNNj
  Original: 2011 by JaiBee, http://www.321tux.de/
  Gefundene Konfiguration:      /usr/local/sbin/MV_Backup.conf


  Konfiguration von:    profilname
  Sicherungsmodus:      Normal
  Quellverzeichnis(se): /root/testordner
  Zielverzeichnis:      /backup-remote-ftp
  Log-Datei:            /backup-remote-ftp/2017-08-02_profilname.log
  Ausschluss:
  eMail-Versand an:     xx@xx.xx
Versuche Sicherungsziel (/backup-remote-ftp) einzuhängen...OK.
Das Sicherungsziel ("/backup-remote-ftp") wurde erfolgreich eingehängt.

  Profil "profilname" wird in 5 Sekunden gestartet
  Zum Abbrechen [Strg] + [C] drücken
  Zum Pausieren [Strg] + [Z] drücken (Fortsetzen mit \"fg\")

Sicherung startet (Profil: "profilname")
/usr/local/sbin/MV_Backup.sh: line 550: /backup-remote-ftp/2017-08-02_profilname.log: Operation not supported
/usr/local/sbin/MV_Backup.sh: line 551: /backup-remote-ftp/2017-08-02_profilname.log: Operation not supported
-> Starte Sicherung (rsync)...
/usr/local/sbin/MV_Backup.sh: line 557: /backup-remote-ftp/2017-08-02_profilname.err.log: Operation not supported


Profil "profilname" wurde mit Fehler (1) abgeschlossen
Weitere Informationen sowie Fehlermeldungen sind in der Datei:
"/backup-remote-ftp/2017-08-02_profilname.log" gespeichert.

Erstelle Archiv "Logs_2017-08-02-1948.tar.xz" mit 1 Logdatei(en)...
tar: /backup-remote-ftp/2017-08-02_profilname.log: Cannot stat: No such file or directory
tar: Exiting with failure status due to previous errors
Erzeuge Text für die eMail...
Sende eMail an xx@xx.xx...
Aug 02 19:48:33 gurk sendEmail[50216]: Email was sent successfully!

==> Sicherungs-Bericht wurde mit "sendEmail" an xx@xx.xx versendet.
    Es wurde(n) 1 Logdatei(en) angelegt.
Zuvor eingehängte Sicherungsziele werden wieder ausgehängt...


Sicherung(en) abgeschlossen.

Irgendwas mit dem speichern der Logs auf dem Remote-Ziel funktioniert glaube ich nicht...
Das mounten durch das Script funktioniert aber. Ich konnte während der Ausführung auf den Mount zugreifen.
 
Zuletzt bearbeitet von einem Moderator:
Hat denn die Sicherung geklappt?
Möglicherweise liegt es an den Zugriffsrechten.

Auf die schnelle gefunden:

Vielleicht kann man bei den Optionen von curlftpfs was machen:
Code:
curlftpfs#myusername:mypassword@ftp.mydomain.com /mnt/myftp fuse allow_other,rw,user,noauto 0 0
( )

Viel testen kann ich hier momentan leider nicht.
 
Wenn die Sicherung klappt, dann könnte man das Log einfach lokal ablegen...
Beispiel:
Code:
log[$nr]="/var/log/${title[$nr]}/$(date +%F)_${title[$nr]}.log"
 
Hallo,

bin auf das script gestoßen und ganz begeistert.
Leider fehlt mir da irgendwas und zwar eine Gesamtfortschrittsanzeige wärend des Vorgangs.
Gibts das schon oder wie kann man das bewerkstelligen?

gruss
 
In der .conf einfach das ändern:

Code:
# Optionen für rsync; Verzeichnisse dürfen nicht angegeben werden
RSYNC_OPT=("-savPbh" "--delete" "--numeric-ids" "--stats")
in
Code:
# Optionen für rsync; Verzeichnisse dürfen nicht angegeben werden
RSYNC_OPT=("-savPbh" "--delete" "--numeric-ids" "--stats" "--progress")

Zeigt dann den Fortschritt der einzelnen Dateien. Ein Gesamtfortschritt geht nicht
 
Ah, Danke.

Habs probiert aber es zeigt nur "Starte Sicherung (rsync)…" an und keinen Fortschritt.
Muss da evtl. noch etwas eingestellt werden.
 
Dann muss ich mal schauen. Vermutlich landet alles im Log

Dachte ich mir...
In Zeile 632:
Code:
            --backup-dir="$BAK_DIR" "${SOURCE}/" "$R_TARGET" >/dev/null 2>> "$ERRLOG"
kannst Du mal das ">/dev/null" entfernen und testen.
Weitere Zeilen sind je nach Modus: 629, 685, 761, 782
 
Zuletzt bearbeitet von einem Moderator:
Habe da noch eine Frage.
Ich will als erstes ein Komplettbackup des Systems machen und dann nur das alles geänderte darauf aktualisiert wird.
Leider scheint er das Update jedesmal komplett zu machen.
Kann es aber nicht genau sagen, dauert auf alle Fälle ewig.

Hast Du eine Idee warum?
 
rsync vergleicht die Dateien im Ziel mit der Quelle. Normalerweise werden nur Unterschiede gesichert. Wenn jedes mal alles gesichert wird, dann musst Dumal in den Logs schauen, was die Ursache ist. Wie sind denn Quelle und Ziel eingehängt?
 
Für die Nutzung dieser Website sind Cookies erforderlich. Du musst diese akzeptieren, um die Website weiter nutzen zu können. Erfahre mehr…