CMD ShutdownScript ()
Ich bin auf der Suche nach einem Ansatz um ein sog. "Shutdownscript" sauber umzusetzten!
Letztendliches Ziel ist es einen Backup Zielserver herunterzufahren nach dem von allen "Sicherungs Clients" (z.Zt. 3Stk.) die "Windows Server Sicherung" abgeschlossen wurde.
Scripte für den ShutDown gibt es schon, die Schwierigkeit sehe ich darin, den Sicherungsstatus von allen drei Servern zu sammeln/abzufragen und nach der letzten beendeten Sicherung das Finale "ShutDownScript" für den Zielserver auszuführen.
1. Schritt: Den jeweiligen Status der einzelnen Sicherungen in eine oder in eine gemeinsame Log Datei (Freigabe) schreiben lassen. Ein über den Aufgabenmanager getriggertes BatchScript, dass auslöst wenn die Sicherung am jeweiligen Server abgeschlossen wurde (Event ID .... im Windows Ereignis Protokoll) und in einer etwaigen Log-Datei eine Information hinzufügt die die Information trägt, das die Sicherung abgeschlossen wurde!
2. Schritt: Jeder Server der die Sicherung abgeschlossen hat prüft diese Datei um nachzuschauen ob alle anderen Server die Sicherung schon abgeschlossen haben, wenn JA triggert er das Finale ShutDownScript und fährt den Zielserver herunter, wenn NEIN erfolgt nichts!
Die Frage: Würdet Ihr es genauso machen, und wenn ja, mit welchen konkreten Befehlen würdet ihr arbeiteten, gerne mit Beispielen. Ich bin leider kein routinierter "BatchProgrammer", daher bin ich über jegliche Beispiel Scripte mit möglichen Ansätzen dankbar die ich dann kombinieren könnte.
Es geht mir vor allen Dingen um den Prozess die Informationen zu sammeln (evtl. in einer LogDatei, sinnvoll?) und dann auszuwerten. Ansätze für das Finale ShutdownScript habe ich wie gesagt schon, auch die "Trigger" die auslösen wenn die Sicherung abgeschlossen wurde...
Vielen Dank für Eure Infos im voraus...
Letztendliches Ziel ist es einen Backup Zielserver herunterzufahren nach dem von allen "Sicherungs Clients" (z.Zt. 3Stk.) die "Windows Server Sicherung" abgeschlossen wurde.
Scripte für den ShutDown gibt es schon, die Schwierigkeit sehe ich darin, den Sicherungsstatus von allen drei Servern zu sammeln/abzufragen und nach der letzten beendeten Sicherung das Finale "ShutDownScript" für den Zielserver auszuführen.
1. Schritt: Den jeweiligen Status der einzelnen Sicherungen in eine oder in eine gemeinsame Log Datei (Freigabe) schreiben lassen. Ein über den Aufgabenmanager getriggertes BatchScript, dass auslöst wenn die Sicherung am jeweiligen Server abgeschlossen wurde (Event ID .... im Windows Ereignis Protokoll) und in einer etwaigen Log-Datei eine Information hinzufügt die die Information trägt, das die Sicherung abgeschlossen wurde!
2. Schritt: Jeder Server der die Sicherung abgeschlossen hat prüft diese Datei um nachzuschauen ob alle anderen Server die Sicherung schon abgeschlossen haben, wenn JA triggert er das Finale ShutDownScript und fährt den Zielserver herunter, wenn NEIN erfolgt nichts!
Die Frage: Würdet Ihr es genauso machen, und wenn ja, mit welchen konkreten Befehlen würdet ihr arbeiteten, gerne mit Beispielen. Ich bin leider kein routinierter "BatchProgrammer", daher bin ich über jegliche Beispiel Scripte mit möglichen Ansätzen dankbar die ich dann kombinieren könnte.
Es geht mir vor allen Dingen um den Prozess die Informationen zu sammeln (evtl. in einer LogDatei, sinnvoll?) und dann auszuwerten. Ansätze für das Finale ShutdownScript habe ich wie gesagt schon, auch die "Trigger" die auslösen wenn die Sicherung abgeschlossen wurde...
Vielen Dank für Eure Infos im voraus...
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 642591
Url: https://administrator.de/forum/cmd-shutdownscript-642591.html
Ausgedruckt am: 22.12.2024 um 07:12 Uhr
6 Kommentare
Neuester Kommentar
Moin Moin,
viele Wege führen nach Rom und die Systematik hört sich schon gut an.
Mit einer Batch würde Ich nicht die Informationen in einer Datei über unterschiedliche Server zugreifen.
Ich hätte die Bedenken das da irgendetwas zwischen funkt.
Aber nur als Idee:
Der Prozess ist jeden Tag nur 1 mal.
Wenn jeder Server auf dem ZielServer in Ordner c:\Backup-Log einen Ordner %DATE% (20200121) schreibt,
und dorthinein die LOG Datei mit Name %ComputerNAME%.log
Solange die Server nur bei Erfolg dorthinein schreiben, kann Ich doch via Batch ohne Probleme abfragen ob die entsprechenden PCs dort die Logs geschrieben haben.
Dann noch einen Timer von vielleicht 5min stellen, damit die Logs sicher geschrieben sind, und Tschüss.
Nicht der schönste Weg, aber ein Weg.
Mein Senf
PS:
Ich habe mir angewöhnt die Variable %DATE% umzuformatieren.
Dann ist das unabhängig von irgendwelchen lokalen Einstellungen und gut sortierbar
Konkret Nutze Ich dafür immer diesen Schnipsel:
viele Wege führen nach Rom und die Systematik hört sich schon gut an.
Mit einer Batch würde Ich nicht die Informationen in einer Datei über unterschiedliche Server zugreifen.
Ich hätte die Bedenken das da irgendetwas zwischen funkt.
Aber nur als Idee:
Der Prozess ist jeden Tag nur 1 mal.
Wenn jeder Server auf dem ZielServer in Ordner c:\Backup-Log einen Ordner %DATE% (20200121) schreibt,
und dorthinein die LOG Datei mit Name %ComputerNAME%.log
Solange die Server nur bei Erfolg dorthinein schreiben, kann Ich doch via Batch ohne Probleme abfragen ob die entsprechenden PCs dort die Logs geschrieben haben.
Dann noch einen Timer von vielleicht 5min stellen, damit die Logs sicher geschrieben sind, und Tschüss.
Nicht der schönste Weg, aber ein Weg.
Mein Senf
PS:
Ich habe mir angewöhnt die Variable %DATE% umzuformatieren.
for /f "delims=" %%a in ('powershell get-date((get-date^)^) -uformat "%%Y%%m%%d"') do set datum=%%a
Konkret Nutze Ich dafür immer diesen Schnipsel:
set Stunde=%time: =0%
set StartZeit=%Stunde:~0,2%-%TIME:~3,2%_Uhr
for /f "delims=" %%a in ('powershell get-date((get-date^)^) -uformat "%%Y%%m%%d"') do set datum=%%a
set StartPunkt=_%Datum%__%StartZeit%_
echo %StartPunkt%
Wie gesagt.
Eine Abfrage ob das Log existiert.
Wenn das Log geschrieben wird nachdem die Sicherung fertig ist, und für die Übermittlung ein zusätzliches Fenster von 5 Minuten.
Im schlimmsten Fall wären hier die Logs nicht vollständig.
Im schlimmsten Fall ist die Sicherung nicht korrekt und das Log damit nicht übermittelt.
Und der Sicherung Server nicht down...
Was aber auch positive Aspekte hat.
Man schaut dort dann nach.
Eine Abfrage ob das Log existiert.
Wenn das Log geschrieben wird nachdem die Sicherung fertig ist, und für die Übermittlung ein zusätzliches Fenster von 5 Minuten.
Im schlimmsten Fall wären hier die Logs nicht vollständig.
Im schlimmsten Fall ist die Sicherung nicht korrekt und das Log damit nicht übermittelt.
Und der Sicherung Server nicht down...
Was aber auch positive Aspekte hat.
Man schaut dort dann nach.