Datei automatisch per FTP hochladen

  • Hey ho, ich habe eine bash Datei, welche für mich eine "log.txt" erstellt.
    Diese wird je nach zustand eines Schalters geschrieben.

    Nun würde ich gerne diese "log.txt" automatisch per ftp auf meinen FTP Server bei Start hochladen.

    Dies soll allerdings nur nur geschehen, wenn auch die anderen Befehle in der If - Else ausgeführt werden.

    Hoffe mir kann jemand helfen.

    Wäre cool, wenn jemand mir weiter hilft :)

    Lg, C4

  • Ohne weiter auf deinen Code einzugehen:

    Ich finde es echt schade, dass viele 'Newbies' in diesem Forum erwarten das man einem eine fertige Lösung für ein Problem vor die Füsse schmeisst. Zum FTP Upload mit dem Pi nach wasweißichwo steht so viel in diesem Forum und auch im Netz - warum sollen sich Andere die Arbeit machen für dich dein Script zu schreiben? Ein FTP Upload im internen Netz oder auf einen externen Server ist nun echt kein Hexenwerk...

  • ich habe es heute noch mal nach dieser Anleitung probiert, jedoch erhalte ich immer die selbe Fehlermeldung.

    Code
    pi@raspberrypi ~ $ sudo bash ftp-upload.sh
    Login incorrect
    Login failed.
    Not logged in.
    Not logged in.
    Not logged in.
    ftp: bind: Address already in use

    Mein Script sieht so aus:

    versuche ich mich von hand mit dem Server zu verbinden, funktioniert es.

    Hat jemand eine Idee, wo mein Fehler ist?

    Danke und Gruß,
    C4

  • Ich habe es jetzt mal probiert, trotzdem keinen erfolg.. :s

    So sieht nun mein script aus.

    Einmal editiert, zuletzt von C4mp1n0 (26. Juni 2016 um 19:16)

  • Die Groß- und Kleinschreibung ist in Wirklichkeit aber in Deinem Skript richtig, ja?
    Automatisch zusammengefügt:
    Noch eine Idee: Du könntest Username und Passwort in eine Datei .netrc im Homeverzeichnis des accounts, unter dem das Skript ausgeführt wird, schreiben. Vielleicht hat das ja Erfolg. Müsste dann so aussehen:

    Code
    machine ftp.strato.de
    login jan@domain
    password Passwort

    Und dann die user-Zeile im Skript weglassen.

    Einmal editiert, zuletzt von Manul (26. Juni 2016 um 20:17)

  • *hust* Beitrag#3 , 1. Methode , 2.Möglichkeit *hust*

    Desweiteren kann es evtl. helfen die Fehlermeldung genau zu beachten...

    Zitat

    331 FTP login okay, send password.
    530 Login incorrect

    FTP_USER wurde also normal akzeptiert, FTP_PASS aber nicht.
    Evtl. ist auch die erforderliche Syntax anders, was auf den jeweiligen FTP-Server ankommt. Du könntest versuchen das Script so abzuändern das erst der FTP-Befehl "user $FTP_USER" gesendet wird und erst danach "pass $FTP_PASS"

    Oder evtl. hilft es, nicht FTP_PASS="blah" zu verwenden sondern FTP_PASS='blah'

  • Ich habe das Script nun mal versucht abzuwandeln, leider scheinbar ohne erfolg...

  • Was ist denn wenn du das was im Ursprünglichen Script steht, manuell eingibst - akzeptiert er das?

    Irgendwie hab ich den Verdacht das es an Deinen Daten liegt - Case sensitiv. Du musst GROSS-/kleinschreibung also die exakte Schreibweise deiner Zugangsdaten einhalten. jan@Domainname ist etwas anderes als Jan@Domainname

  • sowohl bei der manuellen Eingabe, als auch bei den Daten im Script habe ich die exakt selben Daten, wie sie auch in FileZilla funktionieren, ich habe lediglich, wenn ich sie hier im Forum gepostet habe sie durch Beispiel Daten ersetzt, bei welchen ich nicht genau drauf geachtet habe.

  • Hm dann bin ich leider langsam mit meinem Latein am Ende :(

    Bei mir funktioniert das soweit, allerdings hab ich natürlich nicht Deine echten Daten :fies:

    Script:

    Mal davon abgesehen das ich als Anonymous nix hochladen darf, funktioniert der Login.

  • Ich habe jetzt bei starte noch mal einen neuen FTP Nutzer nur für den Pi erstellt und die Zugangsdaten in meinem Script eingegeben.
    Jetzt verbindet er sich auch, scheitert aber warum auch immer am Upload, mit dem Grund, er hätte keine Berechtigung.
    Auf dem Server habe ich den Ordner test erstellt und ihm auch die Berechtigung 777 erteilt.

    was mich leicht verwundert ist, dass da steht

    Code
    local: /home/pi/testpi.txt remote: /home/pi/testpi.txt


    obwohl in meinem Script steht

    Code
    #Die Datei welche uebertragen werden soll
    FILE2TRANSFER=/home/pi/testpi.txt
    
    
    #Das Verzeichnis wohin die Datei uebertragen werden soll
    REMOTEDIR=/test/
  • Und was ist wenn du "test.txt" ins selbe Verzeichnis ablegst wo auch das Script ist und dann nur FILE2TRANSFER=testpi.txt einstellst?
    Also Script: /home/pi/ftp.sh
    FILE2TRANSFER=testpi.txt

    Siehe dazu evtl. auch die MANual Page, wie sie es zu fast jedem Befehl gibt: man ftp
    mput ist ein bisschen anders als put .... evtl. hab ich das in meinem Tut auch falsch

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!