Viele Dateien per FTP übertragen

  • Hallo zusammen.


    Folgende Situation: PC, MS-DOS 6.22, mTCP und FTP (mTCP TCP/IP applications for DOS PCs (brutman.com)), Ethernet... soll viele (über 700) Dateien per FTP an einen FTP Server übertragen.


    - Einzelne Dateien lassen sich mit PUT problemlos übertragen.

    - "Ein paar" Dateien (getestet mit bis zu 10) lassen sich problemlos mit MPUT gleichzeitig übertragen.


    Problem;

    - Bei voller Anzahl an Dateien (über 700, alle im gleichen Verzeichnis, alle ungefähr 1 KB groß) bringt MPUT die Fehlermeldung, dass von der lokalen Datei nicht gelesen werden könne. Es werden jeweils 0 Byte Datein auf dem Zielserver angelegt. Dateinamen sind korrekt, aber es steht halt nix drin.


    Ideen?


    Am Setup kann nichts geändert werden. Hard- und Software sind vorgegeben.

  • Kann der FTP-Client das Kommando auch als Parameter entgegennehmen? Dann könntest du das via Batch-Datei evtl. mit kleiner Pause dazwischen machen.

    Das Genie beherrscht das Chaos

  • Joa...auch schon dran gedacht. Das wäre aber der allerletzte Notausgang und würde zu weiterem Aufwand (=Zeit) führen.

    Würde es gerne ohne zippen realisieren.

    Ähm, Dateien, die im gleichen Verzeichnis liegen, zu zippen dauert meiner Erfahrung nach alles in Allem ein paar Minuten.

    Wenn es dir allerdings um die Erfahrungswerte geht, dann ist das natürlich etwas anderes.

  • Es geht auch noch um das, was danach mit den Dateien geschehen muss. Da hängt noch ein weiterer Rattenschwanz dran der durch das zippen / entzippen länger werden würde. Aber zur Not muss ich das eben so machen.


    ChaosRom

    Ja, der FTP Client kann auch per Script gesteuert werden. Meinst Du, dass per Script jede Datei einzeln geschickt werden soll? Freilich auch denkbar, geht aber mächtig auf die Zeitschiene.


    Was much fuchst ist die Fehlermeldung, dass der Client bei MPUT nicht von der lokalen Datei lesen könne... und mit PUT bzw. MPUT mit wenigen Dateien funktioniert es.

  • Ja, das habe ich bereits getan. Anfangs meckerte der Client herum, dass die Liste der zu kopierenden Dateien zu lang wäre. Daraufhin hab ich die Doku durchgelesen und einen Config-Parameter gefunden, welcher den Listenbuffer hochsetzt. Seither ist zwar die Listen-Fehlermeldung weg, aber es kommt zum eingangs beschriebenen Problem. Scheint ein nicht funktionierender Workaround zu sein.

  • Die Gesamtzahl der zu übertragenden Dateien sollte doch sogar unerheblich sein.

  • Ich mach das so:


    am DOS Rechner mit MTCP den FTP Server starten.

    Dann an einem modernen Rechner Filezilla starten und mit dem DOS Rechner verbinden. Dann kannst du alle Dateien markieren und ziehen.

    Falls der moderne Rechner nicht dein eigentliches Ziel ist, im zweiten Schritt dann mit Filezilla die inzwischen lokalen Daten auf's Ziel bringen.


    So habe ich Mengen von mehreren 100 Dateien bequem bewegt.

    Suche Teile und Geräte für DEC PDP8 Systeme, DEC PDP 11/40 (Unibus) und Teletype ASR-33+ ASR-35. Sowie Zubehör, Doku usw. aus dem Umfeld.

  • Die Gesamtzahl der zu übertragenden Dateien sollte doch sogar unerheblich sein.

    Nicht, wenn die alle zuerst in eine Liste im RAM kommen und diese entweder zu kurz ist, oder das RAM eben nicht reicht. Nicht jeder programmiert intelligent und konservativ. 640KB RAM und 700 Dateinamen, dämlich programmiert könnte das Problem sein. Vielleicht auch ein Fehler in Client, dass der am Ende die übertragene Datei nicht schliesst und damit die Anzahl offener Dateien im DOS überschritten wird. Kannste nicht mehrere FPUT mit Einschränkung machen über den Dateiname, wie z.B: FPUT A*.* FPUT B*.* usw. ?

  • Vielleicht auch ein Fehler in Client, dass der am Ende die übertragene Datei nicht schliesst und damit die Anzahl offener Dateien im DOS überschritten wird.

    Gut, das wäre in der Tat eine Möglichkeit, die ich nicht bedacht hatte....

  • Unter welcher DOS-Version läuft denn der PC? Je nach dem kann man sowas mit einer FOR-Schleife erledigen...


    In der Eingabeaufforderung von Windows geht z.B. sowas:

    Code
    FOR %%x IN (C:\Users\ismail\Desktop\*) DO @echo %%x

    Ich weiß aber nicht, bis zu welcher MS-DOS Version zurück dieses Konstrukt unterstützt wird.

    1ST1

    Einmal editiert, zuletzt von 1ST1 ()

  • Hast du denn Michael Brutman (dem Autor von mTCP) mal eine Mail geschrieben und dein Problem dort dargestellt? Immerhin bittet er ja um Einsenden von Bugs, da wird er sie vermutlich auch beheben wollen.

  • Ein ähnliches Problem hatte ich auch schon mit rsync unter Linux. Ich wollte eine Platte übers Netz auf einen anderen Rechner übertragen. Ist am RAM gescheitert. 4GB reichen nicht bei 3TB in kleinen Dateien (z.B. Bilder) :fp:

    Das Genie beherrscht das Chaos

  • Es gibt noch eine weitere mögliche Engstelle: die Anzahl der sockets, also Verbindungen über IP, die gleichzeitig offen gehalten werden. Bei Desktop-Betriebssystemen ist diese Anzahl nicht unbedingt groß. Es könnte (Konjunktiv!) ein konfigurierbarer Wert sein.


    Da hilft vom Blickwinkel der Anwender-Software nur, die Verbindungen "gestaffelt" zu öffnen. Selbst Windows XP (zu anderen Windowsen habe ich keine Hinweise) macht bei irgendwo deutlich unter 100 gleichzeitig zu öffnenden Verbindungen schlapp.


    Gruß, Ralf

  • Hast du denn Michael Brutman (dem Autor von mTCP) mal eine Mail geschrieben und dein Problem dort dargestellt? Immerhin bittet er ja um Einsenden von Bugs, da wird er sie vermutlich auch beheben wollen.

    Ja, ich habe ihm heute ne Mail geschickt. Mal sehen, was er antwortet.