Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Dateien auf dem FTP Server prüfen

Frage Microsoft

Mitglied: batimbus

batimbus (Level 1) - Jetzt verbinden

11.10.2011 um 16:20 Uhr, 4798 Aufrufe, 10 Kommentare

Hallo,

ich bin neu hier, habe aber dennoch keine Lösung für mein Problem im Forum oder im Internet gefunden, weiß gar nicht ob es möglich ist.

Ich suche nach einer Möglichkeit, Dateien automatisch direkt auf einem FTP-Server zu überprüfen ohne diese erst runterladen zu müssen.
Geprüft werden soll ob z.B. eine bestimmte Datei zu einen bestimmten Zeitpunkt vorhanden ist und welche Dateigröße diese hat.
Wenn die Datei nicht vorhanden ist, soll z.B. eine email an mich verschickt werden.

Bisher habe ich nur Programme gefunden, die entweder die Dateien downloaden und diese dann prüfen können oder aber nur Dateien synchronisieren.
Ich habe auch nicht dagegen dies über eine Batchdatei zu lösen, nur leider bin ich da nicht so erfahren.

Vielleicht weiß ja jemand so ein Programm oder kann mir Tipps geben, wie ich so etwas machen kann.
Anbei ein paar Daten:


System auf dem das Programm laufen soll: Windows Server 2008.
FTP-Server auf dem die Daten zu prüfen sind ist: Xlight FTP oder Microsoft IIS Server.
Zugriff auf den FTP nur via IP möglich (steht nicht im gleichen Netzwerk).

Software soll als permanenter Task laufen und Daten prüfen
geprüft werden soll z.B.:

Datei auf vorhanden sein --> wenn nein Email senden
Dateigröße --> wenn zu klein, Email senden


Wäre super, wenn jemand eine Lösung kennt.
Wenn ihr noch Infos von mir benötigt, sagt es einfach.

gruss

Batimbus
Mitglied: TheDarkLord
11.10.2011 um 18:25 Uhr
Gude,

ganz kurz nur zum Dateien überprüfen:
Versuch es doch mal mit NetDrive, ein Programm, welches einen FTP Server direkt als Netzlaufwerk im System einbindet, wo man also auch ganz normal mit den Dateien arbeiten kann, als wäre es ein lokaler Ordner. Das Programm kann man so einrichten, dass es bei Windowsstart mit gestartet wird und man kann auch eine FTP Verbindung beim Programmstart automatisch gleich einbinden lassen.
Ich benutze NetDrive immer, wenn ich auf nem FTP Server arbeiten muss, da ich dort wie schon erwähnt ganz normal sämtliche Dateioperationen ausführen kann wie Rechtsklick -> Neu oder kopieren, verschieben, umbenennen, editieren etc pp.

Ist das realisiert, kannst Du z.B. per Batch nach dem Motto "if exist X:\Datei.xxx do ..." Deine Prüfroutinen ausführen lassen.
Falls Du mit der Batch noch Schwierigkeiten haben solltest, meld Dich einfach mal. Ich kann Dir da bestimmt weiter helfen bzw. bastla, der Batch Guru schlechthin springt ja auch hier irgendwo herum

Gruß
Dark
Bitte warten ..
Mitglied: TheDarkLord
11.10.2011 um 18:27 Uhr
Nachtrag:

Die Batch kannst Du dann natürlich per Task in einem bestimmten Rythmus ausführen lassen. Rythmus, Rhytmus, Rhythmus? Ich hasse dieses Wort xD
Bitte warten ..
Mitglied: Arano
11.10.2011 um 20:38 Uhr
Hallo

ich MUSS jetzt auch noch meinen Beitrag dazu los werden...

Mein Plan war es, __ganz einfach__ mit der Batchdatei und der ftp.exe die Verzeichnisliste vom FTP-Server zu holen und in dieser dann die zu "Überwachende" Datei und die Größenangabe heraus zu filtern.
Jaja... "gaaanz einfach" : die ftp.exe hat da so ein paar "Einschränkungen".

Dummerweise konnte ich nicht davon ablassen selber tätig zu werden,
darum habe ich mich der psftp.exe (Putty-FTP-Client) bedient: Putty Download Page (und psftp) - denn irgendwie muss das doch gehen

01.
@echo off 
02.
 
03.
REM Infos zur überwachten Datei 
04.
set "FILE=readme.txt" 
05.
set "SIZE=626" 
06.
REM Benutzerdaten zum FTP-Server 
07.
set "FTP_SERVER=192.0.0.180" 
08.
set "FTP_USER=benutzername" 
09.
set "FTP_PASS=******" 
10.
 
11.
REM Logdatei zum speichern der "FTP-Verzeichnisliste" 
12.
REM Mein FTP-Server listet so auf: 
13.
REM -rw-r--r--    1 arano    arano         626 Mar 12  2006 readme.txt 
14.
REM Token-5 = Bytes 
15.
REM Token-9 = Dateiname 
16.
set "LOG=batch-ftp.log" 
17.
REM Datei in die die FTP-Komandos "zwischengespeichert" werden 
18.
set "CMDS=ftp-commands.cmd" 
19.
REM Lösche eventuelle "überbleibsel" 
20.
if exist %LOG% del %LOG% 
21.
if exist %CMDS% del %CMDS% 
22.
 
23.
REM Erstelle Temporäre FTP-Kommando-Datei 
24.
>>%CMDS% echo ls 
25.
REM FTP-Aktionen in Logdatei umleiten 
26.
>>%LOG% psftp.exe -b %CMDS% -l %FTP_USER% -pw %FTP_PASS% %FTP_SERVER% 
27.
REM Lösche FTP-Kommando-Datei 
28.
del %CMDS% 
29.
 
30.
REM Suche in der Logdatei nach der Datei und überprüfe sie 
31.
for /F "tokens=5,9" %%i IN ('findstr "%FILE%" %LOG%') DO ( 
32.
  echo Datei %%j gefunden, teste Groesse %%i ^>= %SIZE% 
33.
  if %%i GEQ %SIZE% ( 
34.
    echo Groesse OK 
35.
  ) else ( 
36.
    echo zu klein !! 
37.
    goto send_mail 
38.
39.
  set "found=true" 
40.
41.
 
42.
REM wenn %found% nicht "true" ist, wurde Datei nicht gefunden 
43.
if not "%found%"=="true" ( 
44.
  echo Datei %FILE% existiert nicht 
45.
  goto send_mail 
46.
47.
 
48.
 
49.
REM wenn das Programm bi hier her durch läuft, 
50.
REM war wohl alles in Ordnung. 
51.
REM "überspringe" E-Mail versand ! 
52.
goto ende 
53.
 
54.
 
55.
REM wird hierher gesprungen, gab es eine Differenz, 
56.
REM benachrichtige den Admin 
57.
:send_mail 
58.
echo Sende E-Mails an Admin (verwende blat.exe) 
59.
 
60.
 
61.
:ende 
62.
REM Programmende, lösche Verzeichnisliste 
63.
del %LOG% 
64.
 
65.
 
66.
pause
Tja, das müsstest du dann noch etwas an die Ausgabe des FTP-Servers (Verzeichnisliste) anpassen.
ACHTUNG: Das Passwort und der Benutzername zum FTP-Account stehen in der Datei (Leserechte nur für Admins einstellen) !
Auch dieses, wie TheDarkLord schon vorschlug, mit den Tasks im gewünschtem Rhythmus ausführen lassen.


~Arano

...und dabei wollte ich eigentlich etwas anders machen...
Bitte warten ..
Mitglied: TheDarkLord
11.10.2011 um 20:46 Uhr
Zitat von Arano:
Auch dieses, wie TheDarkLord schon vorschlug, mit den Tasks im gewünschtem Rhythmus ausführen lassen.

Danke für die Richtigstellung

PS: Dein letzter Satz "Dabei wollte ich eigentlich etwas anderes machen" wird übrigens in Deinem Beitrag nicht angezeigt...
Bitte warten ..
Mitglied: Arano
11.10.2011 um 21:04 Uhr
Hey,

Danke für die Richtigstellung face-smile
Naja, also... ich war mir wegen der Rechtschreibung ziemlich sicher, hab es dann aber doch nachgeschlagen face-smile

PS: Dein letzter Satz "Dabei wol... ... hen" wird übrigens in Deinem Beitrag nicht angezeigt...
Öhm... und warum kann ich den Lesen (sowohl ein-, als auch ausgeloggt) und du ebenfalls ?


~Arano
Bitte warten ..
Mitglied: Friemler
11.10.2011 um 21:04 Uhr
Hallo batimbus,

hier gibt's dann noch meinen Senf dazu:
01.
@echo off & setlocal 
02.
 
03.
 
04.
set "FileList="test1.txt" "test2.txt" "test3.txt"" 
05.
set "FileSizes=28537 1459 3469" 
06.
 
07.
set "FTPServer=DerFTPServer" 
08.
set "FTPUser=FTPUsername" 
09.
set "FTPPass=FTPPasswort" 
10.
 
11.
 
12.
set "FTPScript=%Temp%\FTPScript.txt" 
13.
 
14.
> "%FTPScript%" echo open %FTPServer% 
15.
>>"%FTPScript%" echo user %FTPUser% %FTPPass% 
16.
>>"%FTPScript%" echo ascii 
17.
>>"%FTPScript%" echo ls -l 
18.
>>"%FTPScript%" echo bye 
19.
 
20.
for /f "tokens=5,8*" %%a in ('ftp -n -v -s:"%FTPScript%" ^| findstr /v "^ftp> ^bye ^d"') do ( 
21.
  call :ProcessFileName "%%c" %%a 
22.
23.
 
24.
for %%f in (%FileList%) do ( 
25.
  if %%f neq "" call :FileNotFound %%f 
26.
27.
 
28.
del "%FTPScript%" 
29.
exit /b 
30.
 
31.
 
32.
 
33.
:ProcessFileName 
34.
  set "FileName=%1" 
35.
  set /a Idx=1 
36.
 
37.
  for %%f in (%FileList%) do ( 
38.
    if %%f equ %FileName% ( 
39.
      call :CheckFileSize %FileName% %2 
40.
      call set "FileList=%%FileList:%%~f=%%" 
41.
42.
    set /a Idx+=1 
43.
44.
exit /b 
45.
 
46.
 
47.
:CheckFileSize 
48.
  for /f "tokens=%Idx%" %%s in ("%FileSizes%") do ( 
49.
    if %%s neq %2 call :FileSizeWrong %1 %2 
50.
51.
exit /b 
52.
 
53.
 
54.
:FileSizeWrong 
55.
  echo Dateigröße falsch: %1 %2 Bytes 
56.
  rem Hier ein BLAT-Aufruf 
57.
exit /b 
58.
 
59.
 
60.
:FileNotFound 
61.
  echo Datei nicht gefunden: %1 
62.
  rem Hier ein BLAT-Aufruf 
63.
exit /b
Das Script verwendet den FTP-Befehl von Windows. Verzeichnisnamen im Listing des FTP-Servers werden nicht berücksichtigt und man kann nicht nur eine Datei und ihre Größe angeben sondern mehrere (die auch Leerzeichen im Namen enthalten können). In den Zeilen 4 und 5 werden diese Listen zusammengebaut. Die Reihenfolge von Namen und Dateigrößen in den beiden Listen muss miteinander korrespondieren. Die Dateinamen MÜSSEN AUCH WENN SIE KEINE LEERZEICHEN ENTHALTEN jeder für sich in Anführungszeichen eingeschlossen werden.

Wie TheDarkLord schon schrieb, lässt man das Script am besten als geplanten Task ausführen. Batchscripte, die die ganze Zeit im Hintergrund laufen, verursachen eine zu hohe Prozessorlast

Gruß
Friemler
Bitte warten ..
Mitglied: TheDarkLord
11.10.2011 um 21:07 Uhr
Zitat von Arano:
Hey,

> Danke für die Richtigstellung face-smile
Naja, also... ich war mir wegen der Rechtschreibung ziemlich sicher, hab es dann aber doch nachgeschlagen face-smile

> PS: Dein letzter Satz "Dabei wol... ... hen" wird übrigens in Deinem Beitrag nicht angezeigt...
Öhm... und warum kann ich den Lesen (sowohl ein-, als auch ausgeloggt) und du ebenfalls ?


~Arano

Hmm das frage ich mich gerade auch, eben war das nicht da... kurios
Bitte warten ..
Mitglied: Arano
11.10.2011 um 21:38 Uhr
Huhu,

Friemlers Senf schmeckt besser und sauberer ist er auch !

Bei mir funktioniert es / was nicht... könnte an der VM liegen... jedenfalls ist das der Grund warum ich dann psftp.exe verwendet habe.
01.
C:\DuE\Arano>ftp -n -v 
02.
ftp> open 192.168.178.180 
03.
ftp> user arano 
04.
Kennwort: ****** 
05.
ftp> pwd 
06.
257 "/home/arano" is the current directory 
07.
ftp> ls -l 
08.
Illegal PORT command 
09.
ftp> pwd 
10.
257 "/home/arano" is the current directory 
11.
ftp>
Nach der Ausgabe von "Illegal PORT command" dauert es eine Weile und erst dann springt er einen weiter und lässt sich weiter befehlen.
FTP-Server Log dazu:
Okt 11 21:28:30 proftpd[4625] : FTP session opened.
Okt 11 21:28:37 proftpd[4625] : USER arano: Login successful.
Okt 11 21:28:45 proftpd[4625] : Refused PORT 10,0,2,15,19,140 (address mismatch)

Meinte das läge an einer fehlenden PASV-Mode unterstützung.
Wobei... wenn es mit psftp funktioniert, dann kann es wiederum ja nicht an der VM gelegen haben...


~Arano

Edit:
Falls jemand wegen den IP unterschieden fragen möchte: 10.0.2.15 ist das WinXP in der virtuellen Maschine (VirtualBox)
Probiere ich das gleich mit 10.0.2.2 als FTP-Server, geschieht leider das gleiche, daran liegt es also auch nicht.
Bitte warten ..
Mitglied: batimbus
12.10.2011 um 09:25 Uhr
Hey Leute,

danke erst einmal für die schnellen Antworten. Hätte ja nicht gedacht, das es gleich so viele sind.
Ich werde das jetzt mal ausprobieren und euch berichten.

~ batimbus
Bitte warten ..
Mitglied: batimbus
19.10.2011 um 14:11 Uhr
Habe jetzt mal Net Drive und Visual Cron installiert. Der Zugriff auf den FTP klappt perfekt.
Jetzt habe ich nur noch das Problem, das Visual Crown eine Email bei Fehler sendet. Im Moment sendet er entweder immer eine Email oder gar nicht.

Kennt sich vielleicht jemand mit Visual Cron aus?

~ batimbus
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Linux Tools
CURL mehrere Dateien vom ftp-Server herunterladen (10)

Frage von highpriest zum Thema Linux Tools ...

Batch & Shell
gelöst Per Batch FTP-Server Dateien ändern (1)

Frage von Marlon1 zum Thema Batch & Shell ...

Batch & Shell
gelöst EDI Dateien auf Inhalt prüfen und verschieben (6)

Frage von ThomasKern zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...