Verbindung mit einem Server

  • Hi ich wollte mal wieder mit Autoit was machen und habe da eine frage. Ich möchte ein Script schreiben, welches sich mit einem FTP Server verbindet und eine .txt Datei anlegt. Jeder der das Script startet soll eine eigene Datei bekommen eine art Protokoll und diese Datei soll z.B. hinein geschrieben werden, wenn ein Fehler aufgetreten ist, welcher art er war etc. Eben eine art Support Script. Leider habe ich keine Ahnung von den Verbindungs arten wie TCP etc. und bin auch nach einiger Suche nicht schlauer geworden. Ich habe mich früher mal an der FTP Funktion mit Autoit versucht habe es aber aufgegeben, weil es nach etlichen Versuchen nicht Funktioniert hat. :whistling:

    Jetzt ist meine Frage: Was kann ich benutzen, was mich mit dem Server verbindet, wofür nichts extra Installiert werden muss.

    Ich hoffe mir kann jemand helfen und bedanke mich schon mal.

    MFG Cornfl4kes

  • Also, wenn du es mit TCP machen willst, solltest du vielleicht auf dem Server ein Server Skript laufen lassen und die anderen Rechner sind dann halt alles Clients. Das ist an sich eigentlich auch nicht schwer, wenn man etwas Erfahrung mit TCP hat. Du musst beim Server halt nur drauf achten das es ein Multiclient Server wird, damit nicht immer nur ein Client eine Verbindung bekommt ;)

  • HI,

    Da die FTP udf auch nicht so der Burner war und nie bei mir funktioniert hat, habe ich mir ne Batchdatei zusammen gedeixelt :D

    Batchdatei:

    Spoiler anzeigen
    Code
    @echo off
    ftp -n -s:"DeinPfad\Update.scr"
    pause <- wenn alles funktioniert kannst du das wegmachen ;)

    Update.scr

    Spoiler anzeigen
    Code
    open deinedomain.de
    user
    <- dein username wenn er fordelich
    <- dein PW wenn erforderlich
    cd bla <- um in den ordner bla zu wechseln
    put Update.scr <- lädt Udpadte.scr in den aktuellen ordner rauf
    
    
    ...weitere cd's und put's
    quit <- verbindung schließen

    Um mehr Befehle zum ftp befehl zuerhalten einfach in die cmd ftp eingeben enter drücken und dann ? einegeben und du bekommst die auflistung aller Befehle.

    Die Batchdatei kannst du eigentlich per Hand erstellen. Die Update.scr datei kannst du ja dynamisch in deinem autoitscript anpassen.

    Vllt legst du dir eine ini mit den computern und txt-dateien an die du einmal uploadest und dann immer wieder downloads und überprüftst dann welche txt noch nicht exisitiert schreibst den wert rein lädst dann die ini und die jeweilige txt datei wieder rauf.
    Wenn du dazu fragen hast, dann frag =)

    greetz DJ

  • Genauso mache ich das auch seit über einem jahr... :thumbup:

    Aber um ein Protokoll anzulegen,musst du folgendes schreiben:

    Code
    ftp -n -s:"DeinPfad\Update.scr" >C:\Log.txt


    Und die pause sollte man in einer Automatisierung weglassen,die stört da nur !
    Und _RunDos macht das alles dann ein wenig schöner ;)

    Zitat

    Programmieren ist so lange lustig bis ein Fehler auftritt!


    ~ Dankeschön

  • @ Dankeschön, das mit der Pause kann ja weg wenns funktioniert, sollte nur zum "debugen" dienen, falls ein Fehler auftaucht. Damit man erstmal selber nachschauen kann, wo der fehler liegt ;), hab ja auch geschrieben, dass er es wegmachen kann wenns funktioniert. Das mit der Logdatei hatte ich einwenig anders aufgefasst ^^ , dachte er wollte irgendwelche logdateien hochladen. Naja wenn er on ist kann er ja erzählen was er vorhat.

    greetz DJ

  • Ich danke schon mal für die Antowrten und werde es mal ausprobieren.

    Aber schon mal ein großen Danke an euch. :thumbup:

    Edit:
    @ DJBasslord

    Es war so gemeint, das der User die Datei hochläd und somit auf dem Server sein eigenes Protokoll hat. Also eigentlich genau so wie du es gedacht hattes^^ weil die Variante von Dankeschön es auf dem Compüuter Speichert (wenn ich mich nicht Irre)

    Trotzdem Danke

    Einmal editiert, zuletzt von Cornfl4kes (19. Oktober 2008 um 13:15)

  • So jetzt habe ich folgendes "Problem", das die Daten nicht auf den Server geladen werden. Ordner werden aber erstellt.

    [autoit]

    FileWrite("test.scr", "open Funpicserver.de"&@CRLF&"user"&@CRLF&"Benutzer"&@CRLF&"Passwort"&@CRLF&"mkdir tmp"&@CRLF&"cd tmp"&@CRLF&"mput "&@ScriptDir&"\"&@ComputerName&".txt"&@CRLF&"quit")
    _RunDOS('ftp -n -s:"'&@ScriptDir&"\"&'test.scr"')

    [/autoit]

    Es ist ein Funpicserver (falls ihr das wissen müsst)

    MFG Cornfl4kes

  • HI,
    nur put verwenden wenn du eine einzige datei raufladen möchtest, ich meine mit mput kann man nur ordner raufladen. Ansonsten baue die pause ein und lasse das über eine Batchdatei laufen dann siehst du ja welche Fehler auftauchen.
    greetz DJ

  • Danke für die Antwort.

    Aber ich habe zuerst put benutzt war jetzt nur so weil ich andere varianten versucht habe.

    Ich habe die test.scr auch schon von Hand ausgeführt aber es wird kein Fehler gemeldet.

    Ich hoffe mir kann da jmd helfen.

    MFG Cornfl4kes

  • Hm mach mir mal bitte einen Screenshot von der CMD, ich könnte mir nur vorstellen dass der string von put falsch eingeben ist oder sonst iein fehler auftaucht, so kann ich dazu aber nichts sagen. Es sollte ja dann eig auch der Trafic aufgelistet sein, wenn da 0 steht wurde nichts übertragen. Müsste ich mir aber mal ansehen.
    greetz DJ

  • als beispiel

    Spoiler anzeigen
    [autoit]

    FileDelete("C:\ftpupload.ftp")
    FileWriteLine("C:\ftpupload.ftp", "open SERVER")
    FileWriteLine("C:\ftpupload.ftp", "USER")
    FileWriteLine("C:\ftpupload.ftp", "PASSWORD")
    FileWriteLine("C:\ftpupload.ftp", "cd httpdocs")
    FileWriteLine("C:\ftpupload.ftp", "cd test")
    FileWriteLine("C:\ftpupload.ftp", "BINARY")
    FileWriteLine("C:\ftpupload.ftp", "put C:\l" & $rarfile)
    FileWriteLine("C:\ftpupload.ftp", "bye")
    Run(@ComSpec & " /c " & 'ftp -s:C:\ftpupload.ftp', "", @SW_HIDE)

    [/autoit]

    MFG FireFlyer

    *Paradox ist, wenn man sich im Handumdrehen den Fuss bricht* :D

  • kurze Frage:

    warum wollt/macht ihr denn immer alles über FTP :?:

    ist es nicht einfacher/schneller sowas per post über eine html laufen zu lassen :?:

    bei größerem Umfang/Speicherung ggf in einer mysql db verwalten :?:

    Zitat

    Laughing Man

    "I thought, what I'd do was, I'd pretend I was one of those deaf-mutes"

  • ctec

    mysql db jaaa auch mein traum, aber auf den meisten webservern kann man auf die DB nur lokal zugreifen (aus sicherheitsgründen)
    hatten wir schonmal ;) schau mal unter datenbanken

    Und wie meinst du das per HTML/POST? Du willst quasi mit der methode post daten versenden? Finde ich ist fast mehr aufwand weil man braucht dann ja auch noch auf dem server ein script (PHP z.B.) klar wahrlich keine große sache aber wenn jemand php nicht kann?

    MFG FireFlyer

    *Paradox ist, wenn man sich im Handumdrehen den Fuss bricht* :D

  • ja eine PHP Seite, die das ganze auffängt wäre dann wohl nötig, wenn kein entsprechender Server zur Verfügung steht.

    für eine reine HTML Lösung habe ich irgendwo noch ein Beispiel rumfliegen, also ohne DB -> Speicherung direkt im HTML Dokument

    damit habe ich damals eine Shoutbox gebastelt - funktionierte eigentlich ganz gut

    ich bastel gerade an anderen Apps rum, sobald ich zur "ext. Speicherung" komme werde ich mich melden...

    Zitat

    Laughing Man

    "I thought, what I'd do was, I'd pretend I was one of those deaf-mutes"

  • Habe es hier mit einem ohost server gemacht. Bitte um Hilfe

    Edit:
    Von Php habe ich net soviel ahnung und da ich es mit einem kostenlosen server mache kann ich (glaube ich) auch keine scripte drauf laufen lassen.

  • Moin, falls du das immer noch per FTP machen willst, dann den Pfad hinter put in "" setzen, dann sollte das ganze funktionieren.

    Beispiel:

    Spoiler anzeigen
    [autoit]

    FileWrite("test.scr", "open Funpicserver.de"&@CRLF&"user"&@CRLF&"Benutzer"&@CRLF&"Passwort"&@CRLF&"mkdir tmp"&@CRLF&"cd tmp"&@CRLF&'put "'&@ScriptDir&"\"&@ComputerName&'.txt"'&@CRLF&"quit")

    [/autoit]

    ctec & FireFlyer, grundsätzlich würde ich nichts gegen eine Datenbank sagen, kenne mich dmait auch aus, aber wenn Cornfl4kes nicht weiß wie man mit PHP und Mysql programmiert, denke ich, dass es für seine zwecke auch mit einem FTP - Server funktioniert. Denn dann muss er sich nicht noch mit diesen Programmiersprachen auseinadersetzen.
    greetz DJ

  • Hier die Lösung mit PHP:

    Spoiler anzeigen


    Müsstest dann nur folgenden Aufruf mit z.B _InetgetSource durchführen:
    http://deinewebsite.domain/datei.php?pass=passwort&report=Das_Programm_ist_abgestürzt&user=OberDAU

  • @DJ Basslord
    Ich selber wäre sogar sehr glücklich wenn man mit einem Programm wie AutoIt auf eine Websvr MySQL DB kommt. Es gibt entsprechende UDFs die funktionieren wunderbar, genau wie die SQLite UDF

    NUR

    Wie ich bereits sagte, die meisten Webserver die man "mietet" haben in ihren SQL setting beim Zugriff: local stehen, heisst nur ein script das auf dem Server liegt kann auf die DB zugreifen und hier liegt das Problem, man müsste PHP als "Schnittstelle" für AutoIt und MySQL nehmen und da wird es zwar nicht umbedingt sehr kompliziert aber meiner meinung nach ist es nicht sehr sicher...

    @bluelamp
    Ich würde aber anstatt $_GET, $_REQUEST nehmen und per autoit die seite mit der postmethode öffnen

    MFG FireFlyer

    *Paradox ist, wenn man sich im Handumdrehen den Fuss bricht* :D

  • Zitat

    Ich würde aber anstatt $_GET, $_REQUEST nehmen und per autoit die seite mit der postmethode öffnen

    Für was ? GET reicht in dem Fall völlig aus.