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 For R Such-Richtung umgekehrt?!

Mitglied: manufactum

manufactum (Level 1) - Jetzt verbinden

08.02.2010 um 10:21 Uhr, 3185 Aufrufe, 4 Kommentare

Hallo Admins,

ich habe mir ein Batch-Skript geschrieben, daß mit Drivesnapshot täglich Backups unseres Servers erstellt. Alle 7 Tage wird ein Vollbackup erstellt, dazwischen inkrementelle. Das Skript löscht automatisch nach 14 Tagen die Backups der vorletzten Woche.

Um die inkrementellen Backups immer vom aktuellsten Vollbackup zu erstellen soll es sich jeweils das aktuellste Hashfile dazu aus den Base-Ordnern suchen.

Ordnerstruktur:

server2_C\
2010-01-31-base
2010-02-01
2010-02-02
2010-02-03
2010-02-04
2010-02-05
2010-02-06
2010-02-07-base
2010-02-08
usw. max 14

Diese Zeile hat dafür bisher immer wunderbar funktioniert:

for /R "%SnapshotsBaseDir%\server2_%vol1%" %%f in (full.hsh*) do set LastHashFile=%%f

echo Gewähltes Hashfile: %LastHashFile% >"c:\skripte\test.log"

Seit neuestem durchsucht das Skript aber reproduzierbar den Ordner nicht mehr aufsteigend, sondern absteigend. D.h. die Varibale "LastHashFile" hat als Inhalt zuletzt das ältere Hashfile.

Auf einem anderen Rechner, in einer Testumgebung, funktioniert die Zeile tadellos...

Meine Fragen nun: Woher kommt die Suchrichtungsänderung? Und wie ändere ich die wieder?

Vielen Dank für Eure Hilfe!!
Mitglied: Biber
08.02.2010 um 10:49 Uhr
Moin manufactum,

willkommen im Forum.
Die FOR /R-Anweisung durchsucht meines Wissens zwar rekursiv einen Verzeichnisbaum, aber nicht in einer gewährleisteten Reihenfolge.
Wenn es also vorher "eigentlich immer" gepasst hat... Zufall, Schicksal, aber auf jeden Fall nicht einklagbar.

Ich sehe zwei (oder gar drei) Strategien, wie du dein Ziel erreichen kannst, je nach vorliegenden Rahmenbedingungen:

  • falls die Ordner jeweils direkt bei der Sicherung/am tag der Sicherung angelegt werden, dann kannst du das Alter (bzw. die Reihenfolge der Ordner) aus dem "DIR /TC -Erstellungsdatum ermitteln. Wenn denn im jüngsten Ordner auch das jüngste Hash-File ist

  • wenn das Anlegen der Ordner NICHT jeweils am Tag der Sicherung erfolgt, aber die Namenskonvention wie oben durchgängig eingehalten wurde, dann kannst du auch aus den Dateinamen das älteste/jüngste Unterverzeichnis ermitteln- wieder gilt: wenn denn auch im jünsten Verzeichnis das gesuchte Hashfile ist.

  • falls das jüngste und gesuchte Hashfile "irgendwo" in dieser Struktur liegt und wirklich nur daran erkennbar ist, dass es halt das jüngste von allen ist......dann musst/kannst du dem FOR /R -die Wahl der Reihenfolge überlassen, denn dann musst du ja ohnehin vom ersten bis zum letzten gefundenen Hashfile vergleichen "Hat das ein Datum größer als das bisher bekannte Jüngste)

Falls es der Fall 3 ist -hashfile ist irgendwo- dann wäre noch wichtig zu wissen, wieviel zeitlicher Abstand zwischen den Datei-Datumswerten der hashfiles üblicherweise liegt. Per Batch-Datumsvergleich kannst du normalerweise nur auf Stunden/Minuten-Genauigkeit gehen,; wenn Sekunden relevant sind, dann sollte der Datumsverglich mit VBScript erfolgen.

Grüße
Biber
Bitte warten ..
Mitglied: manufactum
08.02.2010 um 12:26 Uhr
Hallo Biber,

danke für Deine Antwort.

Strategie Nr.1 erscheint mir am praktikabelsten. Habe das mal so versucht:

for /f "skip=7" %%i in ('dir /b /on /ad "%SnapshotsBaseDir%\server2_%vol1%\20*"') do for /R %%i %%f in (full.hsh*) do set LastHashFile=%%f

Beim "dir"-Befehl gibt es sicher mehrere mögliche Wege. Die Ordner sind alphabetisch geordnet und jeder Ordner wird bei der Sicherung durch das Skript erstellt.

Irgendwie klappt die Verknüpfung von "erst ordnen" dann "suchen und Variable festlegen" aber noch nicht. Weißt Du eine Lösung?

Vielen Dank für Vorschläge!!
Bitte warten ..
Mitglied: Biber
08.02.2010 um 12:46 Uhr
Moin manufactum,

warum hast du denn den Ehrgeiz, diese 2 Befehle in eine zeile zu trümmern?

Der DIR-Befehl kennt auch einen Schalter /B wie /Billich.
Damit bekommst du - in Verbindung mit der Sortierung nach Namen oder Datum ) nur die Ordnernamen in der Verzeichnisebene "%SnapshotsBaseDir%\server2_%vol1%\20*" heraus (ohne Vorspann, ohne Summenzeile... einfach nur 11 Zeilen für 11 Ordner)
Kannst dir also das "skip=7" sparen.

Wenn du die Ausgabe dieser sortierten Liste mit einem FOR/F-Befehl durchläufst, dann gilt auch hie "Okay, ich merke mir jeden Ordnernamen mit "SET letzter=%%i".
Bei geschickter sortierung ist dann der letzte der Liste auch der ....jüngste/alphabetisch kleinste oder was immer du auswertest.

Und NUR in diesem gefundenen Ordner %letzter% brauchst du doch ein FOR/R- rekursives Durchwackeln machen... nicht in allen Ordnern.

Bitte versuche es erstmal anhand der Hinweise, auf die zwei Schritte umzustellen.
Sollte es klemmen... Hilfe steht hier immer bereit.

Grüße
Biber
Bitte warten ..
Mitglied: manufactum
08.02.2010 um 14:17 Uhr
Hallo Biber,

die gesuchten Hash-Dateien "full.hsh" befinden sich ausschließlich in den "*-base"-Ordnern.

for /f %%i in ('dir /b /ad /on "%SnapshotsBaseDir%\server2_%vol1%\*-base"') do set letzter=%%i

set LastHashFile="%SnapshotsBaseDir%\server2_%vol1%\%letzter%\full.hsh"

So hat es jetzt funktioniert! Den "dir"-Befehl kann man vielleicht noch vereinfachen.

Danke Dir für Deine Hilfe.

Grüße
manufactum
Bitte warten ..
Ähnliche Inhalte
Exchange Server
Exchange Absenderfilterung umgekehrt
gelöst Frage von schicksalExchange Server4 Kommentare

Hallo Admins, wir werden seit neuestem an unserem Exchange 2010 mit Spam von neuen Domainendungen belästigt. (.date, .xyz,) Ich ...

Cloud-Dienste
OwnCloud - Synchron. Richtung?
gelöst Frage von InvisibleQuantumCloud-Dienste6 Kommentare

Hay, ich hab mir aber auf meinem Raspi3 ownCloud eingerichtet und alles läuft soweit. Meine Frage: Es werden ja ...

Microsoft Office
Excel Such- und Vergleichsfunktion
gelöst Frage von oesi1989Microsoft Office15 Kommentare

Hallo zusammen, ich habe 2 Tabellen mit Name, Vorname und Arbeitgeber. 1. Tabelle Name Vorname Geb-Datum Arbeitgeber Straße Ort ...

Windows Server
DFS-R exportieren
Frage von BPeterWindows Server3 Kommentare

Hallo, ich habe DFS-Replication so eingerichtet, dass ein Verzeichnis von einem Server auf viele andere repliziert wird (hub and ...

Neue Wissensbeiträge
Administrator.de Feedback
Was als Noob hier mal gesagt werden musste
Information von th30ther vor 5 StundenAdministrator.de Feedback

Moinsen wertes Forum, ich möchte mich an dieser Stelle mal beim Forum generell und bei aqui speziell bedanken! Ich ...

Netzwerkmanagement

Neue Angebotsmail ist raus: 10 Prozent auf alle Docusnap Lizenzen

Information von Frank vor 12 StundenNetzwerkmanagement

Hallo IT-Pros, unsere Angebotsmail ist raus: Exklusive für unsere Administrator.de-Mitglieder gibt es heute auf alle Miet- und Kauflizenzen von ...

Windows 10
Windows 10 Mai 2019 Update (Version 1903) ist da
Information von kgborn vor 15 StundenWindows 103 Kommentare

Nur ein kurzer Infosplitter: Microsoft hat die Nacht (21. Mai 2019) das Funktionsupdate auf Windows 10 Version 1903 freigegeben. ...

E-Mail

Newsletter: Unread News - IT News in Byte Länge

Tipp von franktaylor vor 1 TagE-Mail9 Kommentare

Hallo, würde gerne auf einen Newsletter hinweisen, den ich heute per Zufall gefunden und mit euch gerne teilen möchte: ...

Heiß diskutierte Inhalte
Windows Server
Passwortänderung an RODC möglich?
Frage von DexthaWindows Server23 Kommentare

Hallo, ich habe einen RODC, auf welchen ich über ldaps (Web-Seite mit php7) Passwortänderungen durchführen möchte. Ist das grundsätzlich ...

Windows Server
Ungewollte IP Änderung am DC sorgt für Probleme
Frage von thomas-99Windows Server19 Kommentare

Hallo Zusammen, wir haben ein kleines Netz mit 5 verschiedenen VMs (DC, AD, Fileserver, Exchange, TK Anlage - alle ...

Windows Server
RDP als Citrix Alternative
gelöst Frage von samreinWindows Server19 Kommentare

Hallo zusammen, ich bin neu hier und das ist mein erster Beitrag. Ich bin Einzeladmin und wir setzen bei ...

Hyper-V
Novell virtualisieren
Frage von spoboeHyper-V18 Kommentare

Hallo zusammen, ich habe absolut keine Ahnung von Novell, aber wir haben hier ein ganz altes Schätzchen (vermutlich Novell ...