Aus den Angeln hebender Reinfall bei Backup ins Internet

Sep 08, 2026 Last reply: 21 minutes ago 37 Replies

Hallo, ich hatte immer mal wieder von meinem dreistufigen Backup-Konzept geredet. Ich mußte gerade in den letzten Tagen eine weitere Kategorie hinzufügen.



Meine dritte Stufe - Backup ins Internet - hatte ich im Juli erfolgreich in Betrieb genommen. Vier große (je 3..7 GB) verschlüsselte tar-Archive sind hochgeladen. Geplant ist, daß das BAK dort einfach liegt und auf einen Bedarfsfall wartet. Ungefähr alle drei Monate könnte das BAK (teilweise) aktualisiert werden.



Zu aktueller Zeit (Sept) wollte ich mal teilweise neu hochladen. Das funktionierte jedoch _diesmal_ nachhaltig nicht !!!



Ich analysierte zwei Tage lang gründlich und fand heraus, daß beim Hochladen nach jeweils



20 bis 30 Minuten die Verbindungen absichtlich aus zeitlichen Gründen gekappt wurden! Gekappt wurde nach 47..86% der vollen Datenmenge. Diese jeweils zerbrochene Pipe hatte die Dateien am Zielort zerstört.

Folglich habe ich eine Umgehung dieses Problems entwickelt. Nämlich ein Skript 'fsplit.bish', das eine Datei automatisch in mehrere kleinere Dateien zerlegt. Und ein Skript 'fcat.bish', das automatisch mehrere Teil-Dateien wieder zusammenführt.



formatting link
Test-Ausgaben: ========================================================================================================= bish fsplit.bish /big/bak/u.tar.ehu 7600000001 |/big/bak|u.tar.ehu| |u|.tar.ehu| catv 0,2000000000,3 =4 4>/big/bak/u1.tar.ehu catv 2000000000,2000000000,3 =4 4>/big/bak/u2.tar.ehu catv 4000000000,1800000001,3 =4 4>/big/bak/u3.tar.ehu catv 5800000001,1800000000,3 =4 4>/big/bak/u4.tar.ehu Trockentest



bish fsplit.bish J:/scan/scanf1.jpg 300000 |J:/scan|scanf1.jpg| |scanf1|.jpg| catv 0,300000,3 =4 4>J:/scan/scanf1#1.jpg fin=0 catv 300000,300000,3 =4 4>J:/scan/scanf1#2.jpg fin=0 catv 600000,300000,3 =4 4>J:/scan/scanf1#3.jpg fin=0 catv 900000,300000,3 =4 4>J:/scan/scanf1#4.jpg fin=0 catv 1200000,300000,3 =4 4>J:/scan/scanf1#5.jpg fin=0 catv 1500000,275858,3 =4 4>J:/scan/scanf1#6.jpg fin=1 catv 1775858,275857,3 =4 4>J:/scan/scanf1#7.jpg fin=2 offs=2051715 insz=2051715



bish fsplit.bish "D:/BAK/aufnahme1803/DVD VR/VIDEO_TS/VTS_01_1.VOB" 200000000 |D:/BAK/aufnahme1803/DVD VR/VIDEO_TS|VTS_01_1.VOB| |VTS_01_1|.VOB| catv 0,200000000,3 =4 4>D:/BAK/aufnahme1803/DVD VR/VIDEO_TS/VTS_01_1#1.VOB fin=0 catv 200000000,200000000,3 =4 4>D:/BAK/aufnahme1803/DVD VR/VIDEO_TS/VTS_01_1#2.VOB fin=0 catv 400000000,200000000,3 =4 4>D:/BAK/aufnahme1803/DVD VR/VIDEO_TS/VTS_01_1#3.VOB fin=0 catv 600000000,200000000,3 =4 4>D:/BAK/aufnahme1803/DVD VR/VIDEO_TS/VTS_01_1#4.VOB fin=0 catv 800000000,136838144,3 =4 4>D:/BAK/aufnahme1803/DVD VR/VIDEO_TS/VTS_01_1#5.VOB fin=1 catv 936838144,136838144,3 =4 4>D:/BAK/aufnahme1803/DVD VR/VIDEO_TS/VTS_01_1#6.VOB fin=2 offs=1073676288 insz=1073676288



bish fcat.bish "D:/BAK/aufnahme1803/DVD VR/VIDEO_TS/VTS_01_1#1.VOB" |D:/BAK/aufnahme1803/DVD VR/VIDEO_TS|VTS_01_1#1.VOB| |VTS_01_1#1|.VOB| |D:/BAK/aufnahme1803/DVD VR/VIDEO_TS/VTS_01_1_cat.VOB|VTS_01_1| catv 3 =4 3<D:/BAK/aufnahme1803/DVD VR/VIDEO_TS/VTS_01_1#1.VOB catv 3 =4 3<D:/BAK/aufnahme1803/DVD VR/VIDEO_TS/VTS_01_1#2.VOB catv 3 =4 3<D:/BAK/aufnahme1803/DVD VR/VIDEO_TS/VTS_01_1#3.VOB catv 3 =4 3<D:/BAK/aufnahme1803/DVD VR/VIDEO_TS/VTS_01_1#4.VOB catv 3 =4 3<D:/BAK/aufnahme1803/DVD VR/VIDEO_TS/VTS_01_1#5.VOB catv 3 =4 3<D:/BAK/aufnahme1803/DVD VR/VIDEO_TS/VTS_01_1#6.VOB Datei-Test negativ: 'D:/BAK/aufnahme1803/DVD VR/VIDEO_TS/VTS_01_1#7.VOB' SHA2-256 (D:\BAK\aufnahme1803\DVD VR\VIDEO_TS\VTS_01_1_cat.VOB) = 9d7182f64ed5fae0a84fdf772f292f020bebd155e2bf3839cb5520bf2cd2b6c3 SHA2-256 (D:\BAK\aufnahme1803\DVD VR\VIDEO_TS\VTS_01_1.VOB) = 9d7182f64ed5fae0a84fdf772f292f020bebd155e2bf3839cb5520bf2cd2b6c3



bish fsplit.bish J:/u.tar |J:|u.tar| |u|.tar| catv 0,2000000000,3 =4 4>J:/u1.tar fin=0 catv 2000000000,1802174464,3 =4 4>J:/u2.tar fin=1 bish: G:\tmp\Helmut\bish\fsplit.bish[60]: Fehler bei Systemfunktion: 'lseek()' =========================================================================================================



Die Skripte funktionieren bestens.



Ich habe unter _Windows_ einen 32bit-Compiler 'bcc32x.exe' verwendet, der bewirkt, daß manche System-Funktionen bei sehr großen Dateien versagen. Die fehlgeschlagene Ermittlung der Dateigröße konnte ich mittels des Win-Kommandos DIR umgehen. Insgesamt nützt das (Fstat statt fstat) aber nichts, wie oben sichtbar ist (lseek).


2000000000 2000000000 2000000000 1 Ich habe so entwickelt, daß vorstehende Dateigrößen bei Zerlegung nicht vorkommen können. Die Dateigrößen sind fallend. Die Skripte sind automatisch, sicher und robust, durch besonders viel untersuchenden Code.

Das Syntax-Highlighting zeigt, daß mit meinen Werkzeugen die Skripte übersichtlich und gut lesbar sind.



... von wem ...?

... mit welcher Methode ...?

Logs or it didn't happen.

Mach noch fünfzig Iterationen und Du hast sowas wie rsync.

Grüße Marc

Ich verwendete unter FreeBSD die Kommandos 'sftp' und 'scp' (scp -pC). Mit scp kam ich jeweils etwas weiter als mit sftp, wegen Komprimierung. Meine Kommandos meldeten stets, daß die Übertragung durch den remote host abgebrochen wurde - broken pipe. 'scp -pC -i /home/.ssh/id_ecdsa \!:1 u1234567@home7654321.1and1-data.host:\!:2'

Ich versuchte an den beiden Testtagen mindestens 6 Uploads, die alle abgebrochen wurden. Die Geschwindigkeit betrug 2..3 MB/s. Tage später lag 5,1 MB/s vor, und der Upload von >7 GB gelang ohne Abbruch in etwa 13 Minuten. Meine Testergebnisse sind halt eindeutig.

Im Zielverzeichnis liegen die Zieldateien nun mit zu geringer Abbruch-Size. Sie werden zu Beginn des Uploads truncated...

rsync verwende ich bei meinen ersten Backup-Methoden HDD und CARD in offenen Dateisystemen. 'rsync -aHAXivh --stats --progress --modify-window=5 --exclude-from=/u/sh/cmd/safe_excl'

Google, Übersicht mit KI, <cloud-providerr pleite>: "Wenn ein Cloud-Provider Insolvenz anmeldet, droht Kunden oft der Verlust oder die Sperrung ihrer Daten, wie der aktuelle Fall des US-Senders „Nine PBS“ zeigt, dessen 70-jähriges TV-Archiv bei dem pleitegegangenen Anbieter „Open Source Storage“ blockiert wurde."

formatting link
"24. April 2024 um 09:05 Worst-Case-Szenario tritt ein Cloudanbieter geht durch Hackerangriff pleite"

formatting link
"01.07.2019 Wenn der Cloud Provider Konkurs geht: Was geschieht mit meinen Daten?"

formatting link
. "Cloud Anbieter pleite ?? Alle Daten weg und jetzt???"

[Das sind erstmal nur Werbeassagen :-).]

Grüße, H.

Deshalb muss man, wenn man die Cloud benutzt, auch immer noch lokale Backups haben.

Gerrit

Logs or it didnt happen.

Ich möchte sehen was die Applikation auf der Konsole gesagt hat, was sie in ihre Logs geschrieben hat, und was gleichzeitig auf dem Netz los war.

Du hast ja nichtmal gesagt, wo das Ziel der Kopieraktion ist, ob Firewall, Middlebox oder Zwangstrennung im Spiel ist, etc.

So debuggen Zehnjährige.

Ja und warum nicht hier?

Wie es schon vor über 20 Jahren hiess: "One day I'll find peer and reset HIS connection!"

^^^^^^^^^^^^^^^^^

Kaputte Dateisysteme im Einsatz?

Man liest sich, Alex.

Irrelevant. Warum? Ich lade zu meiner Webseite hoch (keine Cloud!). Die hat beinahe noch 100% space frei, bei IONOS. (Vormals bei Schlund&Partner, die von 1und1 gekauft wurde.) Dort habe ich zudem sftp, scp, ssh.

Das ist ja ein Hohn - ohne mich.

Für mich irrelevant. Ich verwende keine Cloud, sondern meine Webseite, die seit Jahrzehnten besteht.

Ich habe auf der Wurzel meines Webspace ein Verzeichnis /log. Daraus veröffentliche ich - nach Aufarbeitung - aber nichts.

Ich habe kein Debugging betrieben, sondern die Fehlerausgaben zum Bildschirm allein reichen mir meistens voll aus.

Wenn da mein Kommando meldet, die Verbindung sei vom remote Host unterbrochen worden, und ich sehe wieder das Prompt meiner aufrufenden Shell, nach der Progress-Anzeige, so reicht mir das völlig - es ist eindeutig, weitere Daten brauche ich nicht. Ich mache mir doch keine _unnötige_ zusätzliche Arbeit!

Ich bin ein Profi mit großer Erfahrung. Genau deshalb komme ich ohne Zusatzarbeit aus.

Ich hatte schon seit 2002 bei meinem letzten Arbeitgeber 'rsync ... user@server' remote (im Home-Arbeitszimmer) intensiv verwendet. Viele Kommunikations-Aliase für die 'csh' habe ich damals beruflich angelegt.

Ich hatte hierzu beim ersten Mißerfolg nach wenigen Sekunden erkannt, daß die beiden Skripte, die ich nun entwickelt habe, unbedingt notwendig sein werden. Und genau dies bestimmte ausschließlich meinen weiteren Weg in dieser Angelegenheit!

Ich werde große BAK-Dateien nur noch in gesplitteter Form erfolgreich hochladen. Die Notwendigkeit eines Downloads ist ja äußerst unwahrscheinlich.

Das wäre mir nicht professionell genug - und unangenehm!

Ich will jeden Schritt voll in meiner bestimmenden Hand und auf meiner Workstation haben. Der abschließende Schritt des _bloßen_ Transports liegt dann eben nicht mehr voll in meiner Hand. Diesen Schritt kann ich aber _beliebig_ ausgestaltet wiederholen.

[...]

Als Aechter Profi verzichtest du sicherlich auf screen(1)?

Ich verfolge keine Ideologien und Ähnliches, und ich bin kein Mitläufer.

Die Optionen sind schon Jahrzehnte alt und berücksichtigen auch FAT-Systeme.

Früher nicht, aber seit neuerer Zeit. Das ist ein Thema, das unterschiedlich zwischen verschiedenen OS ist. Selbst die man-Kategorie als Nummer gibt es nicht auf allen Systemen.

Wie man aus diesem Thread zweifelsfrei sieht, hast Du keine Ahnug was da wirklich passiert und warum es passieren könntest und hast deswegen wie ein erfahrungsloser Teenager einfach etwas ausprobiert.

Das ist das Gegenteil von "Profi".

Und warum tust Du es jetzt nicht, wenn Du schon nicht herausfinden möchtest, warum scp/sftp abbricht? Mit rsync könntest Du nach so einem Abbruch wenigstens nahtlos weiter übertragen.

Gosh! Raketenwissenschaft! Wo hast Du das denn gelernt?

Und CPU-Ressourcenlimits. Wir kommen dem eigentlichen Problem näher.

Wenn Du das auf deinen Webspace hochlädst, versuchst Du wenigstens sicherzustellen dass es außer Dir niemand herunterlädt?

So willst Du mich (krampfhaft) sehen. Du ignorierst jedoch einfach entscheidende Absätze von mir und verdrehst einfach behauptend, damit Dein Ziel erreicht wird.

'rsync' wird bei meiner Webseite nicht unterstützt, sondern 'nur' die ssh-Werkzeuge! Ich weiß genau, warum scp/sftp abbrechen, denn ich habe das einige Tage analysiert. Genannt habe den Abbruch-Grund ebenso, was ebenso von Dir ignoriert wird.

Was soll denn diese blödsinnige Aussage? Ich habe sehr oft verschiedenste Kommunikation mit mehreren Servern meines Arbeitgebers aufnehmen müssen. Deshalb die Aliase, um unnötige Arbeit zu vermeiden. Auf allen diesen Servern lief ein rsync-Dämon. Aussagen wie die vorstehende scheinst Du jedoch nicht zu begreifen zu wollen...

Chuck is back! Haben wir ihn ernsthaft vermisst?

Und weil's so schön ist:

When Chuck Norris throws exceptions, it’s across the room.

All arrays Chuck Norris declares are of infinite size, because Chuck Norris knows no bounds.

Chuck Norris doesn’t have disk latency because the hard drive knows to hurry the hell up.

Chuck Norris writes code that optimizes itself.

Chuck Norris can’t test for equality because he has no equal.

Chuck Norris doesn’t need garbage collection because he doesn’t call .Dispose(), he calls .DropKick().

Chuck Norris’s first program was kill -9.

Chuck Norris burst the dot com bubble.

All browsers support the hex definitions #chuck and #norris for the colors black and blue.

MySpace actually isn’t your space, it’s Chuck’s (he just lets you use it).

Chuck Norris can write infinite recursion functions…and have them return.

Chuck Norris can solve the Towers of Hanoi in one move.

The only pattern Chuck Norris knows is God Object.

Chuck Norris finished World of Warcraft.

Project managers never ask Chuck Norris for estimations…ever.

Chuck Norris doesn’t use web standards as the web will conform to him.

“It works on my machine” always holds true for Chuck Norris.

Whiteboards are white because Chuck Norris scared them that way.

Chuck Norris doesn’t do Burn Down charts; he does Smack Down charts.

Chuck Norris can delete the Recycling Bin.

Chuck Norris’s beard can type 140 wpm.

Chuck Norris can unit test entire applications with a single assert.

Chuck Norris doesn’t bug hunt as that signifies a probability of failure; he goes bug killing.

Chuck Norris’s keyboard doesn’t have a Ctrl key because nothing controls Chuck Norris.

When Chuck Norris is web surfing, websites get the message, “Warning: Internet Explorer has deemed this user to be malicious or dangerous. Proceed?”

Volker

Es ist keine CPU-Belastung der Grund. Die zuständigen Leute bei IONOS wollen wegen des allgemeinen Traffics bestimmte Benutzungsarten unterbinden, nämlich eine Upload-Dauer oberhalb von relevanten Werten wird nicht zugelassen - per Abbruch.

Es kann insbesondere die Tatsache, daß es sich um eine Webseite handelt, der Grund für solche Konfigurationen sein, weil ich absolut atypische Uploads vornehme.

Nein, das ist völlig irrelevant! Diese Dateien sind doch schwer verschlüsselt - unknackbar. 'Kostenlose' Schutzmaßnahmen habe ich allerdings vorgenommen.

Du scheinst ein geistloser Mitläufer zu sein, der einfach vollkommen unbegründete (teils erfundene) Aussagen glaubt. Kindisch und albern.

Das laute Geräusch neben Deinem Ohr war das uralte Zitat, das komplett an die vorbeigesegelt ist. Schon ok.

Also kaputte Dateisysteme, schrieb ich doch.

SCNR, Alex.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required