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

Frage Entwicklung Batch & Shell

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, 11130 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
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 1 TagLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 2 TagenTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 2 TagenSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 2 TagenSicherheit10 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
Batch & Shell
Meltdown Microsoft Prüf Script - .zip Datei leider leer
gelöst Frage von MasterBlaster88Batch & Shell13 Kommentare

Hallo zusammen, ich patche gerade unsere Windows Server bzgl. der Meltdown Lücke. Patch vorhanden, Reg Keys gesetzt Um das ...

Batch & Shell
Shell-Skript - Syntax error: Unterminated quoted string
Frage von newit1Batch & Shell13 Kommentare

Hallo Ich schreibe ein Skript das eine CSV-Datei in eine mySQL Datenbank schieben soll. Bekomme nach start des Skrips ...

E-Mail
Erfahrungen mit hMailServer gesucht
Frage von it-fraggleE-Mail10 Kommentare

Hallo, meine neue Stelle möchte einen eigenen Mailserver. Ich als Linuxkind war direkt geistig mit Postfix dabei. Leider wollen ...

Entwicklung
VBS: alle PDF-Dateien in einem Ordner gleichzeitig öffnen
gelöst Frage von JuweeeEntwicklung9 Kommentare

Hallo, ich habe in deiner Ordnerstruktur (.\Tagesberichte\xx.18\) mehrere dynamische PDF-Formulare (mit LCD erstellt). Die Berichtsformulare sind im Layout alle ...