Zeitvergleich über Batch-Skript
Hallo zusammen,
ich habe ein kleines Problem. Ich abeite in einer kleinen Firma und dort muss ich mich nebenher um die Administration unseres Netzwerkes kümmern. Neuerdings spiegeln wir unseren Server in eine Cloud. Die Synchronisation ist dabei leider etwas lahm und manchmal hängt sie sich auch ganz auf. Weil es momentan für dieses Problem noch keine automatische Fehlermeldung gibt, fällt das meistens erst auf, wenn der Chef von unterwegs zugreifen will und dann seine Dateien vom Vortag noch nicht in der Cloud sind...
Diese würde ich nun gerne ganz einfach über ein paar Batch-Skripe lösen.
Meine Idee.
Auf dem Server wird alle 10 Minuten ein Skript ausgeführt, dass das aktuelle Datum und die Uhrzeit in eine "sync.txt" schreibt.
Wenn der Server mit der Cloud synchronisiert wird, wird diese Datei in die Cloud geladen. Da ein Durchlauf der Synchronisation oft lange dauert ist damit die sync.txt in der Cloud in der Regel nicht mehr uptodate.
Wenn ich über ein weiteres Skript diese Datei aus der Cloud lade, sehe ich am Zeitstempel wann in etwa die letzte Synchronisation stattgefunden hat. Soweit funktioniert bisher schon alles.
Jetzt mein eigentliches Problem.
Ich würde gerne von dem Batch-Skript das mir die Datei aus der Cloud läd, automatisch den Zeitstempel aus der "sync.txt" auslesen und mit der aktuellen Zeit vergleichen lassen.
Falls die Zeitdifferenz zu groß ist (z.B. 3 Stunden) dann soll eine Aktion (z.B. Fehlermail versenden) ausgelöst werden.
Die "sync.txt" wird über ein Script mit echo%date% %time% > "sync.txt" gefüllt und hat also nur 1 Zeile mit z.B. dem Inhalt 27.10.2017 11:34:42,58
Hat jemand eine Idee wie das umzusetzen wäre? Meine Fähigkeiten stoßen da leider an ihre Grenzen.
Vielen Dank im Voraus für eure Mühe.
LG Stefan
ich habe ein kleines Problem. Ich abeite in einer kleinen Firma und dort muss ich mich nebenher um die Administration unseres Netzwerkes kümmern. Neuerdings spiegeln wir unseren Server in eine Cloud. Die Synchronisation ist dabei leider etwas lahm und manchmal hängt sie sich auch ganz auf. Weil es momentan für dieses Problem noch keine automatische Fehlermeldung gibt, fällt das meistens erst auf, wenn der Chef von unterwegs zugreifen will und dann seine Dateien vom Vortag noch nicht in der Cloud sind...
Diese würde ich nun gerne ganz einfach über ein paar Batch-Skripe lösen.
Meine Idee.
Auf dem Server wird alle 10 Minuten ein Skript ausgeführt, dass das aktuelle Datum und die Uhrzeit in eine "sync.txt" schreibt.
Wenn der Server mit der Cloud synchronisiert wird, wird diese Datei in die Cloud geladen. Da ein Durchlauf der Synchronisation oft lange dauert ist damit die sync.txt in der Cloud in der Regel nicht mehr uptodate.
Wenn ich über ein weiteres Skript diese Datei aus der Cloud lade, sehe ich am Zeitstempel wann in etwa die letzte Synchronisation stattgefunden hat. Soweit funktioniert bisher schon alles.
Jetzt mein eigentliches Problem.
Ich würde gerne von dem Batch-Skript das mir die Datei aus der Cloud läd, automatisch den Zeitstempel aus der "sync.txt" auslesen und mit der aktuellen Zeit vergleichen lassen.
Falls die Zeitdifferenz zu groß ist (z.B. 3 Stunden) dann soll eine Aktion (z.B. Fehlermail versenden) ausgelöst werden.
Die "sync.txt" wird über ein Script mit echo%date% %time% > "sync.txt" gefüllt und hat also nur 1 Zeile mit z.B. dem Inhalt 27.10.2017 11:34:42,58
Hat jemand eine Idee wie das umzusetzen wäre? Meine Fähigkeiten stoßen da leider an ihre Grenzen.
Vielen Dank im Voraus für eure Mühe.
LG Stefan
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 352984
Url: https://administrator.de/forum/zeitvergleich-ueber-batch-skript-352984.html
Ausgedruckt am: 04.05.2025 um 11:05 Uhr
6 Kommentare
Neuester Kommentar
"Batch" und "ganz einfach" geht hier aber nicht zusammen, da Batch keinen DateTime Typ kennt, mit dem man einfach mal Zeitdifferenzen ausrechnen könnte.
Natürlich geht das am Ende schon. Es gibt Leute die haben bereits fertige Lösungen dafür. (Z.B. die DateToSecs Routine). Voraussetzung ist aber dass du Datum und Zeit vorher aufdröselst, wobei klar ist, dass die Strings in %date% und %time% sich international unterscheiden...
Steffen

Die Synchronisation ist dabei leider etwas lahm und manchmal hängt sie sich auch ganz auf.
Ich würde eher dafür eine Lösung herleiten.Für sowas gibt es genug Mittel wie Taskplaner Status, Monitoring-Tools wie PRTG etc. die das vernünftig lösen anstatt sich so eine wahrliche "Krücke" zu basteln.

Mit Powershell wäre das effektiver
If((Get-Date (gc 'c:\datei.txt' -TotalCount 1)) -lt (get-date).AddHours(-3)){
Write-Host "Achtung, Zeit älter als 3 Stunden"
}