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, 3184 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 ...

Router & Routing
Netstat -r Frage
Frage von Hajo2006Router & Routing6 Kommentare

Hallo, also ich habe gerade ein netstat -r auf der Console eingegeben und bekomme ja dadurch alle Routen angezeigt. ...

Neue Wissensbeiträge
Rechtliche Fragen
Unitymedia siegt vor dem BGH
Information von transocean vor 17 StundenRechtliche Fragen3 Kommentare

Moin, lt. einem aktuellen Urteil darf UM Mietrouter seiner Kunden weiterhin in Hotspots verwandeln. Nachlesen kann man das hier. ...

Router & Routing
Der "768k-Day" kommt
Information von LordGurke vor 1 TagRouter & Routing2 Kommentare

Für Leute, die Router mit BGP-Fulltable betreiben vielleicht ein interessanter Hinweis: Die IPv4-Fulltable erreicht voraussichtlich innerhalb der nächsten 2-3 ...

Debian

Partition angeblich voll, dabei aber noch nicht mal zur Hälfte belegt

Anleitung von diemilz vor 1 TagDebian8 Kommentare

Hallo zusammen, ich habe ein kleines Problem: Ich habe auf einem physischen Debian Linux Server als ZoneMinder-Server (HP ProLiant ...

Windows 7
Updategängelung auf Windows 10, die zweite
Information von Penny.Cilin vor 6 TagenWindows 73 Kommentare

Hallo, da Windows 7 im kommenden Jahr nicht mehr supportet wird, werden Nutzer von Window 7 home premium wieder ...

Heiß diskutierte Inhalte
HTML
Bild hochladen mit html auf die Webseite
gelöst Frage von WorldoftheitHTML63 Kommentare

Will eine Seite entwickeln im Internet aber Das Bild wird nicht angezeigt woran kann das liegen? Wäre für jede ...

Vmware
Terminalserver VM - Videos ruckeln
Frage von easyriderVmware29 Kommentare

Hallo zusammen, wir haben einen (free) ESXi 5.5 auf einem HP DL 380 G8 im Einsatz. Darauf läuft, unter ...

Festplatten, SSD, Raid
Harddisk kaputt, was sagt mir ChrystalDiskInfo
gelöst Frage von InfoSeekerFestplatten, SSD, Raid23 Kommentare

Hallo zusammen, Mein Rechner lahmt. Ich stell mir die Frage woran es liegt und bin der Meinung es ist ...

Backup
Veeam Community Edition
gelöst Frage von dgrebnerBackup23 Kommentare

Hallo Zusammen, kann jemand seine praktischen Erfahrungswerte mit der Veeam-Community Edition mit mir teilen? Es gab dazu ja schon ...