derausgroenloh
Goto Top

Datensicherung per Batch mit Statusmeldung

Hallo,
ich habe ein Problem bei der Erstellung einer Batchdatei.
Die Aufgabe ist folgende:
Ich muss mehrere Netzwerkfreigaben per Robocopy in ein "Arbeitsverzeichnis" kopieren, diese dort per 7-zip verpacken, nen Namen verpassen und dann einmal logs erstellen und zum anderen per bmail (oder vergleichbares) eine Statusmeldung verschicken, die für jeden einzelne Freigabe enthalten soll was gemacht wurde, ob es erfolgreich war und die Pfade sollen enthalten sein.

Soweit bin ich schonmal.

@echo off
rem dieses Script macht eine Datensicherung folgender Freigaben auf dem Linux-Server edv-styx \\edv-styx\EDV\Quartalsicherungen
rem Freigaben auf Indulor-W2K:
rem - Daten
rem - int_sales
rem - ScanFax_Ablage_OG
rem - EDV
rem - Controlling

rem folgende Variablen werden gesetzt
set jahr=%date:~-4%
set monat=%date:~-7,2%
set tag=%date:~-10,2%
set sevenzpath=C:\Programme\7-Zip
set ordner=C:\Testordner\Arbeitsordner
set datumsvariable=%jahr%%monat%%tag%

:del
rem löscht alle Daten aus dem Arbeitsverzeichnis \\Ps-ica-07\Quartalssicherung_Arbeitsordner
del C:\Testordner\Arbeitsordner /f /s /q

:copy_Daten
rem kopiert alle daten aus der Freigabe "Daten" nach \\Ps-ica-07\Quartalssicherung_Arbeitsordner\Daten
robocopy C:\Testordner\indulor-w2k\Daten\ %ordner%\Daten\ /E /R:3 /W:2 /LOG+:%ordner%\%datumsvariable%_Daten.log

:copy_int_sales
rem kopiert alle daten aus der Freigabe "int_sales" nach \\Ps-ica-07\Quartalssicherung_Arbeitsordner\int_sales
robocopy C:\Testordner\indulor-w2k\int_sales\ %ordner%\int_sales\ /E /R:3 /W:2 /LOG+:%ordner%\%datumsvariable%_int_sales.log

:copy_ScanFax_Ablage_OG
rem kopiert alle daten aus der Freigabe "ScanFax_Ablage_OG" nach \\Ps-ica-07\Quartalssicherung_Arbeitsordner\ScanFax_Ablage_OG
robocopy C:\Testordner\indulor-w2k\ScanFax_Ablage_OG\ %ordner%\ScanFax_Ablage_OG\ /E /R:3 /W:2 /LOG+:%ordner%\%datumsvariable%_ScanFax_Ablage_OG.log

:copy_EDV
rem kopiert alle daten aus der Freigabe "EDV" nach \\Ps-ica-07\Quartalssicherung_Arbeitsordner\EDV
robocopy C:\Testordner\indulor-w2k\EDV\ %ordner%\EDV\ /E /R:3 /W:2 /LOG+:%ordner%\%datumsvariable%_EDV.log

:copy_Controlling
rem kopiert alle daten aus der Freigabe "Controlling" nach \\Ps-ica-07\Quartalssicherung_Arbeitsordner\Controlling
robocopy C:\Testordner\indulor-w2k\Controlling\ %ordner%\Controlling\ /E /R:3 /W:2 /LOG+:%ordner%\%datumsvariable%_Controlling.log

:zip
rem komprimiert die Unterordner des Verzeichnises \\Ps-ica-07\Quartalssicherung_Arbeitsordner
for /f "tokens=*" %%i in ('dir "%ordner%" /a:d-r-h-s /b') do "%sevenzpath%\7z" a -t7z "%ordner%\%datumsvariable%_%%i.zip" "%ordner%\%%i\"

funktioniert bis dahin auch wunderbar
mein Problem ist jetzt einmal eine Log-Datei für den :zip Teil zu schreiben und des weiteren automatisch eine Mail zu versenden, in der die erstellten log-Datein angehängt werden und die als Text pro Freigabe wiedergibt, ob die Arbeitsschritte geklappt haben und am besten noch die Namen und Pfade enthält.

Kann mir jemand weiterhelfen?

Danke im Voraus.

Gruß

derausgroenloh

Content-ID: 105997

Url: https://administrator.de/contentid/105997

Ausgedruckt am: 22.11.2024 um 17:11 Uhr

60730
60730 14.01.2009 um 12:06:20 Uhr
Goto Top
Servus,

schau dir mal an.

Zu deiner Problemstellung ansich:

Die Ausgabe von 7Z lässt sich auch in eine Datei schreiben

%sevenzpath%\7z" a -t7z "%ordner%\%datumsvariable%_%%i.zip" "%ordner%\%%i\" > ordner\datei.txt  
find "Everything is Ok" ordner\datei.txt && goto mail  

:mail
Rem zum Mailen per Blat.exe oder Bmail oder Postie bitte einen der Programmnamen "suchen" - Anleitungen und die Programme ansich sind ausreichend beschreiben.  

Gruß
derausgroenloh
derausgroenloh 14.01.2009 um 13:42:43 Uhr
Goto Top
Danke,
das Zipen klappt.
Für die Mailgeschichte gucke ich mir mal die Tipps von dir in ruhe an.
60730
60730 14.01.2009 um 13:52:06 Uhr
Goto Top
Gern geschehen:

wenn du es "verfeinern" willst - das ist ja nur ein Ansatz gewesen..

Nehme ich mal dein letztes sub
:zip
rem komprimiert die Unterordner des Verzeichnises \\Ps-ica-07\Quartalssicherung_Arbeitsordner
for /f "tokens=*" %%i in ('dir "%ordner%" /a:d-r-h-s /b') do "%sevenzpath%\7z" a -t7z "%ordner%\%datumsvariable%_%%i.zip" "%ordner%\%%i\"  

:zip
echo Ps-ica-07\Quartalssicherung_Arbeitsordner> ordner\datei.txtfor /f "tokens=*" %%i in ('dir "%ordner%" /a:d-r-h-s /b') do "%sevenzpath%\7z" a -t7z "%ordner%\%datumsvariable%_%%i.zip" "%ordner%\%%i\" >> ordner\datei.txt  
find "Everything is Ok" ordner\datei.txt && goto mail  

:mail

So steht dann auch im Log, welcher Job gelaufen ist.

Von daher wäre eine logische Schlußfolgerung anstatt einem harten Dateinamen auch die Variable %ordner% für das Log zu nehmen.
derausgroenloh
derausgroenloh 14.01.2009 um 14:53:51 Uhr
Goto Top
Ich komme mit dem ersten Ansatz schon gut zurecht.
Aber wo finde ich denn mal die blat.exe?
60730
60730 14.01.2009 um 15:07:47 Uhr
Goto Top
Zitat von @derausgroenloh:
Aber wo finde ich denn mal die blat.exe?

face-wink