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-Key: 105997

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

Printed on: April 23, 2024 at 10:04 o'clock

Mitglied: 60730
60730 Jan 14, 2009 at 11:06:20 (UTC)
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ß
Member: derausgroenloh
derausgroenloh Jan 14, 2009 at 12:42:43 (UTC)
Goto Top
Danke,
das Zipen klappt.
Für die Mailgeschichte gucke ich mir mal die Tipps von dir in ruhe an.
Mitglied: 60730
60730 Jan 14, 2009 at 12:52:06 (UTC)
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.
Member: derausgroenloh
derausgroenloh Jan 14, 2009 at 13:53:51 (UTC)
Goto Top
Ich komme mit dem ersten Ansatz schon gut zurecht.
Aber wo finde ich denn mal die blat.exe?
Mitglied: 60730
60730 Jan 14, 2009 at 14:07:47 (UTC)
Goto Top
Zitat von @derausgroenloh:
Aber wo finde ich denn mal die blat.exe?

face-wink