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)

    Nobody is reading this thread right now.
Es wird nicht per "Default" heruntergefahren. Das passiert nur, wenn der Parameter "-s" mit angegeben wird.

Danke! Hatte ich uebersehn.. ich muss mich noch etwas gruendlicher durch den code lesen.. und.. danke fuer den prompten Support.
Ist eigentlich auch der Grund, warum ich dieses Script gewaehlt habe ;-)


jetzt muss ich doch nochmal auf das Thema zurueck.
Aus der MV_Backup.conf.dist kann ich herauslesen :
Code:
# Optionen für rsync; Verzeichnisse dürfen nicht angegeben werden
RSYNC_OPT=('-savPbh' '--delete' '--numeric-ids' '--stats')

Das heisst, wenn ich die Reihe in der .conf so uebernehmen wuerde, ist als default ein Server shutdown konfiguriert?
Mir fehlen einige rsync parameter, aber soweit ich weiss, wuerde dann -savPbh heissen:
-s = Shutdown after completion
a = equals -rlptgoD
v = verbose
P = --perms
b = ? kenn ich nicht
h = --human-readable
 
Zuletzt bearbeitet von einem Moderator:
Nein! Das sind die Optionen für rsync
-s ist bei rsync:
Code:
 -s, --protect-args          no space-splitting; only wildcard special-chars
und -b, -P:
Code:
-b, --backup                make backups (see --suffix & --backup-dir)
-P                        same as --partial --progress

Edit: Ich habe im GIT mal die config auf besser lesbare rsync-Optionen umgestellt...
 
Zuletzt bearbeitet:
Edit: Ich habe im GIT mal die config auf besser lesbare rsync-Optionen umgestellt...
Ich lerne .. solang ich lebe :blush:
Danke Dir MegaV0lt ! Ist sehr hilfreich(er) fuer semi-dumb-heads, wie mich ..lol

Code:
RSYNC_OPT=('--partial' '--progress' '--protect-args' '--archive' '--human-readable')
RSYNC_OPT+=('--verbose' '--delete' '--numeric-ids' '--stats')
 
Hier mal der Aufruf auf meinem Server (crontab):
Code:
# Backup (8:15h, jeden Samstag)
15 08  * * 6  /usr/local/sbin/MV_Backup.sh -a -d 45 -e root >/dev/null
Läuft jeden Samstag um 8:15 Uhr. Sichert alle Profile (-a), Löscht alte Dateien aus "Gelöschte Dateien" die älter als 45 Tage sind (-d 45) und schickt den eMail-bericht an root (-e root)
 
Hab gerade gesehen, dass ich einen Parameter (--backup) bei den rsync-Optionen vergessen hatte...
Ist im GIT
 
Hallo

Ich muss meinen Root Server bei Hetzner auf ein anderes Serverprodukt umziehen da das Produkt nicht mehr weitergeführt wird....
Jetzt suche ich schon fast verzweifelt eine Möglichkeit das möglichst "schlank" zu bewerkstelligen um nicht alles (prim. DNS, Apache Webserver mit WP, MySql) wieder händisch installieren zu müssen.

Ist das mit diesem Backup Script möglich? Gibt es jemand der Willens wäre mich dabei zu unterstützen?

Gruss, disastrerecover
 
Das wird schwierig, da sich ja sicher auch vieles an der Konfiguration ändert. Machen die die Umstellung nicht automatisch?
Ich habe bei Allinkl schön öfter Tarife gewechselt. Die haben die Umstellung irgendwie autoatisch gemacht. Da waren danach höchstens noch Feinarbeiten nötig. Vielleicht gibt es ja bei Deinem Anbieter ein Forum oder eine Anleitung?

Mit dem Backup-Skript wirst Du das nicht alleine schaffen. Ein Backup zu haben ist aber auf alle Fälle nicht verkehrt.
 
Gibt es die Möglichkeit als Ziel auch einen rsync Deamon anzugeben? Ich habe es Probiert aber bei mir wird der rsync-befehl dann ganz komisch zusammengewürfelt.
Um einen rsync-daemon anzusprechen muss man das Ziel mit "rsync://remote-ip/$freigabe" angeben (oder "remote-ip::$freigabe"). Damit scheint das Script leider nicht klarzukommen.
Ich möchte das gerne verwenden da ich zu meinem Backup-Ziel bereits einen VPN-Tunnel habe und nicht noch weiteren overhead erzeugen möchte, da das Ziel ein Cubietruck ist der mit dem SSL-Tunnel schon gut ausgelastet ist bei hohen Bandbreiten. Ich habe gelesen das der Rsync-Daemon dafür gut geeignet ist.
Besteht die Möglichkeit das mit einzubauen?
Hier mal ein kleiner Artikel dazu:
Running rsync as a daemon
Code:
https://www.jveweb.net/en/archives/2011/01/running-rsync-as-a-daemon.html
Vielen Dank schonmal!
 
Wie ist denn die Konfiguration des Profils?
Log-Datei? Fehlermeldungen?
Wie lautet der komplette Befehl von rsync?

Müsste eigentlich gehen. Ich selbst verwende keinen rsync-Daemon und kann das nicht testen

Ich würde es so versuchen:
Code:
# = = = Vorlage für neues Profil  = = =
((nr+=1))                     # Variable nr um eins hochzählen
     title[nr]='Profil_1'             # Profilname
       arg[nr]='p'             # Argument (-p)
    source[nr]="user@host::module/source/"
    target[nr]="destination/"
 rsync_opt[nr]='-rtv'
# cat > "${exfrom[nr]}" <<_EOF_
#
# _EOF_

Allerdings wird vom Skript viel geprüft und versucht Verzeichnisse anzulegen. Ob es klappt kann ich so nicht sagen.
 
Vielen Dank für die schnelle Antwort. Hier einmal das Profil das ich benutze:
Code:
# = = = Profil 4  = = =
((nr++))                       # Fortlaufende Profil-Nummer
     title[$nr]="gesamt_cubie_remote"     # Profilname
       arg[$nr]="g"            # Argument (-p r)
      mode[$nr]="Normal"             # Modus (Normal, Snapshot oder Multi)
     mount[$nr]=""             # Eigener Einhängepunkt
    ftpsrc[$nr]=""             # Quelle ist ein FTP
    ftpmnt[$nr]=""             # Einhängepunkt für die FTP-Quelle
    source[$nr]="/mnt/backup_usb"
    target[$nr]="${mount[$nr]:-$MOUNT}rsync://remote-ip/pladde"
   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_
Das hier ist das Log mit den Errors. Am Anfang ist auch der Befehl mit dem das Backup gefahren werden soll:
Code:
2019-09-02 16:59 - MV_Backup.sh [#170221] - Start:
rsync -savPbh --delete --numeric-ids --stats --log-file=rsync://remote-ip/pladde/2019-09-02_gesamt_cubie_remote.log --exclude-from=/tmp/MV_Backup.Ly7R/tmp.rsync.qlyh --backup-dir=rsync://remote-ip/pladde/Geloeschte Dateien/2019-09-02 /mnt/backup_usb rsync://remote-ip/pladde/_DATEIEN
2019/09/02 16:59:15 [8620] building file list
2019/09/02 16:59:16 [8620] rsync: mkdir "/_DATEIEN" (in pladde) failed: Permission denied (13)
2019/09/02 16:59:16 [8620] rsync error: error in file IO (code 11) at main.c(682) [Receiver=3.1.3]


Nach Aufruf dieses Profils werden in dem Verzeichnis wo das Script liegt die Verzeichnisse rsync:, remote-ip, und pladde angelegt und dort dann die Logs gespeichert.
Egal welche der beiden Varianten (rsync:// oder remote-ip:: ) ich verwende, die Pfade werden nicht richtig interpretiert.
Daraus schließe ich das das Script die Pfadangabe mit rsync leider nicht unterstützt.
Gibt es eine Möglichkeit dem Script das beizubringen?
Gruß
 
Zuletzt bearbeitet von einem Moderator:
Die Verzeichnise im Ziel (_Dateien und "Geloeschte Dateien") können nicht erstellt werden. Das funktioniert so nicht, da die Syntax rsync.// von mkdir nicht unterstützt wird.

Liegt das Skript auf dem Ziel- oder auf dem Quellsystem? Ich denke mal Quellsystem.

Das passt nicht:
--log: Muss ein Pfad sein, den das Skript sehen kann
--backup-dir: Muss ein Pfad sein, den das Skript sehen kann

Versuche mal den Befehl von Hand in der Shell einzugeben (Ohne Backup, Lokales Log, Zum Testen mit --dry-run):
Code:
rsync -savPh --delete --numeric-ids --stats --log-file=/tmp/2019-09-02_gesamt_cubie_remote.log --exclude-from=/tmp/MV_Backup.Ly7R/tmp.rsync.qlyh /mnt/backup_usb rsync://remote-ip/pladde

Ich denke dazu muss ein neuer "Modus" eingebaut werden, der mit Einschränkungen sein wird (Log, Backup, ...)
 
Ok wenn ich einen dry-run ausführe und die Option --exclude-from... weglasse dann synct er erfolgreich.
Am wichtigsten ist mir eigentlich das ich per Mail eine Rückmeldung zum Backup bekomme. Die Logs können gerne auch lokal in einem definierten Verzeichnis abgelegt werden.
Würde das mit den Excludes denn so auch funktionieren?
Ich kann verstehen wenn das zu viel Aufwand ist das mit einzuprogrammieren. Wenn du sagst das das nicht machbar ist, dann versuche ich für das Profil mir was simples zusammenzubasteln und werde wohl logs und Mail weglassen.
 
Ich habe inzwischen ein wenig gebastelt:

Musst Du mal testen.
--backup ist nicht mehr in den Optionen drin.
Logdatei musst Du lokal erzeugen lassen. Eventuell in /tmp/
Code:
       log[$nr]="/tmp/$(date +%F)_${title[$nr]}.log"
Das mit der Mail müsste klappen, da es viele Einstellungsmöglichkeiten gibt

Dein Skript ist übrigens aus 2017!
Solltest eh updaten ;-)
config.dist nicht vergessen zu migrieren

PS: Die Excludes in der Profilkonfiguration sollten auf jeden Fall funktionieren
 
Zuletzt bearbeitet:
Zurück
Oben