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

neue Ordner auf FTP Server per Mail versenden

Frage Microsoft Windows Tools

Mitglied: 6741

6741 (Level 2)

06.11.2007, aktualisiert 20.01.2008, 4258 Aufrufe, 11 Kommentare

Hallo,

ich möchte einen FTP Server ( bzw den Pfad c:\ftp\ordner ) checken, ob es neue Ordner seit dem letzten Check gibt.

Diese dif soll dann per Mail versendet werden.

Der Befehl:

dir /s /b c:\ftp\ordner\*. > c:\ftpcheck\ftp_neu.txt

gibt mir nur den gesamten Ordner an.

Ich möchte aber eine dif Prüfung zum letzten Check machen.

Es kann in den Ordner c:\ftpcheck eine Datei abgelegt werden die den letzen Stand der Prüfung hat und diese müssten dann für den nächsten check geprüft werden.

Gruß
Mitglied: bastla
07.11.2007 um 20:15 Uhr
Hallo firewalldevil!

Auf Basis eines Tutorials von Bitsqueezer (aber wieder in Batch) könnte ich folgende Variante zum Testen anbieten (das Versenden der Mail mit "blat.exe" ist nur angedeutet, aber bei Bedarf mehrfach hier im Forum nachzulesen):
01.
@echo off & setlocal 
02.
set "LOGDIR=C:\ftp" 
03.
set "MASK=*.*" 
04.
set "LOGFILE=C:\ftpcheck\Log.txt" 
05.
set "DIRFILE1=C:\ftpcheck\Content1.txt" 
06.
 
07.
set "DIRFILE2=%temp%\Content2.txt" 
08.
set "LOGFILENEW=%temp%\LogNew.txt" 
09.
set "LOGFILEDEL=%temp%\LogDel.txt" 
10.
 
11.
dir /s /b /ad /on "%LOGDIR%\%MASK%">"%DIRFILE2%" 2>nul 
12.
 
13.
if exist "%LOGFILENEW%" del "%LOGFILENEW%" 
14.
if not exist "%DIRFILE1%" type "%DIRFILE2%">"%LOGFILENEW%" 2>nul & goto :Weiter 
15.
for /f "usebackq delims=" %%i in ("%DIRFILE2%") do findstr /B /C:"%%i" "%DIRFILE1%"|findstr /E /C:"%%i">nul||echo %%i>>"%LOGFILENEW%" 
16.
 
17.
if exist "%LOGFILEDEL%" del "%LOGFILEDEL%" 
18.
if not exist "%DIRFILE2%" type "%DIRFILE1%">"%LOGFILEDEL%" & goto :Weiter 
19.
for /f "usebackq delims=" %%i in ("%DIRFILE1%") do findstr /B /C:"%%i" "%DIRFILE2%"|findstr /E /C:"%%i">nul||echo %%i>>"%LOGFILEDEL%" 
20.
 
21.
:Weiter 
22.
if exist "%DIRFILE2%" (move "%DIRFILE2%" "%DIRFILE1%") else (del "%DIRFILE1%" 2>nul) 
23.
 
24.
if exist "%LOGFILE%" del "%LOGFILE%" 
25.
if exist "%LOGFILENEW%" echo Neue Verzeichnisse:>"%LOGFILE%" & type "%LOGFILENEW%">>"%LOGFILE%" & echo\>>"%LOGFILE%" 
26.
if exist "%LOGFILEDEL%" echo Entfernte Verzeichnisse:>>"%LOGFILE%" & type "%LOGFILEDEL%">>"%LOGFILE%" 
27.
 
28.
if not exist "%LOGFILE%" goto :eof 
29.
echo Mail mit "blat.exe" versenden ... 
30.
type %LOGFILE%
Die Ausgabe des %LOGFILE%-Inhaltes dient nur Demozwecken (bzw wäre der Hauptteil des Mail-Body).

Grüße
bastla

[Edit] Fehlendes (zweites) Umleitungszeichen ergänzt. [/Edit]
Bitte warten ..
Mitglied: 6741
07.11.2007 um 20:36 Uhr
hi bastla ...

sieht sehr gut aus .... aber ( schitt es kommt immer ein aber .... ;>) )

habe ich zb

c:\ftp\ordner1\neu1
c:\ftp\ordner1\neu2
c:\ftp\ordner2\neu1

werden die Unterordner nicht durchsucht ( einer ja, aber nicht beide ) ... hab ich evtl auch nicht gesagt, aber es wäre super wenn alle Ordner nach neuen Ordner durchsucht werden.

gruß
Bitte warten ..
Mitglied: bastla
07.11.2007 um 21:17 Uhr
Hallo firewalldevil!

Da war mir doch tatsächlich ein ">" von der Schaufel gesprungen ...

... ich hab aber noch ein anderes gefunden und oben eingebaut.

Grüße
bastla
Bitte warten ..
Mitglied: 6741
07.11.2007 um 21:23 Uhr
ich sach mal ....

vielen Dank ...

und respekt ....

gruß
Bitte warten ..
Mitglied: 6741
08.11.2007 um 17:45 Uhr
Hi bastla,

die Überprüfung auf Laufwerksebene geht ja, super ...

Bezug auf den Titel ... also einen FTP Server auslesen, würde das sicher etwas anderes sein.

Jetzt liegen die Daten local auf einem Server der auch FTP Server ist ( Windows ) nutze ich aber einen nicht Windows Server als FTP muss ich mich mit einem Client anmelden.

Kann man dann den Inhalt des FTP Server mit Hilfe eine User auch komplett auslesen und vergleichen.

Hintergrund ist, dass ich die Daten bald auf ein kleines NAS Laufwerke ( 150€ ) legen möchte, welches dann immer an ist und halt auch FTP Server ist, aber nicht Windows.

Gruß
Bitte warten ..
Mitglied: bastla
08.11.2007 um 18:19 Uhr
Hallo firewalldevil!

Eigentlich geht es dann nur um den Ersatz der Zeile
01.
dir /s /b /ad /on "%LOGDIR%\%MASK%">"%DIRFILE2%" 2>nul
zum Erstellen der Ordnerliste - der Rest könnte (unter Berücksichtigung der folgenden Anmerkung zur Technik des Vergleiches) grundsätzlich unverändert bleiben.
Wie werden die Listen verglichen?

Unter der Annahme, dass "findstr" Laufzeitvorteile gegenüber einer "for"-Schleife hat, wird wie folgt versucht, einen Ordnernamen in den gespeicherten Ergebnissen des letzten Durchlaufes zu finden:

Zunächst werden alle Einträge gesucht, deren Anfang exakt mit dem zu prüfenden Ordnernamen übereinstimmt.
In den daraus resultierenden Ergebnissen werden alle Einträge gesucht, deren Ende exakt mit dem zu prüfenden Ordnernamen übereinstimmt.
Jetzt kann das Ergebnis eigentlich nur noch ein oder kein Eintrag sein. Bleibt kein Eintrag über, muss der Ordner neu (bzw - mit vertauschten Listen - entfernt worden) sein.

Dies funktioniert gut, wenn (wie eben in Windows) davon ausgegangen werden kann, dass die Laufwerksangabe ("C:") nur am Anfang, nicht aber mitten in einem per "dir" ausgelesenen Ordnerpfad stehen kann.

Eine derartige Kennung müsste dann auch für die Darstellung der ftp-Ordner-Listings vorausgesetzt (oder erstellt) werden, da zB ein neu erstellter Ordner "alt" (ohne weitere Angabe, wie Laufwerk und/oder Pfad) nicht als neuer Ordner erkannt würde, wenn es bereits einen Ordner "alt und kalt" gäbe.

Grüße
bastla
Bitte warten ..
Mitglied: 6741
20.01.2008 um 14:44 Uhr
noch mal nach gefragt ...

wenn ich den Ordner aufteilen möchte ..

zb für User1 und User2

und nur auf Userebene die Inhalte überprüfen möchte ...

________________________________

dir /s c:\ftp\user1\ > c:\ftpcheck\ftp_neu.txt

fc c:\ftpcheck\ftp_neu.txt c:\ftpcheck\ftp_alt.txt >nul && goto difcheck

:difcheck

fc ftp_neu.txt ftp_alt.txt >dif.txt

find /i "DIR" dif.txt >dif1.txt

find /v /i "<DIR> ." dif1.txt >dif2.txt

type dif2.txt|find /v /i "----------">dif3.txt

c:\ftpcheck\sendemail.exe -f ftpcheck@domain.de -t empfänger -u FTP_Update -s ausgangsserver -xu kontoname -xp kontokennwort -o message-file=c:\ftpcheck\dif3.txt

del ftp_alt.txt

rename ftp_neu.txt ftp_alt.txt

:ende

del dif.txt
del dif1.txt
del dif2.txt
del dif3.txt

pause

_____________________________________________________

es wird alles gecheckt ...

evtl ne Idee ...

gruß
Bitte warten ..
Mitglied: bastla
20.01.2008 um 15:54 Uhr
Hallo firewalldevil!

Irgendwie sehe ich das Problem nicht ...

Wenn Du nicht den gesamten Ordner "C:\ftp", sondern nur den Ordner "C:\ftp\user1" (jeweils inklusive Unterordner) auf Veränderungen überprüfen willst, müsstest Du nur im oben geposteten Batch die erste "set"-Zeile anpassen, also
01.
set "LOGDIR=C:\ftp\user1"
schreiben (womit auch der eigentliche Sinn dieser Zeile erklärt wäre ). Variabel bekommst Du das noch hin, wenn Du entweder eine Eingabe der Art
01.
set /p "LOGDIR=Zu untersuchender Ordner? "
verwendest oder den Batch mit dem entsprechenden Ordner als Parameter aufrufst:
01.
set "LOGDIR=~1"
Natürlich kannst Du auch eine Kombination der Methoden vornehmen, etwa:
01.
set "LOGDIR=C:\ftp" 
02.
if [%1] neq [] set "LOGDIR=~1"
etc.

Grüße
bastla
Bitte warten ..
Mitglied: 6741
20.01.2008 um 18:57 Uhr
upps i did it again ...

falsche batch ...

jetzt geht´s ..

ich feile noch, wenn ich die Log´s protokollieren möchte würde ich sie gerne verschieben...

sprich ..

copy log.txt c:\ftpcheck\logs klappt auch, aber ein

rename c:\ftpcheck\logs\log.txt log%date%%time%.txt

gibt ein syntaxfehler ...

warum kann rename nicht mit date und time umgehen?

gruß
Bitte warten ..
Mitglied: bastla
20.01.2008 um 19:41 Uhr
Hallo firewalldevil!

warum kann rename nicht mit date und time umgehen?
Die Antwort findest Du sehr schnell, wenn Du vor Deine Zeile ein "echo" schreibst:
01.
echo rename c:\ftpcheck\logs\log.txt log%date%%time%.txt 
So sollte es gehen:
01.
ren c:\ftpcheck\logs\log.txt log%date:~-4%%date:~-7,2%%date:~-10,2%_%time:~0,2%%time:~3,2%%time:~6,2%.txt
Diese etwas aufwändige Schreibweise hat aus meiner Sicht zwei Vorteile:

Wenn das Datum vom Ende her aufgelöst wird, fällt der Unterschied zwischen W2000 einerseits und den OS-Versionen ab XP andererseits weg, und außerdem ist die Reihenfolge JJJJMMTT übersichtlicher.

Grüße
bastla
Bitte warten ..
Mitglied: 6741
20.01.2008 um 20:04 Uhr
oh das sieht nicht gut aus ....

danke ....

gruß
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Exchange Server
gelöst Exchange Server Mail senden (5)

Frage von MorrowToon zum Thema Exchange Server ...

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

Frage von highpriest zum Thema Linux Tools ...

Netzwerkmanagement
Zugriff auf FTP-Server durch Chrome in Windows 7 klappt nicht (3)

Frage von emilien2 zum Thema Netzwerkmanagement ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Erkennung und -Abwehr
Spam mit eigener Domain (12)

Frage von NoobOne zum Thema Erkennung und -Abwehr ...