Christoph Schnauß: FTP-Client mit TCL

guten Abend ;-)

Ich bin grade dabei, mir einen eigenen kleinen FTP-Client mit TCL zu schreiben. Er soll nicht nur FTP können, sondern auch die paar CVS-Adressen, die ich gelegentlich besuche, ansteuern können. Weil das die "normalen" FTP-Clients nicht können (jedenfalls nicht die, die ich bisher kenne), bastle ich mir das Teil halt selber, und TCL als Programmiersprache hab ich genommen, weil ich das Script, wenns denn fertig ist, unverändert in Windows und LINUX einsetzen kann. Außerdem mag ich halt TCL ;-)

Jetzt hänge ich an einer möglicherweise banalen Stelle. Der FTP-Zugang funktioniert zwar prinzipiell, aber ich habe mehrere FTP-Adressen, bei denen ich über einen Account verfüge. Außerdem gibts ein paar große FTP-Server, bei denen ich gelegentlich vorbeischaue, und bei denen ich mich anonym anmelden kann.
Mir wird ganz einfach die Acoount-Abfrage lästig. Und da kriege ich die Speicherung noch nicht hin. Zum Vergleich wollte ich mir eine kleine BAT (unter Windows) schreiben, aber auch das schaffe ich nicht. Man kann ja von der "Eingabeaufforderung" das lokale FTP (Datei ftp.exe in C:\WinXP\system32} aufrufen, ich benutze das manchmal, wenn ich an einen Rechner gerate, auf dem gerade kein anderes FTP-Programm zur Verfügung steht. Da muß man nach dem "open"-Befehl die Adresse eintippen, dann username und Paßwort, und schließlich den gewünschten Befehl  -  zum download beispielsweise "get". Das Vorgehen, der Reihe nach am Programmprompt ein paar Befehle zu tippen, schreit geradezu danach, in einem Script zusammengefaßt zu werden. Hat jemand nen Hinweis, wie das zu machen ist?

Ich kriege bisweilen deutlich komplexere Scripts zum Laufen, aber hier scheitere ich daran, daß das Paßwort abgefragt wird und ich dafür keine Automatisierung hinbekomme.

Grüße aus Berlin

Christoph S.

  1. Hallo,

    Ich kriege bisweilen deutlich komplexere Scripts zum Laufen, aber hier scheitere ich daran, daß das Paßwort abgefragt wird und ich dafür keine Automatisierung hinbekomme.

    Suchst Du etwas in dieser Art?

    [myftp.bat]

    ftp -n -s:commands.txt

    [commands.txt]

    open ftp.abc.de
    user username
    password
    cd x/y
    get xyz.txt
    quit

    MfG, Thomas

    1. hi,

      Suchst Du etwas in dieser Art? [...]

      Ja ! Sieht so einfach aus, aber manchmal gibts ja die berühmte Betriebsblindheit. Du erlaubst, daß ich meine Daten reinsetze *g*

      Grüße aus Berlin

      Christoph S.

  2. Hallo,

    Mir wird ganz einfach die Acoount-Abfrage lästig. Und da kriege ich die Speicherung noch nicht hin. Zum Vergleich wollte ich mir eine kleine BAT (unter Windows) schreiben, aber auch das schaffe ich nicht.

    Mit XP kenn ich mihc zwar nicht aus, aber bisher, also bis einschließlich Win2K konntest Du euch einen Steuerdatei mit den FTP-BEfehlen angaben, um die Kommandos abzuarbeiten (kenn ich noch aus den Zeiten als Solaris SunOS hieß *g*)

    C:> copy CON: command.ftp
    open some.ftp.server
    username
    secretpassword
    ^Z
            1 Datei(en) kopiert.

    C:>
    C:> ftp -s:command.ftp
    D:\schrott>ftp -s:ftp.txt
    ftp> open some.ftp.server
    Verbindung mit dbsrv.mfk.intern wurde hergestellt.
    220 ready
    Benutzer (some.ftp.server:(none)):
    331 Please specify the password.

    230 Login successful. Have fun.
    ftp>
    ftp>
    ftp>
    ftp> quit
    221 Goodbye.

    C:>

    Grüße
      Klaus

    1. hi Klaus,

      Mit XP kenn ich mihc zwar nicht aus

      Das ist in diesem Fall unwichtig, weil es lediglich darum geht, von der "DOS-Ebene", die es in WinXP ja durchaus noch gibt, eine EXE zu starten. Aber:

      C:> copy CON: command.ftp

      Das krieg ich nicht auf die Reihe, wie du das gemeint hast. Es reicht doch aus, wenn ich an der "Eingabeaufforderung" eingebe "ftp". Dann krieg ich eine ftp-Prompt, der so aussieht:
      ftp>

      Und da gebe ich jetzt der Reihe nach ein:
      ftp>open christoph-schnauss.de  (jaja, das gibts)

      Dann erhalte ich:
      Verbindung mit christoph-schnauss.de wurde hergestellt.
      220 WebJanssen ISP ltd Server 10 FTP Server ist bereit.
      Benutzer (christoph-schnauss.de:(none)):

      Und wenn der Benutzername korrekt ist, kommt:
      331 User name okay, need password.
      Kennwort:

      Ich gebe also mein Paßwort ein und lande da, wo ich ja hinwollte.

      Du hast jetzt nichts anderes beschrieben. Ich wollte nun gern, daß ich die Reihenfolge "open FTP-URL / Anemledename / Kennwort" automatisieren kann.

      Macht ja nix. Es sieht so aus, als ob ich mit dem, was Thomas geschrieben hat, erstmal nen Schritt weiterkomme.

      Grüße aus Berlin

      Christoph S.

      1. Hallo Christoph,

        C:> copy CON: command.ftp
        Das krieg ich nicht auf die Reihe, wie du das gemeint hast.

        ach, das war eigentlich nicht wichtig. Es ist nur eine von vielen Möglichkeiten eine Datei zu erstellen *g*.

        Macht ja nix. Es sieht so aus, als ob ich mit dem, was Thomas geschrieben hat, erstmal nen Schritt weiterkomme.

        Prinzipiell haben Thomas und ich Dir ja die gleiche Lösung vorgeschlagen.
        1.) erstelle eine Datei (kommandos.txt) mit den FTP-Kommandos
        2.) starte das FTP-Programm mit der Option -s:kommandos.txt

        Grüße und schönes WOchenende
          Klaus