Automatischer FTP Up und Download mit Prüfung
Hallo liebes Community,
ich bin ein wenig am Verzweifeln, da ich nun am Ende meines Lateins angekommen bin.
Mein Vorhaben (wobei alles automatisch ablaufen muss):
- Es gibt ein lokales Verzeichnis, in dem in unregelmäßigen Abständen Dateien abgelegt werden.
- Zudem gibt es einen FTP Server, der einen Ordner enthält und dieser auch unregelmäßig mit Dateien befüllt wird.
Das lokale Verzeichnis muss also ständig überprüft werden, ob neue Dateien vorhanden sind. Wenn ja, sollen diese, falls sie noch nicht auf dem FTP Server abgelegt worden sind, hochgeladen werden (quasi Watchdog).
Nach dem Verschieben, sollen die lokalen Dateien in ein anderes Verzeichnis geschoben werden.
Wenn auf dem FTP Server eine neue Datei existiert, soll dieser heruntergeladen werden.
Wichtig bei all diesen Aktionen ist die Protokollierung, was wann und von wo nach wo transferiert wurde.
Ich habe es nun schon mit Powershell, Shell und ScriptFTP probiert. Leider immer wieder ohne Erfolg.
PS: Evtl. relevant: Der FTP Server ist ein Windows Server 2003 mit IIS und FTP.
Nun hoffe ich auf Eure Unterstützung.
Späte Grüße
sk4r
ich bin ein wenig am Verzweifeln, da ich nun am Ende meines Lateins angekommen bin.
Mein Vorhaben (wobei alles automatisch ablaufen muss):
- Es gibt ein lokales Verzeichnis, in dem in unregelmäßigen Abständen Dateien abgelegt werden.
- Zudem gibt es einen FTP Server, der einen Ordner enthält und dieser auch unregelmäßig mit Dateien befüllt wird.
Das lokale Verzeichnis muss also ständig überprüft werden, ob neue Dateien vorhanden sind. Wenn ja, sollen diese, falls sie noch nicht auf dem FTP Server abgelegt worden sind, hochgeladen werden (quasi Watchdog).
Nach dem Verschieben, sollen die lokalen Dateien in ein anderes Verzeichnis geschoben werden.
Wenn auf dem FTP Server eine neue Datei existiert, soll dieser heruntergeladen werden.
Wichtig bei all diesen Aktionen ist die Protokollierung, was wann und von wo nach wo transferiert wurde.
Ich habe es nun schon mit Powershell, Shell und ScriptFTP probiert. Leider immer wieder ohne Erfolg.
PS: Evtl. relevant: Der FTP Server ist ein Windows Server 2003 mit IIS und FTP.
Nun hoffe ich auf Eure Unterstützung.
Späte Grüße
sk4r
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 195000
Url: https://administrator.de/forum/automatischer-ftp-up-und-download-mit-pruefung-195000.html
Ausgedruckt am: 23.12.2024 um 07:12 Uhr
7 Kommentare
Neuester Kommentar
Hi,
das was du suchst ist ja die klassische Cloud-Lösung. Ich würde das mitteln OwnCloud lösen (http://owncloud.org/support/install/). Wie es mit der Protokollierung aussieht kann ich Dir nicht sagen. Müsste Aber auch einzustellen sein.
Gruß
Chris
das was du suchst ist ja die klassische Cloud-Lösung. Ich würde das mitteln OwnCloud lösen (http://owncloud.org/support/install/). Wie es mit der Protokollierung aussieht kann ich Dir nicht sagen. Müsste Aber auch einzustellen sein.
Gruß
Chris
Hi,
hab noch ein kleines HowTo gefunden. Vielleicht klappts:
http://www.niljuha.de/ftp-server-automatisch-mit-lokalem-verzeichniss-s ...
Und noch eines:
http://www.webdomination.de/2010/05/ftp-synchronize-ftp-server-mit-loka ...
Eines wird schon funktionieren.
Gruß
Chris
hab noch ein kleines HowTo gefunden. Vielleicht klappts:
http://www.niljuha.de/ftp-server-automatisch-mit-lokalem-verzeichniss-s ...
Und noch eines:
http://www.webdomination.de/2010/05/ftp-synchronize-ftp-server-mit-loka ...
Eines wird schon funktionieren.
Gruß
Chris
Hallo sk4r,
mein Vorschlag:
Die Variablen in den Zeilen 4 bis 14 müssen angepasst werden. Das Script muss über den Taskplaner in regelmäßigen Abständen gestartet werden.
UNGETESTET!!!
Gruß
Friemler
mein Vorschlag:
@echo off & setlocal
set "LogFile=E:\LogFile.log"
set "LocalSrcDir=E:\Test"
set "LocalDestDir=E:\Test2"
set "LocalFileList=.\LocalListing.txt"
set "FTPServer=Server"
set "FTPUser=User"
set "FTPPassword=Passwort"
set "FTPDir=Verzeichnis"
set "FTPFileList=.\FTPListing.txt"
set "FTPDirScript=%TEMP%\GetDir.txt"
set "FTPDownloadScript=%TEMP%\GetFile.txt"
set "FTPUploadScript=%TEMP%\PutFile.txt"
> "%FTPDirScript%" echo open %FTPServer%
>>"%FTPDirScript%" echo user %FTPUser% %FTPPassword%
>>"%FTPDirScript%" echo ascii
>>"%FTPDirScript%" echo cd "%FTPDir%"
>>"%FTPDirScript%" echo ls -l "%FTPFileList%"
>>"%FTPDirScript%" echo bye
ftp -s:"%FTPDirScript%" -vin > NUL
> "%LocalFileList%" dir /b /a:-d "%LocalDestDir%"
for /f "tokens=8*" %%a in ('findstr /v /b "d" "%FTPFileList%"') do (
findstr /b /c:"%%b" "%LocalFileList%" 1>NUL 2>NUL || (
> "%FTPDownloadScript%" echo open %FTPServer%
>>"%FTPDownloadScript%" echo user %FTPUser% %FTPPassword%
>>"%FTPDownloadScript%" echo binary
>>"%FTPDownloadScript%" echo cd "%FTPDir%"
>>"%FTPDownloadScript%" echo lcd "%LocalDestDir%"
>>"%FTPDownloadScript%" echo get "%%b"
>>"%FTPDownloadScript%" echo bye
>>"%LogFile%" echo %DATE% %TIME%: Download Datei "ftp://%FTPDir%/%%b" nach "%LocalDestDir%"
ftp -s:"%FTPDownloadScript%" -vin > NUL
)
)
> "%LocalFileList%" dir /b /a:-d "%LocalSrcDir%"
for /f "usebackq tokens=* delims=" %%a in ("%LocalFileList%") do (
findstr /e /c:"%%a" "%FTPFileList%" 1>NUL 2>NUL || (
> "%FTPUploadScript%" echo open %FTPServer%
>>"%FTPUploadScript%" echo user %FTPUser% %FTPPassword%
>>"%FTPUploadScript%" echo binary
>>"%FTPUploadScript%" echo cd "%FTPDir%"
>>"%FTPUploadScript%" echo lcd "%LocalSrcDir%"
>>"%FTPUploadScript%" echo put "%%a"
>>"%FTPUploadScript%" echo bye
>>"%LogFile%" echo %DATE% %TIME%: Upload Datei "%LocalSrcDir%\%%a" nach "ftp://%FTPDir%"
ftp -s:"%FTPUploadScript%" -vin > NUL
>>"%LogFile%" echo %DATE% %TIME%: Verschiebe Datei "%LocalSrcDir%\%%a" nach "%LocalDestDir%"
move "%LocalSrcDir%\%%a" "%LocalDestDir%"
)
)
del "%LocalFileList%" 2>NUL
del "%FTPFileList%" 2>NUL
del "%FTPDirScript%" 2>NUL
del "%FTPDownloadScript%" 2>NUL
del "%FTPUploadScript%" 2>NUL
Die Variablen in den Zeilen 4 bis 14 müssen angepasst werden. Das Script muss über den Taskplaner in regelmäßigen Abständen gestartet werden.
UNGETESTET!!!
Gruß
Friemler