dgoeger
Goto Top

Ftp Dateien per Script herunterladen

Hallo Admingemeinde,

ich habe folgende Problematik. Ich benötige ein Script, das per Task ausgeführt wird und die Daten von einem ftp-Server um eine bestimmte Uhrzeit herunterlädt. Ich habe bereits folgendes hierzu entwickelt.

@echo off

:: Definierte Variablen (Host = ftp Server, User = ftp-Benutzer, Passwort = ftp-Passwort, ldir = Lokaler Ordner, rdir = Ordner des ftp-Servers)
set Host=xxx 
set User=xxx
set Passwort=xxx
set ldir=D:\xxx\xxx
set rdir=alarm/xxxxxx/

:: Löscht den Lokalen Ordner
:: rd /s /q %ldir%

:: Erstellt den Lokalen Ordner
:: md %ldir%

:: Navigiert in den gewünschten Ordner
D:
cd %ldir%

:: Lädt die gewünschten Dateien herunter (-DD löscht Dateien auf dem ftp-Server)
ncftpget -R -DD -u %User% -p %Passwort% ftp://%host%/%rdir%*

Prinzipiell funktioniert es auch so, allerdings werden die Ordner auf dem ftp nicht gelöscht. Das Script soll folgendes ausführen:

- Herunterladen der Dateien aus dem Verzeichniss (mehrere Unterverzeichnise) in ein lokales Verzeichnis (Baumstruktur soll erhalten bleiben)
- Löschen der Daten auf dem ftp (inklusive Ordner)


Ich bin um jede Unterstützung dankbar.

MfG Dominik

Content-Key: 171683

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

Printed on: April 16, 2024 at 05:04 o'clock

Mitglied: 60730
60730 Aug 18, 2011 at 09:00:06 (UTC)
Goto Top
moin,

  • ncftpget setze ich zwar nicht ein, aber der Ordnerlösch Befehl für *ux, FTP lautet rmdir
Von daher vermute ich mal eine zweite Zeile mit dem ncftpget, der rmdir für den die Ordner durchführt wäre wohl zielführend.

PS: Ich sehe in dem Script keine Abfrage, ob denn auch wirklich alles fehlerfrei übertragen wurde, sowas würde ich an deiner Stelle da noch reinzimmern.

Zum Thema FTP Script findest du ein paar gelöste Threads hier unter den genannten Suchstichwörtern, die zum großen Teil auch mit Boardmitteln alleine laufen.
(ncftpget ist zwar bei einigen *ux Distris onboard, aber die kennen kein @echo off)

Gruß
Member: dgoeger
dgoeger Aug 18, 2011 at 09:04:28 (UTC)
Goto Top
Hallo Timo,

ja richtig der Befehl rmdir ist mir bekannt.
Habe noch vergessen die Problematik zu erweitern :D! Die Ordner die gelöscht werden sollen besitzen Zufallsnamen, die nicht bekannt sind :D das bedeutet ich möchte alle Ordner löschen die im Ordner /alarm/* liegen face-sad!
Mitglied: 60730
60730 Aug 18, 2011 at 10:09:38 (UTC)
Goto Top
Habe noch vergessen die Problematik zu erweitern :D! Die Ordner die gelöscht werden sollen besitzen Zufallsnamen, die nicht bekannt sind

  • naja nicht bekannt....

  • Du hast doch eine lokale Ordnerstruktur und von den Ordnern macht du vor dem download einen Inhalt in eine Textdatei und danach auch.
  • Das delta zwischen nvorher und nacher ist dann der Inhalt des FTP Servers

(Außer die Ordner heissen immer gleich und werden abwechselnd genutzt, also keine Zufallsbenamsung)

Von daher such mal lieber nach den vorhandenen Lösungen, denn sowas haben wir hier wirklich schon durchgekaut.


Gruß
Member: dgoeger
dgoeger Aug 18, 2011 at 12:38:42 (UTC)
Goto Top
Hallo Timo,

also danke für die Hilfe, habe es jetzt über ScriptFTP gelöst.
Muss sagen das Tool ist sehr gut und eigentlich einfach zu verstehen.

Danke!