Basic Backup Basic Backup

TJones

Benutzer
Mitglied seit
21. Dez 2021
Beiträge
16
Punkte für Reaktionen
1
Punkte
3
Ich habe momentan keine Antwort auf dieses Verhalten. Du könntest versuchen, den Backup Auftrag direkt auf der Konsole auszuführen. Dazu musst du dich als root auf der Konsole anmelden um dort den Ausführungsbefehl für das Backup einzugeben, wie z.B.

bash /usr/syno/synoman/webman/3rdparty/BasicBackup/rsync.sh --job-name="Externe Sicherung auf WHS"

Mit etwas Glück wird dir ein Fehler ausgeworfen, der hier weiterhelfen könnte. Das überhaupt kein Protokoll geschrieben wird ist eher ungewöhnlich, auch kann ich dieses Verhalten bei mir zur Zeit nicht nachstellen, was das alles noch schwieriger macht.
Hallo Tommes, nur als Rückmeldung. Der Fehler lag daran, dass unerklärlicherweise kein /root Verzeichnis mehr vorhanden war. Das hat dazu geführt, dass genau keine Aufgabe des Aufgabenplaners ausgeführt wurde. Ich habe dann ein neues /root Verzeichnis angelegt und schon ging es :)

Hier aber eine Fehlermeldung, die ich nicht zuordnen kann:

rsync: close failed on "/volume1/Backup
WHS/BackupWHS/Hauptversion/Fotos/2017/20170410_Dam\#303\#274ls/.20170410114.NEF.QyIAPg":
Input/output error (5)
rsync error: error in file IO (code 11) at receiver.c(974) [receiver=3.1.2]

### Rsync meldete den Exit-Code 11: Fehler bei Datei I/O


Kannst Du damit etwas anfangen?

VG
tj
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.673
Punkte für Reaktionen
1.574
Punkte
314
Hi!

Das mit dem fehlenden /root Ordner ist aber schon komisch. Normal ist das jedenfalls nicht. Aber gut, hast den Fehler gefunden und wir können einen Haken dahinter machen.

Ein rsync Error 11 könnte auf zu wenig Speicherplatz im Ziel hindeuten. Ich finde deine Sonderzeichen im Pfad auch nicht sonderlich förderlich, grade das \ oder der . gleich hinter dem / also das hier… /.20170410114.NEF.QyIAPg

Unter Linux ist das so, das wenn ein Verzeichnis oder eine Datei mit einem Punkt beginnt, dann wird diese als „versteckt" deklariert, wird im Normalfall also nicht mehr angezeigt. Das könnte natürlich auch dazu führen, das rsync da ins straucheln kommt.

Ich würde bei Ordner und Dateinamen nach Möglichkeit auf Sonderzeichen und Umlaute verzichten, bis auf die Zeichen - und _. Manchmal kann ein Leerziechen schon für böse Überraschungen sorgen, grade bei Linux.

Schau mal, ob dir das hilft, ansonsten meld dich gerne noch mal.

Tommes
 

luddi

Benutzer
Sehr erfahren
Mitglied seit
05. Sep 2012
Beiträge
3.259
Punkte für Reaktionen
601
Punkte
174
Unter Linux ist das so, das wenn ein Verzeichnis oder eine Datei mit einem Punkt beginnt, dann wird diese als „versteckt" deklariert, wird im Normalfall also nicht mehr angezeigt. Das könnte natürlich auch dazu führen, das rsync da ins straucheln kommt.
rsync hat überhaupt kein Problem mit versteckten Dateien. Ganz im Gegenteil, rsync ist der Dateiname völlig egal... ✌️

Wenn man versteckte Dateien mit rsync vermeiden möchte, dann muss man dies explizit über ein exclude angeben.
Für versteckte Dateien --exclude=".*" und für versteckte Verzeichnisse --exclude=".*/"
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.673
Punkte für Reaktionen
1.574
Punkte
314
Daher sagte ich ja auch „nicht förderlich“. Die Frage ist daher erst mal, ob es @TJones bewusst ist, das er mit dem Punkt eine versteckte Datei erzeugt. Mir macht auch weniger der Punkt sorgen, sondern eher der Backslash in seinem Pfad. Ob das am Ende der Grund ist, das es zu einem error-Code 11 kommt, weiß ich nicht… da ich nicht alles teste bzw. nachstelle, was hier an Problemen angefragt wird.
 
Zuletzt bearbeitet:

luddi

Benutzer
Sehr erfahren
Mitglied seit
05. Sep 2012
Beiträge
3.259
Punkte für Reaktionen
601
Punkte
174
Hi @Tommes, ich verstehe dich vollkommen, nicht alles zu testen bzw. nachzustellen was hier an Problemen angefragt wird.
Dennoch habe ich nur den zitierten Teil kommentiert worin du explizit den Punkt im Dateinamen erwähnst. Und genau allein hierzu habe ich mich geäußert.

Und generell stimme ich dir zu, solche Zeichen wie diese Backslashes zu vermeiden [..]/20170410_Dam\#303\#274ls/.20170410114.NEF.QyIAPg

Mich würde es nun auch interessieren wie der Pfad von @TJones aussieht.
Handelt es sich hierbei um genau ein einziges Verzeichnis "20170410_Dam\#303\#274ls/" oder sind dies in Summe drei aufeinanderfolgende Verzeichnisse wie:
  • "20170410_Dam"
  • "#303"
  • "#274ls"
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.673
Punkte für Reaktionen
1.574
Punkte
314
Und genau allein hierzu habe ich mich geäußert.
Ob rsync Verzeichnisse oder Dateien mit einem vorangestellten Punkt automatisch inkludiert oder nicht, habe ich ehrlich gesagt nie getestet. Ebenso wenig, ob rsync wegen dieses Umstandes einen Error-Code ausspuckt, wenn es auf solch ein Konstrukt stößt. Letzterss hätte ich aber auch für sehr abwegig gehalten. Von daher danke ich dir natürlich für deine Erklärungen, können den Punkt als Fehlerquelle wohl ausschließen und ich muss das nicht selber durchtesten. ;)
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.673
Punkte für Reaktionen
1.574
Punkte
314

Basic Backup Version 0.6-001 vom 23.02.2022

(...sobald von den Machern von CPHub freigegeben!)
  • Bei der Umstellung des Sprachdateisystem wurde versäumt, die Hilfe-Dateien entsprechend anzupassen. Fehler wurde behoben.

Die Version 0.6-000 wurde heute Morgen von den Machern von CPHub freigegeben. Ich hatte eigentlich gehofft, das das Paket noch einmal zurückgezogen wird, um den o.a. Fehler noch zu korrigieren. Dem war dann aber nicht so. Aus diesem Grund schiebe ich noch dieses Mini-Update nach.
 
  • Like
Reaktionen: eMBae

TJones

Benutzer
Mitglied seit
21. Dez 2021
Beiträge
16
Punkte für Reaktionen
1
Punkte
3
Hallo allerseits, entschuldigt, dass ich euch so in Verwirrung stoße :)

Die eigentliche Datei in dem Folder hat folgenden Pfad:

/volume1/photo/Fotos/2017/20170410_Damüls/20170410114.NEF

Diesen Pfad / Datei

/20170410_Dam\#303\#274ls/.20170410114.NEF.QyIAPg

gibt es bei mir nicht. Ich habe gerade bewusst noch einmal auf dem Server nachgeschaut. Keine Ahnung, wo dieser Pfad und Dateiname herkommt?
 

luddi

Benutzer
Sehr erfahren
Mitglied seit
05. Sep 2012
Beiträge
3.259
Punkte für Reaktionen
601
Punkte
174
Achso jetzt wird ein Schuh draus... Wenn man einmal genau hinschaut dann fällt folgendes auf.

Das Umlaut "ü" besteht im UTF-8 Format aus zwei HEX Values -> 0xC3 und 0xBC Das was man hier sieht ist die oktale Darstellung der beiden Werte.
C3 (hex) = 303 (octal)
BC (hex) = 274 (octal)

Also entspricht die Zeichenkette \#303\#274 einem Umlaut "ü".

Ich bin mir jetzt selbst nicht sicher warum rsync hier eine versteckte Datei mit dem Suffix ".QyIAPg" anzeigt. Es könnte sich hier um eine temporäre Datei handeln die rsync hier anlegt, was aber eigentlich nicht so vorkommt.

Deshalb würde mich eher einmal interessieren wer ist der owner der Datei "20170410114.NEF" und wie sind die Berechtigungen?
Oder führst du als root/admin den rsync Befehl aus und die Berechtigung der Datei spielt hier keine Rolle?
 
  • Like
Reaktionen: Tommes

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.673
Punkte für Reaktionen
1.574
Punkte
314
@luddi ... du warst den Bruchteil einer Sekunde schneller, denn mittlerweile bin ich auch dahinter gekommen. Ich musste aber erst auf diese Seite aufmerksam werden, um zu verstehen um was es geht. Freut mich, das wir so auf das gleiche Ergebnis gekommen sind. Nur das mit dem Suffix ist mir auch noch ein Rätsel.
 

TJones

Benutzer
Mitglied seit
21. Dez 2021
Beiträge
16
Punkte für Reaktionen
1
Punkte
3
Was Ihr alles wisst ... Ich kann nur vermuten, dass Basic Backup rsync als root/admin ausführt (oder verstehe ich das falsch?). Erstaunlicherweise scheint der Fehler ja bei diesem Bild aufgetreten zu sein, nicht aber bei den restlichen 79.999 .
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.673
Punkte für Reaktionen
1.574
Punkte
314
Das eigentliche rsync-Script von Basic Backup muss und kann nur als root ausgeführt werden, ansonsten wird das Script garnicht erst ausgeführt, da...

Bash:
if [ "${whoami}" != "root" ]; then
    ...
    ..
    exit
fi

Scheinbar liegt bei dieser Datei von dir ein Problem mit dem Zeichnsatz vor, so das UTF-8 das nicht richtig interpretieren kann... warum auch immer. Ich denke das sich das Problem lösen sollte, wenn du die Datei umbenennst und aus dem ü ein ue machst. Kannst das ja mal testen. Ob das Problem nur an rsync oder an deinem Programm bzw. Gerät liegt, welches die Datei erstellt hat, kann ich dir aber nicht beantworten. Vielleicht hat @luddi da noch eine Idee oder gar eine Antwort drauf.
 

TJones

Benutzer
Mitglied seit
21. Dez 2021
Beiträge
16
Punkte für Reaktionen
1
Punkte
3
Puh, wenn ich alle "ü" Ordner umbenennen muss, bin ich ein paar Wochen beschäftigt ... :D
 

luddi

Benutzer
Sehr erfahren
Mitglied seit
05. Sep 2012
Beiträge
3.259
Punkte für Reaktionen
601
Punkte
174

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.673
Punkte für Reaktionen
1.574
Punkte
314
Aber du hast ja selbst geschrieben...
Erstaunlicherweise scheint der Fehler ja bei diesem Bild aufgetreten zu sein, nicht aber bei den restlichen 79.999
... von daher sollte das ja nicht so viel Aufwand sein. Aber selbst wenn du alle anderen Dateien umbenennen müsstest, würde ich damit noch warten. Vielleicht hat ja noch jemand eine Idee woran das liegen könnte und wie man das Problem "schonender" lösen könnte.
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.673
Punkte für Reaktionen
1.574
Punkte
314
@TJones
Bist du ein Windows, Mac oder Linux User?

Ich erinnere mich grade daran, das wir bei Ultimate Backup mal ein ähnliches Problem hatten, kann den Beitrag aber grad nicht finden. In diesem Zusammenhang könnte das hier vielleicht helfen oder zumindest einen Denkanstoß für eine mögliche Lösung geben. Ich müsste jetzt nur schauen, wie du das in Basic Backup eingebaut bekommst um das mal zu testen... ich probier mal grad was...

Nachtrag: Wie gut, das ich in der GUI ein Feld "rsync Optionsschalter" eingebaut habe. Darüber könnte man die im Link angesprochenen Optionen anhängen. Aber erstmal abwarten...
 
Zuletzt bearbeitet:

TJones

Benutzer
Mitglied seit
21. Dez 2021
Beiträge
16
Punkte für Reaktionen
1
Punkte
3
Braver Windows user. Wie gesagt, mich wundert nur, dass er bei so vielen "Ü" Ordnern klaglos synct, aber bei dem einen (und der darinliegenden einen Datei) bockt ...
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.673
Punkte für Reaktionen
1.574
Punkte
314
Was Linux angeht, so wundert mich langsam nichts mehr 😏

Egal ob Leerzeichen, Sonderzeichen, Umlaute, Zeilenende, Zeilenumbruch etc. ... all das, womit Benutzer unter Windows so gut wie gar nicht konfrontiert werden, kann dich unter Linux in den Wahnsinn treiben. Grad in den Anfängen hatte ich damit meine liebe Mühe, als ich mit dem Notepad++ Editor für Windows ein Shell Script in ISO-8895-1 geschrieben habe, es dann auf die DS geladen habe und es lief nicht. Mehrere Text-Editoren unter Linux suggerierten mir auch, das mein Script in Ordnung sei, bis im letzten Editor dann... ich glaub es war vi oder nano... an jedem Zeilenende ein ^M zu sehen war, was für einen Zeilenumbruch stand. Genau das war der Grund, das mein Script nicht lief... das glaubt dir kein Mensch. Seit dem läuft bei mit alles als UTF-8 wenn es mit Linux in Kontakt kommen könnte.

Von daher... wenn du wissen willst, warum das bei dir so passiert ist, dann musst du dich auf die Suche begeben und nach möglichen Lösungen ausschau halten. Sowas kann man nur rausfinden, wenn man das Problem selber hat. Da ich das Problem nicht habe und auch nicht einfach so nachstellen kann, ist es für mich schwer, dir diese Frage zu bantworten. Aber zumindest haben wir den Fehler gefunden. Das ist doch schon mal was

Tommes
 

luddi

Benutzer
Sehr erfahren
Mitglied seit
05. Sep 2012
Beiträge
3.259
Punkte für Reaktionen
601
Punkte
174
Ich bin mir jetzt selbst nicht sicher warum rsync hier eine versteckte Datei mit dem Suffix ".QyIAPg" anzeigt. Es könnte sich hier um eine temporäre Datei handeln die rsync hier anlegt, was aber eigentlich nicht so vorkommt.
Nun bin ich mal wieder an dem Punkt angekommen an dem ich mich selbst zitieren möchte... :D:rolleyes:
Also diesen Punkt habe ich wohl für mein Verständnis geklärt und leuchtet mir auch ein. Somit habe auch ich wieder etwas neues dazu gelernt.

rsync verwendet die mktemp(3) POSIX Funktion um eine eindeutige temporäre Datei zu erstellen. Im Grunde übergibt man der Funktion mktemp ein Template String und sie gibt einen Dateinamen zurück wobei alle "X"-Zeichen des Templates mit einem Zufalls-Zeichen ersetzt werden.
Zumindest kann man erkennen, dass rsync der mktemp Funktion ein Tepmplate mit 6 "X" übergibt welches dem Dateinamen angefügt wird.

Mit der mktemp(1) POSIX können wir das ganze einmal über die Kommandozeile beispielhaft ausführen um zu sehen was passiert.
Mit mktemp -u "dateiname.XXXXXX" folgt z.B. folgende Ausgabe: dateiname.h1yhBU

Also legt rsync per default zunächst parallel im gleichen Verzeichnis eine eindeutige Kopie der originalen Datei an, welche zum einen versteckt (Präfix mit Punkt ".") ist und zum anderen das Suffix ".XXXXXX" mit 6 Zuffallszeichen enthält.

Es gibt aber auch folgende Möglichkeiten:
a.)
man verwendet den Optionsparameter -T, --temp-dir=DIR
Hiermit kann man ein Verzeichnis angeben in welchem die temporären Dateien angelegt werden bevor sie an ihr Zielverzeichnis kopiert werden.
Dies macht zum einen Sinn, wenn die verwendete Partition nicht genügend Speicher zur Verfügung bereit hält als die größte vorhandene zu synchronisierende Datei.
Kann aber auch für andere Zwecke verwendet werden, siehe dazu rsync(1) man page.

b.)
Die andere Option wäre z.B. --inplace
Anstelle zuerst eine temporäre Kopie zu erstellen verzichtet rsync hierbei darauf und überträgt die Datei direkt an das angegebene Zielverzeichnis.
Auch hier gibt es wiederum Vor- als auch Nachteile.
Ein nicht ganz unwichtiger zu erwähnender Nachteil ist, dass die übertragene Datei in eine nicht konsistenten Zustand verbleiben kann falls sie nicht korrekt übertragen wurde. Sei es durch ein unterbrochenen Dateitransfer oder ein update fehlgeschlagen ist.
Und die Warnung sollte man auch nicht ignorieren: Man sollte diese Option nicht verwenden um Dateien zu aktualisieren auf welche von anderen zugegriffen wird.


Aus meiner Sicht bleibt eigentlich nur noch zu klären, wer hier das Problem verursacht. Ist es rsync selbst oder die Funktion mktemp?
Ich könnte mir vorstellen, dass mktemp(3) hier den Umlaut in einer anderen Kodierung zurück gibt, und rsync weiß nichts damit anzufangen bzw. kennt somit den Pfad und auch die Datei nicht. Also findet rsync die Datei nicht auf dem Dateisystem.

Mir persönlich ist solch etwas noch nie über den Weg gelaufen obwohl ich bisher einige Systeme mit rsync betreut habe auf denen auch eine große Anzahl an Umlauten zu finden ist.
Auch die aktuellen Tests, sei es auf einer Diskstation selbst oder auf einem anderen Linux basierten OS, haben keine Fehler mit Umlauten erzeugt.
 
  • Like
Reaktionen: Tommes

luddi

Benutzer
Sehr erfahren
Mitglied seit
05. Sep 2012
Beiträge
3.259
Punkte für Reaktionen
601
Punkte
174
Noch etwas gefunden... bin mir aber nicht sicher ob das hiermit verwandt ist.
rsync bietet folgenden Optionsparameter: -8, --8-bit-output

Geht auf jeden Fall in diese Richtung mit backslash (\), hash (#) und gefolgt von 3 oktalen Ziffern.
-8, --8-bit-output
This tells rsync to leave all high-bit characters unescaped in the output instead
of trying to test them to see if they’re valid in the current locale and escaping
the invalid ones.
All control characters (but never tabs) are always escaped,
regardless of this option’s setting.

The escape idiom that started in 2.6.7 is to output a literal backslash (\) and a
hash (#), followed by exactly 3 octal digits.
For example, a newline would output
as "\#012". A literal backslash that is in a filename is not escaped unless it is
followed by a hash and 3 digits (0-9).

Ich selbst habe jetzt kein passendes Bespiel bzw. ich kann keines herbeiführen. Vielleicht aber könnte dies helfen.
Aber aus diesem Grund könnten wir die besagte Zeichenfolge "\#303\#274" sehen.

Quelle: UnderstandingEncodings
The ASCII character set defines the first 128 (0..127) of these integer codes. Characters from the ASCII character set are referred to as 7-bit characters because they can all be represented using the lower 7 bits of a byte.


When bit 8 of a byte is set,
another 128 characters (128..255) are available within a single byte. These are referred to as the high bit characters. In Western European 8-bit character sets (iso-8859-*), high bit characters are used for accented characters (umlauts, cedillas etc) and some standard symbols. When added to ASCII, this single-byte range covers many Western alphabets.

Ein Versuch wäre es zumindest wert, den Optionsschalter "--8-bit-output" anzuwenden um zu sehen was passiert und ob die Fehlermeldung bleibt oder dann evtl. sogar eine andere ist oder aber auch sauber durchläuft.
 
  • Like
Reaktionen: Tommes


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat