Jump to content

Script für Datensicherung


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

So... Für Interessierte und der Vollständigkeit wegen will ich hier doch mal meine (endlich funktionierenden) Scripte veröffentlichen:

 

Das folgende Script ist für die Wiederherstellung auf dem Server zuständig:

Da ich mit vielen Variablen gearbeitet habe, sollte das Script leicht an jeden Rechner angepasst werden können

Inklusive Menüführung, Logdateien, zusätzliche Abfragen bei Falscheingabe

 

Verdammt... mein Script hat mehr als 4000 Zeichen ^^ Dann eben geteilt

 

@ECHO OFF

REM ============== Variablendefinition ===============

SET LogDir=C:\Dokumente und Einstellungen\Administrator\Desktop\LOG
SET ProfilLog=Wiederherstellung(Profile).LOG.txt
SET UserLog=Wiederherstellung(Benutzerlaufwerke).LOG.txt
SET FileLog=Wiederherstellung(Dateiserver).LOG.txt
SET PRofilPfad=C:\Profile
SET SaveProfilPfad=G:\Profile
SET UserLWPath=C:\Benutzerlaufwerke
SET SaveUserLWPath=G:\Benutzerlaufwerke
SET DateiserverPfad=C:\Dateiserver
SET DateiserverSave=G:\Dateiserver

IF NOT EXIST %LogDir% MD %LogDir%


REM ==================================================
REM ======= Auswahlmenü (Wiederherstellung) ==========
REM ==================================================

:GESAMTAUSWAHL
CLS
ECHO Bitte waehlen sie die gewuenschte Wiederherstellungsoption:
ECHO.
ECHO 1 = Profile
ECHO 2 = Benutzerlaufwerk
ECHO 3 = Dateiserver
ECHO 4 = Logdatei anzeigen
ECHO 0 = Beenden
ECHO.
SET /p GesamtAuswahl= Auswahl: 

REM ========== Auswertung der Auswahl ==========

IF %GesamtAuswahl% == 1 GOTO PROFILE
IF %GesamtAuswahl% == 2 GOTO BENUTZERLAUFWERK
IF %GesamtAuswahl% == 3 GOTO DATEISERVER
IF %GesamtAuswahl% == 4 GOTO SHOWLOG
IF %GesamtAuswahl% == 0 EXIT
GOTO GESAMTAUSWAHL

REM ==================================================
REM ========== Wiederherstellung Profile =============
REM ==================================================

:PROFILE

REM ========== Auswahlmenü ==========

ECHO.
SET /p Username= Bitte gewuenschten Benutzer eingeben: 
:SAVEPROFILRESTART
ECHO.
SET /p Sicherungsdatum= Bitte Datum der gewuenschten Sicherung eingeben (TT.MM.JJJJ): 
ECHO.
GOTO PROFILVERZEICHNISTEST
:PROFILNEWNAME
ECHO.
SET /p Username= Bitte gewuenschten Benutzer eingeben: 

REM ========== Verzeichnisprüfung ==========

:PROFILVERZEICHNISTEST
IF NOT EXIST %SaveProfilPfad%\Sicherung_%Sicherungsdatum% GOTO PROFILERRORDATE
IF NOT EXIST %SaveProfilPfad%\Sicherung_%Sicherungsdatum%\%Username% GOTO PROFILERRORUSER

REM ========== Zeitstempel für Log-Datei ==========

ECHO. >> %LogDir%\%ProfilLog%
ECHO. >> %LogDir%\%ProfilLog%
ECHO ========================================================================== >> "%LogDir%\%ProfilLog%"
ECHO ============ Wiederherstellung Profil %Username% am %date%============ >> "%LogDir%\%ProfilLog%"
ECHO ========================================================================== >> "%LogDir%\%ProfilLog%"

REM ========== Wiederherstellungsvorgang ==========

XCOPY %SaveprofilPfad%\Sicherung_%Sicherungsdatum%\%Username% %ProfilPfad%\%Username% /v /f /s /e /k /r /h /o /y >> "%LogDir%\%ProfilLog%"
ECHO.
ECHO Wiederherstellungsvorgang ausgefuehrt!
ECHO.
GOTO SAVEPROFILEND

Link zu diesem Kommentar
REM ========== Fehlerabfragen ==========

:PROFILERRORDATE
ECHO.
ECHO  Zum gewuenschten Datum wurde keine Profilsicherung vorgenommen.
SET /p SaveProfilDir= Moechten sie die verfuegbaren Sicherungen anzeigen? (j/n) 
IF %SaveProfilDir% == n GOTO SKIPDATEDIR
IF %SaveProfilDir% == N GOTO SKIPDATEDIR
DIR %SaveProfilPfad%\*Sicherung*
:SKIPDATEDIR
ECHO.
SET /p SaveProfilRestart= Moechten sie den Vorgang mit einem neuen Datum wiederholen? (j/n) 
IF %SaveProfilRestart% == j GOTO SAVEPROFILRESTART
IF %SaveProfilRestart% == J GOTO SAVEPROFILRESTART
GOTO SAVEPROFILEND


:PROFILERRORUSER
ECHO.
ECHO  Fuer den Benutzer existiert zum angegebenen Datum keine Sicherung
SET/p %SaveProfilDir%= Moechten sie die Verfuegbaren Benutzerkonten anzeigen? (j/n) 
IF %SaveProfilDir% == n GOTO SKIPDIR
IF %SaveProfilDir% == N GOTO SKIPDIR
DIR %SaveProfilPfad%\Sicherung_%Sicherungsdatum%\
:SKIPDIR
:SAVEPROFILEND
ECHO.
SET /p ProfilNewName= Moechten sie den Vorgang fuer einen anderen Benutzer wiederholen? (j/n) 
IF %ProfilNewName% == j GOTO PROFILNEWNAME
IF %ProfilNewName% == J GOTO PROFILNEWNAME


ECHO.
SET /p RestartProgram= Moechten sie weitere Wiederherstellungsvoränge ausfuehren? (j/n) 
IF %RestartProgram% == j GOTO GESAMTAUSWAHL
IF %RestartProgram% == J GOTO GESAMTAUSWAHL
EXIT


REM ============================================================
REM ========== Wiederherstellung Benutzerlaufwerke =============
REM ============================================================

:BENUTZERLAUFWERK
ECHO.
SET /p Username= Bitte geben sie den Namen des Benutzers ein: 

IF NOT EXIST %SaveUserLWPath%\%Username% GOTO USERERRORNAME

REM ========== Zeitstempel für Logdatei ==========

ECHO. >> %LogDir%\%UserLog%
ECHO. >> %LogDir%\%UserLog%
ECHO ========================================================================== >> "%LogDir%\%UserLog%"
ECHO ============ Wiederherstellung Profil %Username% am %date%============ >> "%LogDir%\%UserLog%"
ECHO ========================================================================== >> "%LogDir%\%UserLog%"

REM ========== Wiederherstellungsvorgang ==========

XCOPY %SaveUserLWPath%\%Username% %UserLWPath%\%Username% /v /f /s /e /h /k /r /o /y >> "%LogDir%\%UserLog%"
ECHO.
ECHO Benutzerlaufwerk von %Username% wurde wiederhergestellt.
ECHO.
GOTO BENUTZERLAUFWERKSUCCESS

:USERERRORNAME
ECHO.
ECHO Fuer den gewaehlten Benutzer existiert keine Sicherung
SET /p BenutzerlaufwerkDir= Moechten sie die verfuegbaren Sicherungen anzeigen? (j/n) 
IF %BenutzerlaufwerkDir% == j DIR %SaveUserLWPath%
IF %BenutzerlaufwerkDir% == J DIR %SaveUserLWPath%
:BENUTZERLAUFWERKSUCCESS
ECHO.
SET /p BenutzerlaufwerkNew= Moechten sie den Vorgang fuer einen anderen Benutzer wiederholen? (j/n) 
IF %BenutzerlaufwerkNew% == j GOTO BENUTZERLAUFWERK
IF %BenutzerlaufwerkNew% == J GOTO BENUTZERLAUFWERK
ECHO.
SET /p RestartProgram= Moechten sie weitere Wiederherstellungsvorgaenge ausfuehren? (j/n) 
IF %RestartProgram% == j GOTO GESAMTAUSWAHL
IF %RestartProgram% == J GOTO GESAMTAUSWAHL

EXIT

Link zu diesem Kommentar
REM ======================================================
REM ========== Wiederherstellung Dateiserver =============
REM ======================================================
:DATEISERVER
ECHO.
IF NOT EXIST %DateiserverPfad% GOTO SAVEFILESERVER
ECHO  Das Verzeichnis des Dateiservers ist bereits vorhanden!
SET /p DateiserverOverwrite= Moechten sie eventuell vorhandene Dateien ueberschreiben? (j/n) 
IF %DateiserverOverwrite% == j GOTO SAVEFILESERVER
IF %DateiserverOverwrite% == J GOTO SAVEFILESERVER
ECHO.
ECHO Der Dateiserver wurde NICHT wiederhergestellt!
ECHO.
GOTO FILESERVEREND

:SAVEFILESERVER

REM ========== Zeitstempel für Logdatei ==========

ECHO. >> %LogDir%\%FileLog%
ECHO. >> %LogDir%\%FileLog%
ECHO ============================================================ >> "%LogDir%\%FileLog%"
ECHO ============ Wiederherstellung Dateiserver am %date%============ >> "%LogDir%\%FileLog%"
ECHO ============================================================ >> "%LogDir%\%FileLog%"

REM ========== Wiederherstellungsvorgang ==========

XCOPY %DateiserverSave% %DateiserverPfad% /v /f /e /k /r /o /y >> "%LogDir%\%FileLog%"
ECHO.
ECHO Der Dateiserver wurde wiederhergestellt.

:FILESERVEREND
ECHO.
SET /p RestartProgram= Moechten sie weitere Wiederherstellungsvorgaenge ausfuehren? (j/n) 
IF %RestartProgram% == j GOTO GESAMTAUSWAHL
IF %RestartProgram% == J GOTO GESAMTAUSWAHL
EXIT


REM ======================================================
REM ================ Logdatei anzeigen ===================
REM ======================================================
:SHOWLOG
CLS
ECHO Logdatei anzeigen fuer:
ECHO.
ECHO 1 = Profile
ECHO 2 = Benutzerlaufwerke
ECHO 3 = Dateiserver
ECHO 0 = Zurueck
ECHO.
SET /p LogAuswahl= Auswahl: 

IF %LogAuswahl% == 1 notepad.exe "%LogDir%\%ProfilLog%"
IF %LogAuswahl% == 2 notepad.exe "%LogDir%\%UserLog%"
IF %LogAuswahl% == 3 notepad.exe "%LogDir%\%FileLog%"
IF %LogAuswahl% == 0 GOTO GESAMTAUSWAHL
GOTO SHOWLOG

Link zu diesem Kommentar
Gast Flipshot

Ich habe mir jetzt nicht alle Postings zu dem Thread durch gelesen, also bitte um Nachsicht, falls meine Lösung schon bekannt ist :)

 

Ich ermittle das Datum und die Uhrzeit wie folgt. Dabei formatiere ich die Ausgaben noch nach "JahrMonatTagStundeMinuteSekunde" um und lasse damit einen Ordner erstellen. Recht praktisch für Ordnersortierungen.

 

Rem *** Ermitteln des aktuellen Datums ***

For /f "Tokens=1-2 Delims= " %%i In ('Date /t') Do Set ActualDate=%%j

If "%ActualDate%" == "" (

For /f %%i In ('Date /t') Do Set ActualDate=%%i

)

For /f "Tokens=1-3 Delims=." %%i In ("%ActualDate%") Do Set ActualDate=%%k%%j%%i

 

 

Rem *** Ermitteln der aktuellen Uhrzeit ***

For /f "Tokens=1-2 Delims=:" %%i In ('Time /t') Do Set ActualTime=%%i%%j

For /f "Tokens=1-2 Delims= " %%i In ("%ActualTime%") Do Set ActualTime=%%i

 

Set LogFileName=%Computername% - %ActualDate%%ActualTime%.log

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...