Nach fertiger Batch Mail versenden
Olá @ all
beim Frühjahrsputz in unseren Servern habe ich einige sehr alte Scripte entdeckt die bei uns wichtige Sachen nochmals spiegeln.
Beispielscript unten.
Leider gefällt mit das mit der Batch aber nicht mehr so.
Die Batch schreibt immer dann eine Email wenn Sie durchgelaufen ist.
Wenn ein Fehler auftritt bekomm ich keine Mail!
Das ist nicht schön - ich hätte es gern anders rum - bin aber kein "batcher".
Meine Idee wäre ja mit II zu arbeiten. (Befehl copy II Send Mail)
Ich weiss aber nicht genau wo ich konkret II einbauen muss.
Vielleicht hat jemand einen Tipp
Danke im Voraus.
Bsp:
beim Frühjahrsputz in unseren Servern habe ich einige sehr alte Scripte entdeckt die bei uns wichtige Sachen nochmals spiegeln.
Beispielscript unten.
Leider gefällt mit das mit der Batch aber nicht mehr so.
Die Batch schreibt immer dann eine Email wenn Sie durchgelaufen ist.
Wenn ein Fehler auftritt bekomm ich keine Mail!
Das ist nicht schön - ich hätte es gern anders rum - bin aber kein "batcher".
Meine Idee wäre ja mit II zu arbeiten. (Befehl copy II Send Mail)
Ich weiss aber nicht genau wo ich konkret II einbauen muss.
Vielleicht hat jemand einen Tipp
Danke im Voraus.
Bsp:
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Copy von Server DATEN nach Server BACKUP auf Windows Server 2008 - Backup per Mirroring
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::Pfadvaribale für Blat Mailer setzen
SET PATH=%PATH%;C:\Batches\Blat\
set time-begin=%time:~0,8%
set date-begin=%date%
:: Dateien spiegeln mit zuwachs (kein löschen und nur hinzufügen)
robocopy.exe "w:" "d:\administration" /MIR /R:10 /ZB /DCOPY:T /TEE /LOG:"d:\robolog_mir_administration.log" /NP /V
robocopy.exe "\\server3\netlogon$" "D:\Netlogon Kopie" /MIR /R:10 /ZB /DCOPY:T /TEE /LOG:"D:\robolog_mir_netlogon.log" /NP /V
robocopy.exe "\\server3\deploy$" "D:\Deploy" /MIR /R:10 /ZB /DCOPY:T /TEE /LOG:"D:\robolog_mir_deploy.log" /NP /V
robocopy.exe "g:" "d:\framework" /MIR /R:10 /ZB /DCOPY:T /TEE /LOG:"d:\robolog_mir_framework.log" /NP /V
::Mail verschicken das Batch fertig
set time-end=%time:~0,8%
set date-end=%date%
echo Backup Mirror Admin-Server2 Ende - vom %date-begin% - %time-begin::=:% Uhr bis %date-end% - %time-end::=:% Uhr | Blat.exe -priority 1 -to adminuser@domain.de -server smtp.domain.de -u adminuser@domain.de -pw K5EeiMB7 -debug -timestamp -log blatSMTPlog.txt -subject "Backup Mirror Admin-Server2 Ende - vom %date-begin% - %time-begin::=:% Uhr bis %date-end% - %time-end::=:% Uhr "
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 139418
Url: https://administrator.de/forum/nach-fertiger-batch-mail-versenden-139418.html
Ausgedruckt am: 23.12.2024 um 10:12 Uhr
8 Kommentare
Neuester Kommentar
Hallo @photographix,
probiers mal so:
ungetestet
Gruß
Snow
probiers mal so:
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Copy von Server DATEN nach Server BACKUP auf Windows Server 2008 - Backup per Mirroring
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::Pfadvaribale für Blat Mailer setzen
SET PATH=%PATH%;C:\Batches\Blat\
set time-begin=%time:~0,8%
set date-begin=%date%
set /A fail=0
:: Dateien spiegeln mit zuwachs (kein löschen und nur hinzufügen)
robocopy.exe "w:" "d:\administration" /MIR /R:10 /ZB /DCOPY:T /TEE /LOG:"d:\robolog_mir_administration.log" /NP /V
call check
robocopy.exe "\\server3\netlogon$" "D:\Netlogon Kopie" /MIR /R:10 /ZB /DCOPY:T /TEE /LOG:"D:\robolog_mir_netlogon.log" /NP /V
call check
robocopy.exe "\\server3\deploy$" "D:\Deploy" /MIR /R:10 /ZB /DCOPY:T /TEE /LOG:"D:\robolog_mir_deploy.log" /NP /V
call check
robocopy.exe "g:" "d:\framework" /MIR /R:10 /ZB /DCOPY:T /TEE /LOG:"d:\robolog_mir_framework.log" /NP /V
call check
::Mail verschicken wenn fail=1
if %fail%==1 (
set time-end=%time:~0,8%
set date-end=%date%
echo Backup Mirror Admin-Server2 FEHLER - vom %date-begin% - %time-begin::=:% Uhr bis %date-end% - %time-end::=:% Uhr | Blat.exe -priority 1 -to adminuser@domain.de -server smtp.domain.de -u adminuser@domain.de -pw K5EeiMB7 -debug -timestamp -log blatSMTPlog.txt -subject "Backup Mirror Admin-Server2 FEHLER - vom %date-begin% - %time-begin::=:% Uhr bis %date-end% - %time-end::=:% Uhr "
goto theend
)
:check
if %ERRORLEVEL% GTR 0 set /A fail=1
:theend
Gruß
Snow
@Snowman25
Sollte nicht (ganz ohne Unterprogramm) ein
oder alternativ nach jedem "robocopy" ein
genügen?
Außerdem wäre es ratsam, die Variablen %time-end% und %date-end% vor dem "
Grüße
bastla
Sollte nicht (ganz ohne Unterprogramm) ein
set "fail="
robocopy ... || set "fail=True"
...
if defined fail ( ...
if errorlevel 1 set "fail=True"
Außerdem wäre es ratsam, die Variablen %time-end% und %date-end% vor dem "
if
" (= außerhalb der Klammer) zu erstellen (da ansonsten "delayedExpansion" erforderlich wäre) ...Grüße
bastla
ungefähr so hatte ich es anfangs auch, aber i-wie hat mir das nicht gefallen...
Ich setzte fail auf 1 bzw. 0 um einfach konsistent zu bleiben. So kommt mir der Programmierstil doch wesentlich sauberer und selbsterklärender vor.
Hier also nochmal die korrigierte Version:
Ich setzte fail auf 1 bzw. 0 um einfach konsistent zu bleiben. So kommt mir der Programmierstil doch wesentlich sauberer und selbsterklärender vor.
Außerdem wäre es ratsam, die Variablen %time-end% und %date-end% vor dem "
Klammer) zu erstellen (da ansonsten "delayedExpansion" erforderlich wäre) ...
Da spricht eigentlich nichts dagegen. Wie vorhin schon geschrieben ist das Script ja ungetestet.if
" (= außerhalb derKlammer) zu erstellen (da ansonsten "delayedExpansion" erforderlich wäre) ...
Hier also nochmal die korrigierte Version:
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Copy von Server DATEN nach Server BACKUP auf Windows Server 2008 - Backup per Mirroring
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
rem Pfadvaribale für Blat Mailer setzen
SET PATH=%PATH%;C:\Batches\Blat\
set time-begin=%time:~0,8%
set date-begin=%date%
set /A fail=0
:: Dateien spiegeln mit zuwachs (kein löschen und nur hinzufügen)
robocopy.exe "w:" "d:\administration" /MIR /R:10 /ZB /DCOPY:T /TEE /LOG:"d:\robolog_mir_administration.log" /NP /V
if %ERRORLEVEL% GTR 0 set /A fail=1
robocopy.exe "\\server3\netlogon$" "D:\Netlogon Kopie" /MIR /R:10 /ZB /DCOPY:T /TEE /LOG:"D:\robolog_mir_netlogon.log" /NP /V
if %ERRORLEVEL% GTR 0 set /A fail=1
robocopy.exe "\\server3\deploy$" "D:\Deploy" /MIR /R:10 /ZB /DCOPY:T /TEE /LOG:"D:\robolog_mir_deploy.log" /NP /V
if %ERRORLEVEL% GTR 0 set /A fail=1
robocopy.exe "g:" "d:\framework" /MIR /R:10 /ZB /DCOPY:T /TEE /LOG:"d:\robolog_mir_framework.log" /NP /V
if %ERRORLEVEL% GTR 0 set /A fail=1
set time-end=%time:~0,8%
set date-end=%date%
rem Mail verschicken wenn fail=1
if %fail%==1 (
echo Backup Mirror Admin-Server2 FEHLER - vom %date-begin% - %time-begin::=:% Uhr bis %date-end% - %time-end::=:% Uhr | Blat.exe -priority 1 -to adminuser@domain.de -server smtp.domain.de -u adminuser@domain.de -pw K5EeiMB7 -debug -timestamp -log blatSMTPlog.txt -subject "Backup Mirror Admin-Server2 FEHLER - vom %date-begin% - %time-begin::=:% Uhr bis %date-end% - %time-end::=:% Uhr " -body "Es sind Fehler aufgetreten. Bitte folgende logfiles ueberpruefen: D:\robolog_mir_administration.log D:\robolog_mir_netlogon.log D:\robolog_mir_deploy.log D:\robolog_mir_framework.log"
)
@Snowman25
Der Hauptgrund, warum ich zuletzt vorrangig diese Variante verwende: Auf "
Grüße
bastla
Ich setzte fail auf 1 bzw. 0 um einfach konsistent zu bleiben. So kommt mir der Programmierstil doch wesentlich sauberer und selbsterklärender vor.
"defined
" (egal ob "True" oder 1 enthalten ist) oder "not defined
" würde ich auch als konsistent betrachten ...Der Hauptgrund, warum ich zuletzt vorrangig diese Variante verwende: Auf "
defined
" kann auch innerhalb einer Struktur (zB "for
"-Schleife) geprüft werden, ohne "delayedExpansion" verwenden zu müssen.Grüße
bastla