• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

file upload auf webserver (embedded linux)

holly123

Newbie
hi leute,

ich habe ein kleines problem:

für meine anwendung ist es erforderlich, dass ich log-files zu einem webserver uploaden kann. nun suche ich nach einer möglichkeit, z.b. eine dämon-anwendung zu erstellen, die mir in kontinuierlichen zeitintervallen die log-files uploaded.

auf meinem embedded-system ist leider kein curl oder wput installiert, dafür habe ich auch gar keinen platz. ich habe mir gedacht ich mache eine kleine c-anwendung, habe aber von netzwerkprogrammierung keine ahnung, und ich weiß auch nicht wo und wie ich anfangen soll.... eventuell per ftp-upload, aber da habe ich bis jetzt noch keine ahnung wie ich das in c realisieren soll..

vielleicht hat jemand von euch schon so was gemacht und kann mir helfen!

bis dann!
holly
 
OP
H

holly123

Newbie
Hi Georg,

vielen Dank für den Link.

Das problem das ich hier sehe ist, dass ich keine Kontrolle habe um zu sehen, ob ein File auch wirklich ordnungsgemäß upgeloaded wurde...
hast du vielleicht eine idee wie man das überprüfen kann?

lg
holly
 

P6CNAT

Advanced Hacker
Ja,

habe ich, ist aber ein bischen anspruchsvoller. Aber immer noch einfacher als eine Lösung in C.
Man kann die Ausgabemeldungen der transfer Funktion in eine Datei umleiten und deren Inhalt analysieren.

Code:
       ftp_log=/tmp/transfer_${timestamp}.tmp
       transfer > $ftp_log
       ftp_check_transfer
Das ftp_check_transfer macht ein grep auf den String für erfolgreichen Datentransfer auf das ftp_log.
Diese Meldungen sind übrigens sehr unterschiedlich, deshalb würde ich sie in eine Variable packen.

Code:
#-------------------------------------------------------------------------------
# $erfolg enthält den String für erfolgreiche Übertragung
#
# z.B. erfolg="226 Transfer complete"
#
#-------------------------------------------------------------------------------
ftp_check_transfer()
{
 a=`grep "$erfolg" $ftp_log | wc -l`
 if [ $a -ne 0 ]
 then
   echo "Erfolg"
 else
   echo "Fehler"
 fi
}

Statt echo "Erfolg" kannst du eine Meldung in ein Logfile schreiben.
Statt echo "Fehler" kannst du eine Mail verschicken z.B. mit mailx; siehe http://www.linux-club.de/viewtopic.php?f=83&t=94986
Im Fall eines Fehlers kannst du die Übertragung nach einer gewissen Zeit nochmal versuchen. Am Besten du guckst dir die Manpages von sleep und while ... do ... done an.

Gruß
Georg
 
OP
H

holly123

Newbie
@ P6CNAT
das mit dem ftp und log-file zum auswerten ist eine eventuelle möglichkeit. werd ich mal genauer anschauen...

@ vixt
ja, habe einen ssh auf dem webserver laufen. wie stellst du dir das vor mit scp oder sftp?
bin noch nicht im büro, drum kann ich es jetzt nicht genauer anschauen...
 

vixt

Member
scp ist quasi cp über eine ssh-Verbindung. sftp ist ftp über eine ssh Verbindung. Näheres zur Syntax sollten die man pages liefern:
http://linux.die.net/man/1/scp
http://linux.die.net/man/1/sftp
Das System baut dabei eine ssh-Verbindung auf über die dann Dateien kopiert werden können.
sftp wird z.B. auch direkt vom Konqueror unterstützt. Einfach in der Adressleiste sftp://<Rechnername/Rechner-IP>/ angeben.
Wenn Du auf beiden Rechnern Zertifkate einrichtest (um die interaktive Passwortabfrage zu vermeiden), kannst Du scp auch in Scripten verwenden um Dateien zwischen den Rechnern zu kopieren.
 
Oben