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.
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.