Jump to content

2k3 Script zum Sichern + Logfile + E-Mail


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

Empfohlene Beiträge

Ich soll ein Script schreiben, welches überprüft, ob der User neue Daten erzeugt hat, wenn ja, sollen diesen auf einen Server Kopiert werden.

 

Anschließend soll der Transfer der Daten überprüft werden, sprich ob die Originaldateien mit den kopierten Dateien übereinstimmen. Ist dies alles erledigt soll eine Logfile erstellt werden und per E-Mail versendet werden.

 

Den leichten teil mit dem Kopieren habe ich mit einer Batch Datei gelöst und das funktioniert soweit.

 

Hier ist mein Quelltext, damit ihr seht wie weit ich bin:

 

@echo off

xcopy g:\test\*.* h:\safe /e/s/y/d

FOR /F "tokens=1,2 delims=:" %%d IN ('date /t') DO set dat=%%d

FOR /F "tokens=1,2 delims=:" %%i IN ('time /t') DO set zeit=%%i-%%j

rename h:\safe\safe "%dat%%zeit%.Safe"

FOR /F "skip=2 tokens=*" %%c IN ('DIR /O-D /B h:\safe\*safe') DO (rd h:\safe\"%%c" /s/q)

exit

 

erklärungen in ():

xcopy g:\test\*.* (Start) h:\safe (Ziel) /e/s/y/d (Parameter)

(kopiert das Startverzeichnis zum Zielverzeichnis)

 

FOR /F "tokens=1,2 delims=:" %%d IN ('date /t') DO set dat=%%d

(kreiert eine Variable "dat" = Datum)

 

FOR /F "tokens=1,2 delims=:" %%i IN ('time /t') DO set zeit=%%i-%%j

(kreiert eine Variable "zeit" = Uhrzeit)

 

rename h:\safe\safe "%dat%%zeit%.Safe"

(benennt das soeben kopierte Verzeichnis in "Datum Uhrzeit.Safe" um)

 

FOR /F "skip=2 tokens=*" %%c IN ('DIR /O-D /B h:\safe\*safe') DO (rd h:\safe\"%%c" /s/q)

(legt fest, dass nur die zwei neusten Verzeichnisse bleiben, und die älteren gelöscht werden. Details:

skip=2 = gibt an, dass die zwei neusten übersprungen werden

h:\safe\*Safe' = gibt die zu prüfenden Verzeichnisse an

rd h:\safe\"%%c" /s/q = das ist der Löschbefehl

 

 

Wenn mir jmd helfen könnte wäre ich euch sehr sehr verbunden.

Link zu diesem Kommentar

schonmal WinTotal - Artikel - Robocopy – Der Kopier-Gigant ausprobiert?

 

Zumindest kann das Teil Ordner Syncen und ist per Batch datei Aufruf, sowie natürlich beeinflussbar.

 

Edith schliesst sich aber ansonsten der Meinung an, dass das die Aufgabe eines ausgewachsenen Backup-Tools ist. Die kann man ja auch täglich ausführen lassen ;)

Link zu diesem Kommentar

Hallo SilenZer,

 

ich würde dir auch dazu raten eine Backupsoftware einzusetzen, in deinem Fall NTBackup

welches im OS integriert ist. Dieses beherrscht u.A differentielle und inkrementelle Sicherung.

Scripten kannst du das Ganze natürlich auch und es komprimiert nebenbei auch die Daten.

 

Den Cleanvorgang könntest du im Anschluß laufen lassen und Nachrichten per blat versenden.

Link zu diesem Kommentar

Soweit bin ich gekommen, allerdings hab ich ein, zwei schwierigkeiten.

 

Er hat probleme bei Pfaden, die in " " geschrieben werden bzw wenn ich welche mit Leerzeichen habe.

 

Desweiteren wird die Mail nicht versendet. Das ganze erfolg via Bmail.

 

@echo off

 

if "%1"=="" (

echo Starte den Batch folgendermassen:

echo SAFE Clientname

echo.

)

 

::Variablen setzen

set quelle=\\%1\<Pfad....>

set ziel=<\\servername\share>\Safe_%1_%date_%time%

set logfile=<\\servername\share>\Safe-Log_%1_%date_%time%.txt

 

::Files kopieren (Zielordner wird dank Robocopy automatisch erstellt, wenn er nicht existiert)

robocopy %quelle% %ziel% /s /LOG:%logfile%

if errorlevel 16 (

echo FATAL ERROR: BACKUP IST FEHLGESCHLAGEN! >>%logfile%

)

if errorlevel 8 (

echo FEHLGESCHLAGENE KOPIERVORGAENGE! >>%logfile%

)

if errorlevel 4 (

echo DIFFERENZEN ZWISCHEN QUELL- UND ZIELDATEIEN! >>%logfile%

)

if errorlevel 2 (

echo NEUE FILES SIND DAZUGEKOMMEN >>%logfile%

)

if errorlevel 1 (

echo KOPIERVORGANG ERFOLGREICH >>%logfile%

)

 

:: Directories werden nicht verglichen, es wird der Errorlevel von Robocopy ausgelesen, der aussagt, ob der Kopiervorgang geklappt hat oder nicht.

:: Je nach Rückmeldung von Robocopy wird eine andere Statusmeldung an das Ende des Logfiles geschrieben.

:: Du kannst also einfach im Logfile nach unten scrollen und dort kurz geschrieben, was genau passiert ist.

 

 

:: Logfile per Mail verschicken (bmail.exe gibts bei Google)

bmail.exe -s mail.bluewin.ch -t <deine-mailadresse> -f logfilemailer@hotmail.com -a "SAFE-Log %1 %date% %time%" -m %logfile%

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