Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

FTP Transfer überprüfen

Empfohlene Antworten

Veröffentlicht

Hi

bin mir jetzt nicht gaaanz sicher ob das hier her gehört...

Trotzdem: Ich Transferiere eine Datei mittels FTP... nach dem transfer will ich wissen ob es geklappt hat... aber wie kann ich das herausbekommen??? Die Datei die ich übertrage wird ja nicht gelöscht wenn der Transfer gut gelaufen ist. Auch das Protokollieren des FTP funtioniert nicht, da ich den FTP von VB aus Aufrufe.

Hoffentlich kann mir jemand helfen...

grösse überprüfen?!

hi,

nach dem ftp-transfer eine steuerdatei in das zielverzeichnis schreiben.

wenn diese steuerdatei vorhanden ist, hat der transfer funktioniert, sonst nicht.

hoffe, es hilft.

Original geschrieben von |roTekuGeL|

Auch das Protokollieren des FTP funtioniert nicht, da ich den FTP von VB aus Aufrufe.

Wie rufst Du denn den Transfer auf? Über ein VB-Steuerelement oder als shell-Aufruf oder sonstwie?

ICQ

Original geschrieben von *I C Q*

Wie rufst Du denn den Transfer auf? Über ein VB-Steuerelement oder als shell-Aufruf oder sonstwie?

ICQ

mit dem shell befehl öffne ich nen ftp (also die ftp.exe)...

@peregrin: wie schreibe ich so ne steuerdatei?

@daking: hä?

Original geschrieben von |roTekuGeL|

@peregrin: wie schreibe ich so ne steuerdatei?

Ich denke er meinr eine kleine Textdatei o.ä., wenn dann die zweite Datei übertragen wurde, ist die erste auch angekommen. Es könnte aber sein, dass der Upload der ersten abgebrochen ist und dann die zweite geschrieben wurde...

Überprüf doch einfach die Grösse der lokalen Datei und die Grösse der gespeicherten Datei, wenn gleich ist alles ok.

Wie das genau mit deinem FTP Client funktioniert weiss ich nciht, es gibt die Möglichkeit aber...

hab mal ein bisschen rumprobiert...

quote size <Filename>

gibt dir mit dem DOS Ftp client die Dateigrösse zurück.

Quote führt FTP-Server Befehle aus, der Server muss also Size unterstützen.

also das mit dem quote geht schon mal danke!

nur wie hilft mir das zu überprüfen ob die datei nun transferiert wurde...

1. die Dateien KÖNNTEN ja zufääliger weise mal gleich groß sein (alte, neue datei)

dann würde das schonmal nicht funktionieren (ausnahmefall)

2. wie bekomm ich die größe aus der FTP konsole in mein VB prog?

Original geschrieben von |roTekuGeL|

mit dem shell befehl öffne ich nen ftp (also die ftp.exe)...

Hmmm, ich vermute jetzt mal, dass Du den ftp mit dem Schalter -s startest, richtig?

Dann leite doch einfach die Ausgabe um in eine Logdatei und werte diesen Inhalt aus.

also z.B. so:


Sub tst()

Dim frei As Integer

Dim tststr As String

Dim trc As Boolean

Dim wo As Integer

trc = False

frei = FreeFile

Shell ("cmd /c ftp -s:Laufwerk:Verzeichnis:Skriptdatei > logdatei.txt")

Open "logdatei.txt" For Input As #frei

Do While Not EOF(frei)

    Line Input #frei, tststr

    If Left(tststr, 3) = "226" Then 'Transfer Complete

      trc = True

    ElseIf trc = True Then

        wo = InStr(1, tststr, "Bytes")

        If wo > 0 Then

            If Left(tststr, wo - 1) = FileLen("zuübertragendedatei.xxx") Then

                MsgBox "Transfer erfolgreich"

            Else

                MsgBox "Transfer fehlgeschlagen (Grösse ungleich)"

                Exit Do 'könnte man noch besser machen! ;-)

            End If

        End If

    End If

Loop

If trc = False Then

    MsgBox "Transfer fehlgeschlagen (Nicht completed)"

End If

Close #frei

kill "logdatei.txt"

End Sub

ICQ

EDIT: Close & Kill hinzugefügt! ;)

Mist, zu langsam gepostet... ;)

Original geschrieben von |roTekuGeL|

1. die Dateien KÖNNTEN ja zufääliger weise mal gleich groß sein (alte, neue datei)

dann würde das schonmal nicht funktionieren (ausnahmefall)

Und wenn Du die Alte vorher löschst oder umbenennst? Kannst ja gleich in dem Script machen!

ICQ

@ICQ: hast du das programm schonmal versucht laufen zu lassen?

die idee mit der Log datei hatte ich schon... hab ich glaub ich auch geschrieben ... aber egal... auf jeden fall funktioniert das ganze nicht wenn ich das < LOGFILE ranhänge warumauchimmer :confused:

Original geschrieben von *I C Q*

Und wenn Du die Alte vorher löschst oder umbenennst? Kannst ja gleich in dem Script machen!

ICQ

die idee hatte ich auch schon... nur: mit der FTP exe kann man keine lokale datei umbenennen...

die idee mit dem löschen... ist der transfer fehlgeschlagen lösch ich die datei trotzdem, da die FTP exe trotzdem alle befehle abarbeitet...

Original geschrieben von |roTekuGeL|

@ICQ: hast du das programm schonmal versucht laufen zu lassen?

Yep, gerade eben! ;)

Original geschrieben von |roTekuGeL|

die idee mit der Log datei hatte ich schon... hab ich glaub ich auch geschrieben ... aber egal... auf jeden fall funktioniert das ganze nicht wenn ich das < LOGFILE ranhänge warumauchimmer :confused:

Lass mich raten:

Du rufst das Ganze über shell("ftp.exe -s:xyz.txt > test.txt") auf, oder?

Das hab ich auch versucht und dann erstellt er mir tatsächlich keine Logdatei. Wenn Du allerdings die cmd (oder command.com) aufrufst und ihm als auszuführenden Befehl den ftp-Befehl mitgibst, dann klappt's!

ICQ

Edit: btw. es heisst > LOGFILE, aber das war vermutlich nur ein Vertipper, oder? ;)

Original geschrieben von |roTekuGeL|

die idee hatte ich auch schon... nur: mit der FTP exe kann man keine lokale datei umbenennen...

Hmmm, machst Du einen GET oder einen POST? *grübel*

Ich bin jetzt von einem Post ausgegangen, ansonsten funktioniert das Konzept oben nicht wirklich. ;)

ICQ

ja ok nach vielmaligem rumprobieren gehts jetzt... log wird erstellt, die datei übertragen...

dank dir!!!:e@sy :D

...nur eine frage hätte ich noch: was bedeutet das /c for dem ftp -s... ?

Original geschrieben von |roTekuGeL|

dank dir!!!:e@sy :D

Kein Problem! ;)

Original geschrieben von |roTekuGeL|

...nur eine frage hätte ich noch: was bedeutet das /c for dem ftp -s... ?

Das /c ist ein Schalter für cmd (bzw. command.com) und bedeutet: Führe das, was dort hinter dem /c steht nach dem Aufruf der Dos-Box aus.

Info's findest Du, wenn Du in der Dos-Box "cmd /?", bzw. "command /?" eingibst, dort sind verschiedene Schalter erklärt.

ICQ

hätte auch noch einen Vorschlag... ich glaube ich hätte das so gelöst:

command.. bla, bla, bla über trage datei bla, bla blub..

dann nehme ich die datei, generiere eine checksum (z.B. CRC). Diese schreibe ich in eine Datei (könnte man noch mitübertragen). Dan wird die Datei übertragen. Wenn das fertig ist, kann man (bei direktem Zugriff auf den server, bzw. Client) von der übertragenen Datei wieder eine checksum bilden und die vergleichen. Das sollte sicher sein...

Wenn man keinen direkten Zugriff auf den zielrechner hat, müsste man die datei nochmals übertragen und dann prüfen,... aber nur wenn es sich um kleine dateien handelt...

um nur zu überprüfen, ob die datei übertragen wure reicht euer loggin aus, klingt ja ganz gut..

aber wenn ich so drüber nachdenke, bringt mir mein CRC auch nichts... Die datensicherheti wird ja durch TCP (bzw FTP) sichergestellt ... naja..

was solls, Taz

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.