Dieser Beitrag ist schon älter. Bitte vergewissern Sie sich, dass die Rahmenbedingungen oder der enthaltene Lösungsvorschlag noch dem aktuellen Stand der Technik entspricht.

FTP Verbindung prüfen per Batch

Mitglied: dbreuer

Hallo,
ich habe ein kleines Problem und hoffe ihr könnt mir helfen.

Ich möchte Dateien per Batch Datei übertragen und danach automatisch löschen.
Wenn aber die FTP Verbindung nicht zustande kommt werden die Dateien trotzdem gelöscht.
Nun brauche ich eine Abfrage, ob die FTP Verbindung erfolgreich war und erst danach sollen die Dateien übertragen werden.
Wenn die Verbindung nicht erfolgreich war soll die Batch einfach beendet werden.

Hier kommt mein Code:

ftp -s:c:\FTP\TEST\ftp.txt test.de
echo %errorlevel%
IF %ERRORLEVEL% EQU 0 goto start
IF %ERRORLEVEL% GRT 0 goto end
:start
echo erfolgreich
goto quit
:end
echo fehler
:quit

In der ftp.txt stehen die Zugangsdaten für den FTP Server drin.
Die FTP Verbindung wird auch erfolgreich ausgeführt.
Aber egal ob den Netzwerkstecker ziehe (simuliert Serverausfall) oder ob es erfolgreich ist, es wird immer der Errorlevel 0 ausgegeben?

Habe auch schon viel gegoogelt und hier im Forum den Tipp mit den Errorleveln gefunden, aber komme jetzt einfach nicht mehr weiter.

Ich hoffe ihr könnt mir helfen.

Dankeschön!

LIebe Grüße
David

Content-Key: 159676

Url: https://administrator.de/contentid/159676

Ausgedruckt am: 28.09.2021 um 19:09 Uhr

Mitglied: Skyemugen
Skyemugen 28.01.2011 um 15:43:11 Uhr
Goto Top
Aloha,

als erstes wäre eine <code></code> Formatierung schön für's Auge ;) - als zweites (ohne mich jetzt in den Errorlevel hinein zu denken - ich mag damit nicht arbeiten) könntest du ja die ftp Anmeldung laufen lassen und dann per if exist eine bestimmte file suchen, wenn die gefunden wird, ist die Verbindung aktiv, wenn nicht - dann nicht.

greetz André
Mitglied: miniversum
miniversum 28.01.2011 um 16:34:17 Uhr
Goto Top
IF %ERRORLEVEL% GRT 0 goto end
Funktioniert nicht. GTR heist größer:
EQU - gleich
NEQ - nicht gleich
LSS - kleiner als
LEQ - kleiner als oder gleich
GTR - größer als
GEQ - größer als oder gleich

Mitglied: 60730
60730 28.01.2011 um 19:45:56 Uhr
Goto Top
moin,


bedeutet im Klartext - rufe ftp.exe mit Parameter -s:c:\FTP\TEST\ftp.txt test.de auf.
Ergo nur wenn
  • ftp.exe
  • die Domain Test.de
  • oder die textdatei nicht gefunden wird, kommt ein anderer Errorlevel als 0 zurück.

Du mußt, wenn schon das Feedback von der FTP Session auslesen.
Und die dazugehörige .txt

Der Befehl "Bin" sorgt für das gesuchte 200 Type set to I und das gibt der FTP nicht zurück, wenn er hängt bzw. sollte man ja eh via bin übertragen.
Und man kann das noch ganz anders zimmern, aber so mache ich das.
Lass das einfach zweimal laufen und werte den Unterschied zwischen einer erfolgreichen und einer Übertragung mit Fehler aus.

Gruß
Mitglied: -WeBu-
-WeBu- 03.06.2011 um 20:02:16 Uhr
Goto Top
Ich hole diesen alten thread hoch, weil ich hier endlich die ersehnte Antwort von TimoBeil gelesen habe, daß ftp.exe einfach während einer fehlerhaften Übertragung innerhalb der Befehle von ftp.txt kein errorlevel ungleich 0 setzt.

Die Abfrage, ob der bin-Befehl gutging ("200 Type set to I"), ist ganz ok, aber ob dann auch die Übertragung gutging, weiß man nicht. Besser ist da die Abfrage auf "226 Transfer complete. Closing data connection." Für EINE Datei geht das, für mehrere nicht.

Aber, vielleicht könnte man überlegen, ob man eine komplette Übertragung per ftp.exe auch OHNE -s:ftp.txt hinbekommt. Wenn man einfach ALLES irgendwie auf eine Kommandozeile packt, also servername, user, passwort, local-file, server-file und wenn dann dabei irgendwas(!) schiefgeht, hat man (vielleicht) einen errorlevel, oder?

Wie aber bekommt man alles in einen ftp.exe-Aufruf?
Mitglied: 60730
60730 03.06.2011 um 21:02:46 Uhr
Goto Top
moin,

ganz einfach...
  • garnicht - oder besser/genauer (ich wüßte aus dem Stehgreif nicht wie)
...sondern anders.

  • bau dir ein Grundgerüst
kopiere dieses Grundgerüst in einer Schleife zu einer temp. Datei
füge während der Schleife
dazu und ein abschliessendes
quit
und schicke jede einzelne Datei / Ordner einzeln auf den FTP Server
  • oder suche nach "error /timeout"usw. in der "logdatei"
Nur weißt du dann wirklich nicht, wo es klemmt.

gruß
Am Montag bin ich wieder in der Windowswelt, vielleicht fällt mir ja doch noch was anderes ein.
Mitglied: -WeBu-
-WeBu- 03.06.2011 um 21:15:09 Uhr
Goto Top
Argh, das ist Aufwand.

Für meine eine Datei(!!) habe ich jetzt, wie erwähnt, deinen vorherigen Vorschlag abgewandelt und frage das ftpcheck.log genau auf das Vorhandensein von dem string "226 Transfer complete. Closing data connection." ab. Geht was schief, dann kommt dieser String nicht und ich lass mir per notepad sofort das log vorlegen, denn ich muss beim Übertragen einfach SOFORT wissen, ob alles geklappt hat und nicht erst einen Morgen später (per server-log-check o. ä.)

Bei der Gelegenheit habe ich einen bug bei strato festgestellt. Um auf Fehler zu checken, habe ich bei meinen Versuchen ans korrekte Passwort weitere Zeichen angehängt, ABER KEINEN FEHLER BEKOMMEN! :-( face-sad Ein Strato-Server prüft offensichtlich zeichenweise und wenn genügend richtige Zeichen "da" sind, isser glücklich! Ich glaub das einfach nicht und ich wußte das auch nicht. Ist das bekannt?
Heiß diskutierte Beiträge
general
Frage an die IT-Administratoren in Unternehmen gelöst Fuchor2020Vor 1 TagAllgemeinOff Topic13 Kommentare

Hallo Leute, freue mich hier im Forum dabei sein zu dürfen. Da ich noch relativ neu in der IT Branche bin, befasse ich mich aktuell ...

question
BIOS-Passwort beim Neustart umgehenFreeBSDVor 1 TagFrageEntwicklung14 Kommentare

Hallo zusammen, ich bin gerade auf der Suche nach einer Lösung für folgendes Problem und zwar haben wir in der Firma mehrere Notebooks im Einsatz ...

general
Apache2 Update führt bei Webservern mit Ubuntu 18+20 und Pleask zu einem Fehler 500 mit AH10292 für jede WebseiteStefanKittelVor 14 StundenAllgemeinApache Server

Moin, vieleicht hattet Ihr heute Morgen auch schon einen Schrecken. Ich hatte ganz viele Ausfallmeldungen für Webseiten mit Fehler 500. Im Errorlog steht dann der ...

question
Merkwürdige Meldung im iPhone Safari BrowsermartenkVor 1 TagFrageiOS9 Kommentare

Hallo Gemeinschaft ich bekomme seit kurzem dieses Bild in Safari: Was bedeutet es? ...

question
Fileserverstruktur mit wenig administrativen Aufwandben1300Vor 1 TagFrageWindows Userverwaltung11 Kommentare

Mahlzeit ! aktuell haben wir im Netzwerk einen sehr durchwachsenen Fileserver, welchen ich damals so übernommen habe und mir mittlerweile zu viel wird, bezüglich administrative ...

question
Datenübertragungsrate berechnungLeuis.DavidVor 1 TagFrageHardware18 Kommentare

Die Performance eines Servers entspricht nicht mehr Ihren Erwartungen. Sie führen einen Benchmark-Test durch. Dabei wird für die Systemfestplatte (Serial ATA 6.0 Gbit/s) eine durchschnittliche ...

question
Deutsche Glasfaser immer noch IPv6 ProblemefnbaluVor 1 TagFrageRouter & Routing20 Kommentare

Hallo zusammen, bei uns hat die Deutsche Glasfaser ganz frisch mitte 2021 ausgebaut und ich habe nun deren CG-Nat Leitung mit 400 Mbit, was gegenüber ...

question
Welche Ports öffnen für web.de OnlinespeicherWinfried-HHVor 1 TagFrageCloud-Dienste11 Kommentare

Hallo in die Runde! Hat jemand von euch Erfahrung mit dem Online-Speicher von web.de? Genaugenommen mit dem Windows-Sychronierungsprogramm von web.de? Seit unser Schulträger uns eine ...