roger85
Goto Top

Datei ständig automatisch per ftp hochladen

Hallo zusammen!


Ich habe vorab die Suche benutzt und leider keine Anleitung gefunden die genau auf mein Problem passt. Deshalb dachte ich frage noch mal nach...

Ich möchte gerne eine bestimmte Datei auf meienr Festplatte automatisch per ftp uploaden. Es handelt sich dabei um eine XML Datei die geparsed werden soll. Deshalb wird die Datei immer den gleichen namen haben, aber halt alle 2-5 min. auf der festplatte aktualisiert.
Auf dem Server soll dann die alte datei immer wieder einfach überschrieben werden.

Also so in etwa:

Programm erzeugt xml test.xml
upload der xml auf den Server
Programm aktualisiert den Inhalt von text.xml
upload der xml auf den Server->alte datei überschreiben

Das lässt sich ja bestimmt mit nem Batch lösen, der vom Task-Planer alle x Minuten ausgeführt wird, oder?

Ich freue mich auf eure Antworten.

Grüße und Dank!

Content-Key: 162878

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

Printed on: April 26, 2024 at 10:04 o'clock

Member: ronykowa
ronykowa Mar 17, 2011 at 14:18:35 (UTC)
Goto Top
Hallo

hast du es schonmal mit Robocpy versucht? z.B.: mit einem Automatischem Task der jede 5min ausgeführt wird.
Member: Roger85
Roger85 Mar 17, 2011 at 14:41:05 (UTC)
Goto Top
damit kenne ich mir gar nicht aus. welche vorteile hat das denn im gegensatz zu ner einfachen batch datei?
Member: zeroblue2005
zeroblue2005 Mar 17, 2011 at 17:59:29 (UTC)
Goto Top
Das Problem hatte ich auch schon. Das hier hilft dir weiter:

http://www.netcamera.de/wcn/frameset.htm?/info/ftputil.htm/|contents.htm
Member: laster
laster Mar 18, 2011 at 08:57:43 (UTC)
Goto Top
Hallo Roger85,

unter Windows geht das so:

@echo off
set FTP=ftp-script.dat
set SRV=ftp-server-adresse
set USR=username
set PAS=password

:: FTP-Script erstellen
echo open %SRV% > %FTP%
echo %USR%>> %FTP%
echo %PAS%>> %FTP%
echo bin >> %FTP%
echo cd Verzeichnis-FTP-Server >> %FTP%
echo lcd Verzeichnis-lokal >> %FTP%
:: nun den richtigen Befehl eintragen mget oder put ...
echo mget Datei >> %FTP%
echo close >> %FTP%
echo quit >> %FTP%

:: FTP mit Script ausfuehren
ftp -s:%FTP%

:: Aufraeumen
del /Q %FTP%
set USR=
set PAS=
 

vG
LS
Member: Roger85
Roger85 Mar 18, 2011 at 09:17:05 (UTC)
Goto Top
Danke, das Problem mit dem Upload habe ich schon gelöst.
Jetzt hoffe ich das es mit dem Taskplaner klappt, dieses Skript alle 60 Sekunden ausführne zu lassen.
Member: Roger85
Roger85 Mar 18, 2011 at 09:40:54 (UTC)
Goto Top
Zitat von @laster:
Hallo Roger85,

unter Windows geht das so:

> @echo off
> set FTP=ftp-script.dat
> set SRV=ftp-server-adresse
> set USR=username
> set PAS=password
> 
> :: FTP-Script erstellen
> echo open %SRV% > %FTP%
> echo %USR%>> %FTP%
> echo %PAS%>> %FTP%
> echo bin >> %FTP%
> echo cd Verzeichnis-FTP-Server >> %FTP%
> echo lcd Verzeichnis-lokal >> %FTP%
> :: nun den richtigen Befehl eintragen mget oder put ...
> echo mget Datei >> %FTP%
> echo close >> %FTP%
> echo quit >> %FTP%
> 
> :: FTP mit Script ausfuehren
> ftp -s:%FTP%
> 
> :: Aufraeumen
> del /Q %FTP%
> set USR=
> set PAS=
>  

vG
LS

Hierzu habe ich trotzdem noch ein paar Fragen:

1. Was trage ich bei ftp-script.dat ein?
2. speichere ich das Ganze als .bat Datei?
Member: laster
laster Mar 18, 2011 at 09:46:50 (UTC)
Goto Top
Hallo

1. Was trage ich bei ftp-script.dat ein?
Du kannst die Zeile lasse wie sie ist, nur Zeile 3,4 und 5 müssen in des Werten geändert werden.

2. speichere ich das Ganze als .bat Datei?
ja, kannst sie auch als cmd Datei speichern. Dann im Taskplaner die Datei ausführen lassen...

vG
LS
Member: Roger85
Roger85 Mar 18, 2011 at 10:04:03 (UTC)
Goto Top
super, klappt wunderbar.
aber unter windows 7 will der taskplaner die aufgabe zum verrecken nicht ausführen.
Member: laster
laster Mar 18, 2011 at 10:18:39 (UTC)
Goto Top
Hallo,

aber unter windows 7 will der taskplaner die aufgabe zum verrecken nicht ausführen.

Schau mal in der Aufgabe, Karte Allgemein, Bereich Sicherheitsoptionen, Option "Mit höchster Prio ausführen" uns aktiviere diese.

Gruß
LS
Member: Doppellhelix
Doppellhelix Aug 02, 2011 at 06:42:37 (UTC)
Goto Top
Hallo,

wow. das ist genau das was ich auch suche.

Allerdings müsste es für mich ein wenig umgeschrieben werden.

Auf dem lokalen Verzeichnis liegen *.csv Dateien und *.js Dateien. Ich möchte aber nur die *.js Dateien übertragen.
Wie müsste das Script dann aussehen?

Desweiteren möchte ich gerne wissen, was die Zeilen 8, 9 und 10 bedeuten?
Und was ist der Unterschied zw. den Befehlen mget und put?

Es wäre toll, wenn du mir das Script abändern könntest.

Vielen Dank.

Gruß Helix
Member: laster
laster Aug 02, 2011 at 06:51:46 (UTC)
Goto Top
Hallo Helix,

die Zeilen 7 bis 17 erzeugen eine Steuerdatei für das Windowsprogramm FTP. Wenn Du mehr darüber wissen willst, dann such halt mal...
Eine Hilfe zu den einzelnen FTP-Befehlen findest Du auch im Netz.
Ansonsten probier halt in einem CMD-Fenster die Befehle (innerhalb einer FTP-Sitzung) aus, z.B. put *.js

vG
LS
Member: Doppellhelix
Doppellhelix Aug 02, 2011 at 06:56:35 (UTC)
Goto Top
Hi Laster,

ja. ich habe die Sache mit put und mget gerade selbst schon im TechChannel gelesen.

Auch ein paar neue Befehle habe ich in der kurzen Zeit schon gelernt.

Ich nehme an, daß ich das Script folgendermaßen abändern muß:

15. > echo put *.js >> %FTP%

Vielen Dank für deine schnelle Hilfe.

Gruß Helix
Member: laster
laster Aug 02, 2011 at 07:29:19 (UTC)
Goto Top
Hallo Helix,

exakt:
echo put *.js >> %FTP% 

vG
LS
Member: Doppellhelix
Doppellhelix Aug 03, 2011 at 10:12:39 (UTC)
Goto Top
Also irgendwie funktioniert es nicht so ganz.

Ich möchte gerne eine Datei (min_day.js) vom ftp Server runterladen. Die Stapelverarbeitung läuft auch. Aber die Datei kommt nicht bei mir an.
Fehler finde ich nicht.

Hier mal ein Bild, was letztlich geschieht:
http://imageshack.us/f/15/batch.gif/
(Bildschirmfoto. draufklicken zum vergrößern)

Das Script ist weitesgehend so geblieben. Außer natürlich Benutzername usw.
Einzig diese Zeile habe ich rausgenommen:
echo cd Verzeichnis-FTP-Server >> %FTP%

weil es nur ein Verzeichnis auf dem ftp gibt und ich mich beim anmelden direkt im Hauptverzeichnis befinde.

Hast du noch einen Tip?
Member: laster
laster Aug 03, 2011 at 10:27:04 (UTC)
Goto Top
Hallo Helix,

nimm doch statt mget (für mehrere Dateien) den Befehl get für genau eine Datei.
Siehe http://www.bn-automation.com/pdfs/Handh_M_ftp-Clients.pdf Seite 2.

Gruß
LS
Member: Doppellhelix
Doppellhelix Aug 03, 2011 at 11:10:09 (UTC)
Goto Top
PERFEKT! face-smile

Vielen Dank. Auch für den Link. Das hat mir echt gefehlt.
Member: Maria2301
Maria2301 Jul 07, 2015 at 19:10:02 (UTC)
Goto Top
Hallo LS, ich habe da mal eine Frage. Vielleicht kannst du mir ja helfen. Das wäre super lieb. Bin derzeit noch Studentin und noch nicht sehr vertraut mit dieser Thematik, aber es wird alles vorausgesetzt face-sad Für die grafische Darstellung einer tagesgenauen Kursentwicklung auf einer Homepage benötige ich die entsprechenden Werte. Diese sollen (da sie nicht online verfügbar sind) von einem Dienstleister via FTP Server per CSV Datei geliefert werden. Gibt es hier einen Automatismus, bei dem die grafische Darstellung automatisch die Werte über den FTP Server zieht, sobald es eine neue CSV Datei gibt? Vielen lieben Dank im Voraus.
Member: zeroblue2005
zeroblue2005 Jul 08, 2015 at 05:28:26 (UTC)
Goto Top
Hallo,

wenn du mit Win arbeitest, benutze doch einfach das interne FTP Programm von Win? und Bastel dir eine Batch ungefähr so:

Erste Batch, diese startet FTP batch
@echo Starte FTP batch
call c:\windows\system32\ftp.exe -v -s:C:\Pfad-zur-FTP-Batch\Sync-FTP-.bat

Zweite Batch, diese startet FTP eigentlich erst
@echo Starte FTP download
open ziel-ftp-Server.de
benutzername
passwort
binary
get Name-der-Datei-auf-dem-FTP-Server.csv C:\Zielpfad-auf-deinem-rechner-inkl-Dateiname.csv
ascii
close
quit

Zum guten Schluss lässt nimmst du dann den Aufgabenplanner von Win und lässt die erste batch alle sagen wir 10 Min. ausführen, dann haste den Datenbetsand immer aktuell