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

gelöst Batch für Serverabfrage von geänderten Dateien, Auslesen Änderungsdatum von Dateien

Mitglied: painkillerpro

painkillerpro (Level 1) - Jetzt verbinden

16.07.2008, aktualisiert 21.07.2008, 11169 Aufrufe, 8 Kommentare

Mein Anliegen für nen batch-file ist ein bisschen mehr...

Ich benötige ein Batch-File zur Abfrage von Dateien in einer Ordnerstruktur auf einem Server. Der bat-file selbst soll aber nicht auf dem Server liegen, der abgefragt werden soll. Hierfür soll ein Account für den Serverzugriff mitgegeben werden.

Genauer:

Auf abzufragendem Server liegen Ordner (inkl. Unterordner). In diesen Ordnern befinden sich Backup-Dateien, die auf ihre Aktualität überpürft werden sollen.
Wenn die Dateien (alle verfügbaren Dateien in den Ordnern/Unterordner älter als x Tage sind, sollen diese Dateien in ein log-file geschrieben werden und dieser dann per Email an eine bestimmte Person (Systemadministrator verschickt werden). Wenn die Dateien aber jünger als x Tage sind, soll keine Benachrichtigung erfolgen.

So könnte die Routine aussehen:

- Authentifizierung auf Server, um Ordner/Unterordner nach Dateien inklusive ihres Änderungsdatums zu überprüfen (Überprüfung evtl mit WasFile.exe)
- wenn Änderungsdatum jeder einzelnen Datei in Ordner mehr als x Tage zurückliegt, Datei in log-file schreiben, ansonsten keine Information
- log-file über SMTP-Server an verschiedene Empfänger verschicken (schon realisiert über smtpmail.exe)

Wäre echt toll, wenn jemand einen Lösungsvorschlag, vorallem für die Authenifizierung und die Abfrage der Dateien in Ordnerstrukur auf dem Server hat und für die Überprüfung des Änderungsdatums. Am besten wäre es natürlich, wenn in dem log-file alle Dateien enthalten sind, die älter als x Tage sind, und dahinter aufgelistet wird, wann sie denn zum letzten mal geändert wurden.

z.b.

file1.exe zuletzt geändert am 12.06.08
file2.stc zuletzt geändert am 08.02.07

Danke schon mal im Vorraus für eure Ansätze...

Mfg painkillerpro
Mitglied: Nailara
16.07.2008 um 13:33 Uhr
Hi,

Authentifikation ist nicht schlimm:

net use \\<servername>\ipc$ <klartextpasswort> /user:<domäne>\<username>

Die jeweiligen Sachen sind einfach passend zu ersetzen - das natürlich ohne < und > . Wenn es eine Freigabe gibt, auf die man sich authentifizieren kann, dann heisst das eben

net use \\<servername>\<freigabe> <klartextpasswort> /user:<domäne>\<username>

Achtung beim Testen: es kann nur einmal eine Anmeldung in einem Benutzerkontext auf die Ressource gemacht werden - schaust Du also zuerst mal mit dem Explorer nach, was so abgeht, dann funktioniert das net use nicht mehr. Dann hilft

net use \\<server>\<freigabe> /delete

Für die Dateisuche gibt es das Kommando find - damit kann man schon mal eine Menge machen. Manchmal reicht das nicht und da gibt es auf sourceforge.net die UnixUtils - das sind nativ portierte Unixkommandos. Eins davon ist auch find und da kannste mit -atime, -mtime und -ctime sowie einer Zahl dahinter sehr fein steuern, wie alt die Datei sein darf/soll.

Das geht dann etwas so:

find C:\ -ctime +3 > logfile.log 2> errorfile.log

-ctime +3 sagt: alle Dateien, deren Erstellungsdatum mehr als drei Tage her ist.
-citme -3 würde sagen: alle Dateien, deren Erstellungsdatum jünger als drei Tage ...

Mit dem Unix-find und der Option -exec könntest Du es mit ein wenig Überlegung auch schaffen, die entsprechenden Log-Dateien, die älter sind als n Tage, einfach löschen oder komprimieren oder was auch immer machen zu lassen....

Grüße Mathias
Bitte warten ..
Mitglied: painkillerpro
16.07.2008 um 14:37 Uhr
danke erstma...

das mit der freigabe hat geklappt.

jetzt musst du mir das nur mal mit den unixutils erklären, die sind ja bestimmt nicht standardmäßig auf nem windows2003 server implementiert??!!
gibt es vllt auch ne andere möglichkeit??
und wie bekomme ich das letzte änderungsdatum der datei in den log-file... bzw. wie kann ich das auslesen??

die log-files werden immer wieder neu erstellt, und ausgelesen und der inhalt über mail verschickt!!
mir geht es nur darum, dass die namen der dateien inkl. letztes änderungsdatum in den log-file kommen und auch alle unterverzeichnisse durchsucht werden...

danke erstma für eure hilfe...
Bitte warten ..
Mitglied: Nailara
16.07.2008 um 14:41 Uhr
Hi,

prima - ein Schritt weiter

Die UnixUtils findest Du unter http://unxutils.sourceforge.net/. Das ist ein ZIP-File, das kannste runterladen und dann das Programm find aus /usr/local/wbin herausextahieren.

In der Tat ist es auf Windows erstmal nicht vorhanden - die Tools sind native Ports von Linuxprogrammen und wie wir MS kennen ... naja.

'ne andere Idee - also hab ich jetzt erstmal nicht. Vielleicht kann man das mit dem Windows Find auch machen, doch da bin ich unsicher...


Grüße Mathias
Bitte warten ..
Mitglied: painkillerpro
16.07.2008 um 14:50 Uhr
wäre es denn möglich, alle dateien in ordner/unterordnern über ne for-schleife mit dem befehl "dir" auszulesen:

Für alle durchsuchten Dateien in Ordner/Unterverzeichnissen tue etwas??!! so in der art...

die realisierung über das alter einer datei kann ich auch über wasfile.exe realisieren, wüsste aber ni, wie die for-schleife und die aufzurufende prozudur/unterprogramm auszusehen hätten.

for /f "delims=" %%i in ('dir /b /a-d /od "%WORKDIR%\%tools%\*.*"') do set "Zieldatei=%WORKDIR%\%tools%\%%i"

"%WORKDIR%\%tools%\WasFile.exe" %Zieldatei% modified after today-%LastModified% >> backup.log
if not errorlevel 1 goto :TRUE >> backup.log

--> funktioniert aber ni...

die schleife soll eigentlich jede einzelne datei auslesen und den namen+endung (text.txt) in die variable "Zieldatei" schreiben. für diese variable wird dann über wasfile.exe das alter geprüft.
ich will eigentlich nur, dass die routine für jede einzelne gefundene datei durchläuft, aber keine ahnung wie das geht!! hhelft mir bitte...

ich hoffe es ist verständlich...

danke!!
Bitte warten ..
Mitglied: bastla
20.07.2008 um 19:41 Uhr
Hallo painkillerpro!

Eine eigene Variable zu verwenden wäre zwar auch möglich, aber eigentlich genügt auch die Laufvariable %%i der "for"-Schleife.

Falls Du auch Unterverzeichnisse mit erfassen möchtest, bräuchtest Du beim "dir" noch "/s" - dann enthielte übrigens %%i immer den vollen Pfad, und Du kämst mit "%%~nxi" zu Dateiname + Extension; wenn sich, wie in der aktuellen Version, das "dir" nur auf ein bestimmtes Verzeichnis bezieht, steht in %%i ohenhin kein Pfad.

Je nachdem, was Du noch alles vorhast, kannst Du entweder gleich alles in der Schleife selbst erledigen:
01.
for /f "delims=" %%i in ('dir /b /a-d /od "%WORKDIR%\%tools%\*.*"') do "%WORKDIR%\%tools%\WasFile.exe" %Zieldatei% modified after today-%LastModified% >> backup.log && echo hier die Aktion für Errorlevel 0 für die Datei "%%i"
oder Du verwendest ein Unterprogramm:
01.
for /f "delims=" %%i in ('dir /b /a-d /od "%WORKDIR%\%tools%\*.*"') do call :ProcessFile "%%i" 
02.
echo Fertig. 
03.
goto :eof 
04.
 
05.
:ProcessFile 
06.
:: Die beim Aufruf des Unterprogramms übergebene Datei ist hier %1 
07.
"%WORKDIR%\%tools%\WasFile.exe" "%WORKDIR%\%tools%\%~1" modified after today-%LastModified% >> backup.log 
08.
if not errorlevel 1 goto :TRUE >> backup.log 
09.
... 
10.
... 
11.
goto :eof 
12.
 
13.
:TRUE 
14.
... 
15.
... 
16.
goto :eof
Grüße
bastla
Bitte warten ..
Mitglied: painkillerpro
20.07.2008 um 23:35 Uhr
danke... hat mir sehr geholfen...
funktioniert!!

jetzt müsste ich nur noch wissen, ob ich auch das letzte änderungsdatum direkt auslesen kann? jetzt prüfe ich ja nur, in welchem zeitraum zuletzt geändert wurde! is zwar auch n kriterium, wäre aber spitze, wenn ich das änderungsdatum auslesen könnte!! (evtl. funktioniert das auch über nen vbs-skript in dem batch-file, keine ahnung, wie das funktioniert??)

dankeschön

mfg painkillerpro
Bitte warten ..
Mitglied: bastla
20.07.2008 um 23:47 Uhr
Hallo painkillerpro!

jetzt müsste ich nur noch wissen, ob ich auch das letzte änderungsdatum direkt auslesen kann?
Auch dazu kannst Du auf %%i zurückgreifen:
01.
for /f "delims=" %%i in ('dir /b /a-d /od "%WORKDIR%\%tools%\*.*"') do echo %%~ti
Oder gleich mit einem Zerlegungsbeispiel:
01.
for /f "delims=" %%i in ('dir /b /a-d /od "%WORKDIR%\%tools%\*.*"') do for /f "tokens=1-3 delims=. " %%a in ("%%~ti") do echo "%%i" zuletzt geaendert: %%c-%%b-%%a
Was Du übrigens noch so alles mit der Schleifenvariable anstellen könntest, siehst Du am Ende der Online-Hilfe zu "for" (mit "for /?").

Grüße
bastla
Bitte warten ..
Mitglied: painkillerpro
21.07.2008 um 00:38 Uhr
thanks!! werd ich morgen früh gleich ma ausprobieren!!
besten dank bastla!!
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Batch: Dateiname abhängig vom Änderungsdatum auslesen

gelöst Frage von freaktastischBatch & Shell6 Kommentare

Servus zusammen, hab folgende Situation Oberordner: beinhaltet test.bat, Ordner1 und Ordner2 Ordner1, sowie Ordner2 beinhalten .docx Dateien. Mein Anliegen ...

Batch & Shell

Batch: mit "dir" Befehl das neuste Lese- und Änderungsdatum auslesen

gelöst Frage von BatchAnfaenger91Batch & Shell11 Kommentare

Hallo, bin grad dabei ein Batch Skript zu schreiben komme aber nicht mehr weiter. Es hört sich für mich ...

Batch & Shell

Dateigröße und Änderungsdatum auslesen

Frage von michi-ffmBatch & Shell6 Kommentare

Hallo zusammen, ich habe folgendes Problem, vielleicht kann mir einer ja weiterhelfen. :) Dieses Skript funktioniert schon einmal wunderbar, ...

Batch & Shell

Batch Änderungsdatum von Dateien vergleichen und ältere löschen

gelöst Frage von 129528Batch & Shell10 Kommentare

Hallo zusammen, ich habe schon andere Artikel und Foreneinträge zu diesem Thema (siehe Titel) gelesen, aber noch keine eindeutige ...

Neue Wissensbeiträge
Sicherheit

MikroTik-Router patchen, Schwachstelle wird ausgenutzt

Information von kgborn vor 9 StundenSicherheit

Am 23. April 2018 wurde von Mikrotik ein Security Advisory herausgegeben, welches auf eine Schwachstelle im RouterOS hinwies. Mikrotik ...

Windows 10

Microcode-Updates KB4090007, KB4091663, KB4091664, KB4091666 für Windows 10

Information von kgborn vor 15 StundenWindows 101 Kommentar

Kurze Information für Administratoren von Windows 10-Systemen, die mit neueren Intel CPUs laufen. Microsoft hat zum 23. April 2018 ...

iOS
Updates für Iphone und Co
Information von sabines vor 19 StundeniOS

Gestern abend ist iOS 11.3.1 erschienen, ein kleineres Update, dass einige Lücken schließt und "Lahmlegen" nach einem Display Tausch ...

Windows 7

Windows 7 - Server 2008 R2: Exploit für Total Meltdown verfügbar

Information von kgborn vor 2 TagenWindows 7

Kleine Information für Administratoren, die für die Updates von Windows 7 SP1 und Windows Server 2008 R2 SP1 verantwortlich ...

Heiß diskutierte Inhalte
Batch & Shell
Powershell: Im AD nach Rechnern mit bestimmten IP-Adressen suchen
gelöst Frage von Raven42Batch & Shell36 Kommentare

Hallo zusammen, ich suche nach einer Möglichkeit nach Computern im AD zu suchen , deren IP-Adresse mit 10.11.12. beginnt. ...

C und C++
Frage1 C Programmierung-Makefile Frage2 PHP-Programmierung HTTP-Fehler 404
Frage von KatalinaC und C++34 Kommentare

Hallo, ich habe 2 Fragen, die nichts miteinander zu tun haben aber mit denen ich mich gerade beschäftige: 1. ...

LAN, WAN, Wireless
Watchguard T15 VPN Einrichtung
gelöst Frage von thomasjayLAN, WAN, Wireless25 Kommentare

Hallo zusammen, wir möchten gerne über unsere Watchguard T15 einen VPN-Tunnel (Mobile VPN with IPSec) einrichten! Als Client nutzen ...

Windows Server
Alten DC entfernen
Frage von smartinoWindows Server24 Kommentare

Hallo zusammen, ich habe hier eine Umgebung übernommen und erstmal einen DCDIAG gemacht. Dabei fällt auf, daß eine ganze ...