Top-Themen

Aktuelle Themen (A bis Z)

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

Mitglied: 6741

6741 (Level 2)

06.11.2007, aktualisiert 20.01.2008, 4321 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 ..
Ähnliche Inhalte
E-Mail
HMail Server: kann keine Mails versenden
gelöst Frage von qualidatE-Mail

Eigentlich ist es nicht das erste Mal, dass ich einen HMail Server einrichte, diesmal ist es wie verhext. Also ...

Visual Studio

PDFs aus Ordner-Verzeichnis automatisch per Mail versenden

Frage von tyro89Visual Studio5 Kommentare

Hallo :), habe folgendes Problem: Ich möchte gerne PDF´s aus verschiedenen Ordnern automatisch an verschiedene Email Empfänger verschicken und ...

Outlook & Mail

Benachrichtigungen über neue E-Mails an andere E-Mailadresse versenden

Frage von paupau90Outlook & Mail2 Kommentare

Hallo zusammen, ist es möglich eine Benachrichtigung beim Eingang neuer E-Mails an eine bestimme, immer gleiche, Adresse zu versenden? ...

VB for Applications

VBA Access - Mails aus Ordner XXX mit bestimmtem Datei per Mail versenden

Frage von thomas1972VB for Applications2 Kommentare

Hallo, leider drehe ich mich ein wenig im Kreis Folgendes soll passieren. 1. Aus einem Ordner c:\temp\ sollten alle ...

Neue Wissensbeiträge
Router & Routing

Endlich: Reines Kabel-TV Modem in D erhältlich !

Information von aqui vor 2 TagenRouter & Routing9 Kommentare

Mit dem Technicolor TC4400-EU Modem sind nun auch Breitband Router ohne integriertes Modem oder Firewalls wie z.B. die pfSense ...

Netzwerkgrundlagen
The Illustrated TLS Connection
Information von Lochkartenstanzer vor 3 TagenNetzwerkgrundlagen

Moin, Unter findet man eine gelungene Erläuterung von TLS. Fördert sehr das verständnis darüber, was da passiert. lks

Windows 10

Zuverlässiger Remove-AppxProvisionedPackage Ausführen in W10-1803

Tipp von NetzwerkDude vor 4 TagenWindows 104 Kommentare

Moin, Remove-AppxProvisionedPackage hat in 1709 recht zuverlässig funktioniert, in 1803 ist es leider so das es gerne mail failed ...

LAN, WAN, Wireless
Erfahrung mit dem tplink eap115-wall
Erfahrungsbericht von fisi-pjm vor 4 TagenLAN, WAN, Wireless

Die Hintergründe Als ausgebildeter Fisi und ambitionierter "Hobby ITler" bin ich Netzwerktechnisch immer auf der Suche nach "schönen" Lösungen ...

Heiß diskutierte Inhalte
Netzwerkprotokolle
OpenVPN auf dem Client Verständnisfrage
gelöst Frage von bk900042Netzwerkprotokolle23 Kommentare

Hallo Community, möchte OpenVPN benutzen, um mich über VPN per RDP zu einem Server zu verbinden und auch GIT ...

Windows Server
AD User wird immer wieder gesperrt
Frage von YellowcakeWindows Server14 Kommentare

Hey ich habe einen User (ein GL User - Natürlich was denn sonst) der immer wieder gesperrt wird. Ich ...

Netzwerkmanagement
Netzwerklaufwerk verbinden nicht möglich
gelöst Frage von SteiniMNetzwerkmanagement13 Kommentare

Hallo Leute, ich bin neu hier und brauche eure Hilfe. Danke schon mal im Voraus. Ich habe folgendes Problem: ...

Switche und Hubs
OpenSource oder Freeware zur Verwaltung von Switchen
Frage von JonskezSwitche und Hubs12 Kommentare

Hallo, gibt eine kostenlose Verwaltungssoftware für Switche (überwiegend HP/Aruba)? Es sollte möglich sein, aus der Ferne z.B. die Firmware ...