FTP Log In via bash script [GELÖST]

Hinweis: In dem Thema FTP Log In via bash script [GELÖST] gibt es 8 Antworten. Der letzte Beitrag () befindet sich ganz unten auf dieser Seite.
  • Hallo Leute ich hab mal wieder eine Frage auf die ich einfach noch keine Lösung weiß weil das alles neu für mich ist.


    Für euch ist das sicher ganz easy.


    Also ich will mit dem command ftp mich über ein bash script auf einen ftp server connecten.
    Nur wie soll ich Benutzername und Passwort eingeben bzw was muss ich beachten wenn ich dann
    ftp> <commands> ausführen möchte.


    Derzeit hab ich das so:


    Natürlich funktioniert das einloggen nicht da das mit echo nur mal so geraten war. Er sendet zurück dass er so ein Service nicht kenne. Also falscher bzw wahrscheinlich kein Benutzername und Passwort...


    Mfg


    Dominikk

    2 Mal editiert, zuletzt von Dominikk ()

    Für den Inhalt des Beitrages 45610 haftet ausdrücklich der jeweilige Autor: Dominikk

  • Wenn du diesen "ftp" Befehl absetzt

    Code
    ftp members.aon.at


    ist hier die Ftpverbindung auch schon wieder zu Ende.
    Alle folgenden Befehle


    sieht die FTP Verbindung gar nicht mehr.


    Du willst irgendein "HEREDOC" (schönes Wort, mal "heredoc bash" googlen)
    so dass der Befehl "ftp" auch etwas erhält.


    Code
    ftp ein.server.tld <<<TEXTMARKE
    echo MeinSpassWort
    echo #sendet ein <return>
    
    
    TEXTMARKE


    mit "<<<TEXTMARKE" leitet die bash die Eingabe zu dem "ftp" um zu den Zeilen die danach folgen bis hin zu dem frei wählbaren Endekennzeichen "TEXTMARKE", das ganz alleine auf einer Zeile am Anfang stehen muss. (keine Whitespacezeichen.)



    WARNUNG:
    "ftp" ist veraltet, total unsicher und sollte heute NIEMALS NICHT verwendet werden.
    Besser ist sshd/ssh/scp

    Für den Inhalt des Beitrages 45728 haftet ausdrücklich der jeweilige Autor: uhelp

  • "Funktioniert nicht" ist keine Aussage, die irgendwem weiterhilft.


    WAS ist Sache?


    Wie sieht der Code aus, der "nicht funktioniert"?
    Und WELCHE Meldungen GENAU erzeugt das?


    Merke: Die bash tut genau das, was man ihr sagt, nicht das, was man meint.


    Nachtrag
    Ein Beispiel:


    2 Mal editiert, zuletzt von uhelp ()

    Für den Inhalt des Beitrages 45781 haftet ausdrücklich der jeweilige Autor: uhelp

  • ab /bin/ftp -NeedOptions geht gar nix mehr


    Command not found



    Nochmal von Anfang:


    Also ich gebe mit im Terminal ftp ein und drücke enter
    Dann fragt mich das Terminal nach dem Username ich gebe den Username ein und drücke enter
    dann fragt es mich nach dem passwort also gebe ich das Passwort ein und drücke enter


    jetzt steht ftp> und nicht mehr <username@xxx> da


    nun ist meine Frage wie ich im bash script diesen Log In machen kann ohne dass das script gleich wieder noch bevor der Log In statt fand aus dem ftp befehl aussteigt

    Einmal editiert, zuletzt von Dominikk ()

    Für den Inhalt des Beitrages 45923 haftet ausdrücklich der jeweilige Autor: Dominikk

  • Also mit einem Wort: Es Läuft alles völlig korrekt.
    Außer dass dir ein paar grundlegende Linuxprinzipen nicht so kommod sind.


    Linux ist ein riesiger Baukasten mit kleinen efffizienten Befehlen, die man beliebig kombinieren kann.
    Dazu folgen sie alle einem bestimmten Schema.


    Der "ftp" Befehl lässt sich INTERAKTIV verwenden.
    Gibst du ihn ein, dann verlangt er von dir alle benötigten Daten.
    Die er sich dann von (dir von) der Tastatur holt.


    Wenn du ein Script schreibst, willst du eben KEINE Eingaben selber machen. Also den "ftp" Befehl auch NICHT interaktiv verwenden. Dazu muss er natürlich wissen mit welchem Usernamen er sich auf welchem Server (und dort welcher Port) mit welchen Passwort sich anmelden soll.
    Das geht ganz einfach über die Aufrufzeile.


    Fast jeder Befehl, den du eingeben kannst, lässt sich über Optionen ( == alle Teile der Aufrufzeile, die mit einem "-" oder mit zwei "--" beginnen) steuern.
    Dass ich "-NeedOptions" schrieb, sollte dir sagen, dass du wohl noch ein paar Optionen brauchst.
    "NeedOptions" kennt der FTP Befehl natürlich nicht.


    Guck einfach künftig beim Scripten immer einfach nach, welche Option, wie genau heißt.
    Jeder Befehl spuckt bei der Option "--help" (oder manchmal auch "-h"; ältere Befehle verstehen beide, ganz alte nur "-h") ein Kurzhilfe dazu auf, wie man ihn verwenden kann.
    Und so bitter das anfangs sein mag: "man <Befehlsname>" ist dein echter Freund.


    Dann musst du noch wissen, wie eine vollständige URL eigentlich aussieht:


    <proto>://<user>:<password>@<host>:<port>/<url-path>


    Kannst mal spasshalber in Firefoxens Adresszeile ähnliches, wie das hier eingeben:



    Code
    ftp://DeinUserName:DeinPasswortAufDemServer@DeinFTPServer





    Du solltest sofort das Directorylisting des Servers sehen.


    Für dein Script brauchst du wohl den teil "user:password@host".


    Good luck.


    Nachtrag:
    FTP ist uralt, per definitionem ein Sicherheitsloch.
    Alles, was man dazu raten kann, ist:
    FINGER WEG!!


    wenn du weitere SChwierigkeiten hast (und du wirst sie haben)
    kopiere uns bitte IMMER den GESAMTEN Scripttext (und ggf. den Inhalt das Konsolenfensters mit den Fehlermeldungen, wenn du es rufst) hier rein.
    Zwischen Codetags bitte.

    6 Mal editiert, zuletzt von uhelp ()

    Für den Inhalt des Beitrages 45940 haftet ausdrücklich der jeweilige Autor: uhelp

  • Ja das hört sich schon mal verständlicher an Danke soweit mal :)


    Was würd ich nur ohne euch machen




    Achja und danke für den Tipp mit man wusste nicht dass es sowas gibt ^^



    EDIT: Funktioniert 1A



    Zitat

    #ftp upload
    ftp ftp://username:pw@members.aon.at:21



    #----------

    Nun muss ich mir nur noch das uploaden zu gemühte führen und die Sicherheit ist mir mehr oder weniger egal der Speiseplan der da rauf soll ist sowieso public ;)


    Laut man ist das ja einfach -u davor und dann <url> <file> aba das geht noch nicht so recht, leider absolut keine Fehlermeldung


    Zitat

    2 Mal editiert, zuletzt von Dominikk ()

    Für den Inhalt des Beitrages 45990 haftet ausdrücklich der jeweilige Autor: Dominikk