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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 105997
Url: https://administrator.de/contentid/105997
Ausgedruckt am: 22.11.2024 um 17:11 Uhr
5 Kommentare
Neuester Kommentar
Servus,
schau dir mal an.
Zu deiner Problemstellung ansich:
Die Ausgabe von 7Z lässt sich auch in eine Datei schreiben
Gruß
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ß
Gern geschehen:
wenn du es "verfeinern" willst - das ist ja nur ein Ansatz gewesen..
Nehme ich mal dein letztes sub
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.
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.