Neu Automatischer Upload via batch Datei lädt eine leere Datei hoch

DrGreen

Gut bekanntes Mitglied
24. Dezember 2017
131
16
Hi Leute,

ich habe das Problem, dass beim Upload auf meinen FTP Server seitens meines Lieferanten lediglich eine leere Datei hochgeladen wird.

Wenn ich die gleiche Batch Datei bei mir auf versch. PCs ausführe funktioniert alles ordnungsgemäß.

Hat jemand eine Idee?

@Manuel Pietzsch
 

mh1

Sehr aktives Mitglied
4. Oktober 2020
1.261
337
Wie alle elf Nerds vor mir von geschrieben haben nutzt FTP zwei Verbindungen. Einmal der Commandchannel (meist Port 21) und wenn Daten übertragen werden, wird der Datachannel aufgebaut.
Wenn sich der Client im Active Mode verbindet ist der Datachannel auf Port20
Wenn sich der Client mit Passive Mode verbindet wird der Port für den Datachannel zufällig ausgehandelt (beliebiger Port >1023)

Wahrscheinlich verbindet sich dein Lieferant also im Actice Mode und deine Firewall macht Port 20 zu.
Das sieht deshalb so aus, da der Befehl zum Anlegen einer neuen Datei zwar durchkommt (Commandchannel), aber die Daten (Datachannel) eben nicht.

Also:
  • Lieferant bescheid geben und klären ob er den Passive Mode benutzt, oder
  • Port 20 auf deiner Firewall freigeben, oder
  • dieses und ähnliche Probleme umgehen und statt dem FTP-Server einen SSH-Server installieren und dem Lieferant sagen, dass er per SFTP hochladen soll (Meiner Meinung nach die beste und zukunftsicherste Lösung)
Es könnte aber auch sein, dass einfach die Festplatte voll ist. Das kannst du als erstes mal prüfen ;)
 

DrGreen

Gut bekanntes Mitglied
24. Dezember 2017
131
16
Hi @mh1 vielen Dank für die ausführliche Antwort!

Kannst du mir auch noch sagen wie ich den Port 20 in der Firewall freigebe?

Die Option mit dem SFTP steht mir leider nicht zur Verfügung.

Vielen Dank im Voraus!
 

mh1

Sehr aktives Mitglied
4. Oktober 2020
1.261
337
Hi @mh1 vielen Dank für die ausführliche Antwort!

Kannst du mir auch noch sagen wie ich den Port 20 in der Firewall freigebe?
Dazu gibt es leider keine allgemeingültige Antwort, da das abhängig von der von dir eingesetzten Firewall ist.

Die Option mit dem SFTP steht mir leider nicht zur Verfügung.
Okay, dann gibt es aber immer noch den ersten Punkt: Client soll den "passive Mode" benutzen (was ja vermutlich in jedem aktuellen FTP-Client die Standardeinstellung ist).

Andere Fehlerquellen, hast du ausgeschlossen? Festplattengröße bzw. Quota? Berechtigungen und so.
Ich würde den FTP Upload aber in jedem Falle erstmal selber testen, also selber eine Datei hochladen, bevor du deinen Lieferanten anrufst.
 

DrGreen

Gut bekanntes Mitglied
24. Dezember 2017
131
16
Andere Fehlerquellen, hast du ausgeschlossen? Festplattengröße bzw. Quota? Berechtigungen und so.
Jap

Ich würde den FTP Upload aber in jedem Falle erstmal selber testen, also selber eine Datei hochladen, bevor du deinen Lieferanten anrufst.
Bei mir läuft es ja auf versch. PCs

Dazu gibt es leider keine allgemeingültige Antwort, da das abhängig von der von dir eingesetzten Firewall ist.
Windows Firewall
Okay, dann gibt es aber immer noch den ersten Punkt: Client soll den "passive Mode" benutzen (was ja vermutlich in jedem aktuellen FTP-Client die Standardeinstellung ist).
Ich verwende dazu den Windows Standard Dienst.

Die Batch Datei sieht so aus:

Code:
@echo off
cd\
C:
cd J:\Geteilte Ablagen\SOFTWARE\JTL
ftp -s:put.ftp

und hier die put.ftp:

Code:
open [SERVERADRESSE]
[Benutzer]
[Passwort]
bin
put "J:\Geteilte Ablagen\SOFTWARE\JTL\test.csv"
by
 

mh1

Sehr aktives Mitglied
4. Oktober 2020
1.261
337
Dein erster Post hier:

Hi Leute,

ich habe das Problem, dass beim Upload auf meinen FTP Server seitens meines Lieferanten lediglich eine leere Datei hochgeladen wird.
Jetzt haben wir völlig aneinander vorbeigeredet. Ich bin davon ausgegangen, das ein Lieferant von dir aus dem Internet per FTP Dateien auf deinen Server überträgt 🙄
Ich denke aber jetzt, du kopierst in deinem LAN Daten von einem Rechner zum anderen. Die erste Frage, die sich mir stellt: wieso mit FTP?
 

mh1

Sehr aktives Mitglied
4. Oktober 2020
1.261
337
...und die zweite Frage:
Warum kopierst du die csv Datei von Rechner A auf Rechner B? Vermutlich importierst du sie dann auf Rechner B mit der Ameise in die Wawi, oder? Aber wieso importierst du sie nicht gleich auf Rechner A 🤔
 

DrGreen

Gut bekanntes Mitglied
24. Dezember 2017
131
16
Jetzt haben wir völlig aneinander vorbeigeredet. Ich bin davon ausgegangen, das ein Lieferant von dir aus dem Internet per FTP Dateien auf deinen Server überträgt 🙄
Ich denke aber jetzt, du kopierst in deinem LAN Daten von einem Rechner zum anderen. Die erste Frage, die sich mir stellt: wieso mit FTP?
Hi Michi,

nein nein, du hast das schon richtig verstanden.
Ich habe die batch Dateien auf dem Server meines Lieferanten "installiert", damit ein automatischer Export (mittels Ameise) aus seiner Wawi und danach ein automatischer Upload der csv auf meinen Server vollzogen wird.

Ich hol mir die Datei dann und importiere sie in meine Wawi.
Das funkt alles vollautomatisch.

Nur eben, dass die Datei die mein Lieferant hochlädt leer ist.
 

mh1

Sehr aktives Mitglied
4. Oktober 2020
1.261
337
Um ehrlich zu sein, hört sich das ganze für mich nach einer Bastellösung nach dem Motto "hauptsache es funktioniert" an... ;)

Aber zu deiner konkreten Fragestellung:
Du sagst, die von dir eingesetzte Firewall ist die Windows Firewall. Ich kann (bzw. will) mir aber nicht vorstellen, dass du einen Windows Server mit dem Standard FTP Server und der Windows Firewall direkt ins Internet gestellt hast.... :oops:

Wie auch immer... In der Batchdatei, die du kopiert hast, wird ftp.exe aufgerufen. Ich weiß ja nicht, welcher FTP-Client an dieser Stelle benutzt wird. Falls dies der Windows FTP-Client ist, dieser unterstüzt keinen passive mode.
Falls dein Lieferant also nur diesen Client benutzen kann, müßt du also den in deinem Windows FTP Server konfigurierten Port für die Datenverbindung in deiner Firewall freigeben.

Ein einfacherer Weg, wäre aber, wenn dein Lieferant einfach einen FTP-Client benutzt, der den passive mode kann.

Mit dem Active Mode holst du dir evtl. noch weitere Probleme ins Haus. Z.B. kann auch die Firewall beim Lieferant die Detenverbindung blockieren und manche NAT Router ordnen die Datenverbindung auch nicht dem richtigen Client zu.
Allgemein ist ein FTP-Server mit Actice Mode ein Relikt aus vergangenen Tagen. Und sowas benutzt heute kaum jemand mehr.

Und wie aktivierst du überhaupt TLS auf dem Standard Windows FTP Dienst?
Zertifikate von Lets Encrypt?

Ich weiß, ich wiederhole mich, aber ich sags nochmal: Ich würde einen SSH Server installieren und der Lieferant soll per SFTP hochladen.
Da gibst du nur einen Port frei und musst dir auch über Verschlüsselung keine Gedanken machen.