Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Email versenden nach erfolgreicher Sicherung

Frage Microsoft Windows Server

Mitglied: alex86

alex86 (Level 1) - Jetzt verbinden

24.10.2005, aktualisiert 28.10.2005, 13767 Aufrufe, 14 Kommentare

Hallo Leute!
Ich sichere unseren Server täglich mit ntbackup. Ist es möglich, dass ich nach der Sicherung eine eMail versende? Grundsätzlich ist mir klar wie das funktionieren könnte, aber ich weiß nicht wie ich eine Batch Datei nach der Sicherung automatisch ausführe ... habt ihr da einen Denkanstoß?
Mitglied: 11078
24.10.2005 um 19:14 Uhr
Hallo,

ich würde die Sicherung bereits über eine Batch-Datei starten lassen (Kommandozeilenoptionen von ntbackup bekommst Du mit "ntbackup /?") und nach erfolgter Sicherung über ein spezielles Kommandozeilen Mailprogramm wie http://www.blat.net/ die Erfolgsmeldung oder auch Fehlermeldung senden.

Ob die Sicherung Erfolgreich war, kannst Du über die Variable %errorlevel% abfragen, denn hier speichert Windows (ab NT?) den letzten systemweit aufgetretenen Fehlercode). Ist diese Variable nicht 0, dann gab es wohl einen Fehler...


Wenn Du ntbackup mit "start /wait ntbackup.exe ..." startest, wird die Email auch wirklich erst dann verschickt, wenn ntbackup fertig ist.

Hoffe, das war Denkanstoß genug

Gruß,
Tim
Bitte warten ..
Mitglied: alex86
25.10.2005 um 16:44 Uhr
Hallo!
Ich starte die Sicherung mit folgendem VBA-Script:

sicherung_neu.vbs
Dim Wochentag
Dim Aufruf
Dim Ergebnis

Wochentag = WeekdayName(datepart("w",Date))

Aufruf = "ntbackup.exe backup systemstate "
Aufruf = Aufruf & "@C:\sicherung_neu.bks "
Aufruf = Aufruf & "/F D:\"
Aufruf = Aufruf & "Sicherung_" & Wochentag & " "
Aufruf = Aufruf & "/V:no /R:no /L:s /M normal"

Set objShell = WScript.CreateObject("WScript.Shell")
Ergebnis = objShell.Run(Aufruf,10,True)

Select Case Ergebnis
Case 0
objShell.LogEvent 0, "Ergebniscode der Sicherung ist: " & Ergebnis
Case Else
objShell.LogEvent 1, "Ergebniscode der Sicherung ist: " & Ergebnis
End Select

Set objShell = Nothing
Kann ich in dieses Script den Mailversand integrieren? Bin ziemlicher Anfänger auf dem Gebiet ...
Bitte warten ..
Mitglied: 11078
25.10.2005 um 19:02 Uhr
Hallo,


Set objShell =
WScript.CreateObject("WScript.Shell")
Ergebnis = objShell.Run(Aufruf,10,True)

Hier rufst Du ja ntbackup mit den nötigen Parametern schon als externes Programm auf. Dasselbe kannst Du auch mit Kommandozeilen-Mail-Clients wie dem oben genannte "Blat" machen.


Select Case Ergebnis
Case 0
objShell.LogEvent 0, "Ergebniscode
der Sicherung ist: " & Ergebnis
Case Else
objShell.LogEvent 1, "Ergebniscode
der Sicherung ist: " & Ergebnis
End Select


Du kannst das ja gleich hier in die Abfrage nach dem Ergebnis der Sicherung einbauen, also:

<font class="code">
Select Case Ergebnis
Case 0
objShell.LogEvent 0, "Ergebniscode der Sicherung ist: " & Ergebnis
<span style="color: #ff0000">objShell.Run("blat -viele-viele-Parameter") </span>
Case Else
objShell.LogEvent 1, "Ergebniscode der Sicherung ist: " & Ergebnis
<span style="color: #ff0000">objShell.Run("blat -viele-viele-Parameter") </span>
End Select
</font>



Gruß,
Tim
Bitte warten ..
Mitglied: alex86
25.10.2005 um 19:19 Uhr
Vielen herzlichen Dank, ich werde es sobald wie möglich ausprobieren!
Bitte warten ..
Mitglied: alex86
26.10.2005 um 17:29 Uhr
So, hier der angepasste Schnipsel nochmal:

Select Case Ergebnis
Case 0
objShell.LogEvent 0, "Ergebniscode der Sicherung ist: " & Ergebnis
objShell.Run("blat sicherung.txt -s sicherung_erfolgreich -to alex@dick.at")
Case Else
objShell.LogEvent 1, "Ergebniscode der Sicherung ist: " & Ergebnis
objShell.Run("blat sicherung.txt -s sicherung_fehlerhaft -to alex@dick.at")
End Select
Die sicherung.txt existiert eigentlich nur dummy-mäßig, ob das Backup erfolgreich war oder nicht kann man ja eh dem Betreff entnehmen.

Obs funktioniert kann ich noch nicht sagen, muss ich erst ausprobieren später, ich spiele grad ein Backup wieder ein, um zu testen ob das auch funktioniert, dauert noch ein paar Stunden bis ich es testen kann o_O
(Iomega REV Drive, dauert sage und schreibe 4h bis das Backup fertig ist, obwohl es nur 25GB sind. Wird wahrscheinlich daran liegen dass es ca. 120 000 Dateien sind. Aber 4h ist dennoch etsas lang...)

Wie krieg ich denn das Datum auch noch in den Betreff der Mail? Dass ich dann z.b stehn hab "Sicherung vom dd.mm.yyyy erfolgreich/fehlerhaft"?

Wenn ich so schreibe:

objShell.Run("blat sicherung.txt -s sicherung_" & Date & "_erfolgreich -to alex@dick.at")

wirds ja kaum funktionieren... Hach, wenn ichs bloß in PHP schreiben könnte ;>

?dit: Hab jetzt mal die Sicherung manuell gestartet und sie danach abgebrochen. Nun hat er mir komischerweise "sicherung_erfolgreich" gemailt anstatt fehlerhaft ... mal schauen was ich für eine mail erhalte wenn die sicherung wirklich erfolgreich abgeschlossen wurde und nicht per hand abgebrochen wurde.
Dieses Script kann man mit sicherheit noch verbessern ... nur leider fehlt mir die Fähigkeit dazu +g+

Vielen Dank schonmal!
Bitte warten ..
Mitglied: 11078
26.10.2005 um 19:46 Uhr
Hallo,


Wenn ich so schreibe:

objShell.Run("blat sicherung.txt -s
sicherung_" & Date &
"_erfolgreich -to alex@dick.at")

Aber fast richtig:

Datum = DatePart("d",Date) & "." & DatePart("m",Date) & "." & DatePart("yyyy",Date)

Dann kannst Du "Datum" als Variable benutzen.


?dit: Hab jetzt mal die Sicherung manuell
gestartet und sie danach abgebrochen. Nun
hat er mir komischerweise
"sicherung_erfolgreich" gemailt
anstatt fehlerhaft

Moment zwei Dinge!

1) true hat den Zahlenwert 1, false hat den Zahlenwert 0. Du sendest also die genau falschen Meldungen. Mach das anders herum.


2) Ergebnis = objShell.Run(Aufruf,10,True) liefert true (1) zurück, wenn der Aufruf von ntbackup erfolgreich war - und auch wenn Du ntbackup dann abbrichst, ändert sich daran nichts.

Wenn Du wissen willst, ob die Sicherung tatsächlich positiv abgeschlossen wurde, bringt das so meiner Meinung nach nichts. Wie man es aber in vbs hinbekommt, weiß ich gerade auch nicht: dafür sind meine vbs Kenntnisse zu minimal. Aber es gibt hier ja auch einen VBS Bereich, wo Du nochmal dahingehend nachfragen könntest.

Bei Batch hätte ich jetzt die Umgebungsvariable %errorlevel% abgefragt; wenn die ungleich 0 ist, gab es einen Fehler. Vielleicht kann man das aber auch per vbs abfragen oder es gibt hier sogar bessere Methoden.

Sorry!

Tim
Bitte warten ..
Mitglied: Biber
27.10.2005 um 01:25 Uhr
Moin alex86,

ich habe ein bisschen gezögert, ob ich zu diesem eigentlich abgeschlossenen Thread auch noch meinen Senf dazugeben soll. Mach ich nun aber doch.

Also - meine Gedanken beim Lesen des Threads waren natürlich:

Wozu denn hier *.vbs? Sind doch nur Aufrufe von NTBackup, ErrorLevel abprüfen und dann eine Zeile Blat-Mail. Keine bunten Messageboxen, alles silent, bestenfalls ein bisschen Loggerei. Also klassische Batch-Anwendung. Seh ich auch immer noch so.

Andererseits... wenn es läuft... never change a running system ...
and never run a changing system...
Also was solls... dann halt mit VBScript, egal...bin ja kein Fanatiker...

Nach der letzten Entwicklung allerdings - Wenn sich anscheinend nicht mal feststellen lässt, was denn nun der Errorlevel bzw. das Ergebnis der eigentlichen Sicherung war (das war doch das wesentliche Ziel ursprünglich, oder?), dann würde ich das doch via Batch abfackeln.

Selbst wenn ich da für die "saubere" Wochentagsermittlung wieder einen VBScript-Zweizeiler nutzen würde (den aus dem <a href=http://www.administrator.de/Workshop_Batch_for_Runaways_Part_III_Datums ... target="blank">Batch-Tut III<a>).
Ich würde hier also die GetAllDateTimeInfos.bat nutzen.
Falls also noch Interesse an einer Batch-Variante besteht:
01.
::--- Kurzskizze der Sicherung als Batch---ungetestet-- 
02.
@echo off & setlocal 
03.
Call GetAllDateTimeInfos /s /q 
04.
:: (alle Variablen sind gesetzt - ich brauche nur den %cDoW%.. cDayOfWeek)  
05.
Set Wochentag=%cDoW% 
06.
Call GetAllDateTimeInfos /u  
07.
 
08.
ntbackup.exe backup systemstate @C:\sicherung_neu.bks /F D:\  "Sicherung_%Wochentag% /V:no /R:no /L:s /M normal"  
09.
 
10.
IF ErrorLevel 4 goto NTBackupMemoryProb 
11.
IF ErrorLevel 2 goto NTBackupCanceledByUser 
12.
IF ErrorLevel 1 goto NTBackupFailed 
13.
::NoError 
14.
blat sicherung.txt -s sicherung_erfolgreich -to alex@dick.at 
15.
goto :eof 
16.
 
17.
:NTBackupFailed 
18.
blat sicherung.txt -s sicherung_indieGruetze -to alex@dick.at 
19.
goto :eof 
20.
.... 
21.
.. 
22.
::--- Kurzskizze der Sicherung als Batch---ungetestet--
HTH
Frank / der Biber aus Bremen
Bitte warten ..
Mitglied: alex86
27.10.2005 um 09:18 Uhr
Hallo!

Cool danke, werde das heute gleich testen.

Hab btw heute um 4 Uhr nachts eine Mail vom Server bekommen, dass er das Backup erfolgreich abgeschlossen hat. Da er aber wahrscheinlich auch "erfolgreich" schickt wenns fehlerhaft war, kann man der Mail nicht wirklich Glauben schenken ;>

Kann man denn den Ergebniscode in den Mail-Body schreiben? Bin noch nicht draufgekommen wie man bei blat den Body in der Commandline übergibt ... ausser eben via Datei, so wie ich's jetzt habe.

Vielen Dank für eure großartige Hilfe, wirklich ein Super Forum hier, muss ich schon sagen :>
Bitte warten ..
Mitglied: 11078
27.10.2005 um 09:31 Uhr
Hallo,

wie ich in meinem allerersten Post ja auch schon vorgeschlagen habe, ist Batch wirklich die allereinfachste (und damit meist auch die beste) Lösung.

Zu Deiner letzten Frage:

blat -body "Mein Mailtext" ...

So muss man den Text der Mail nicht in eine Textdatei packen.

Siehe auch: http://www.blat.net/syntax/syntax.html


Gruß,
Tim
Bitte warten ..
Mitglied: alex86
27.10.2005 um 10:10 Uhr
Joa, so hätte ich mir das auch gedacht, hat aber auf der Kommandozeile so nicht funkioniert. Die syntax.txt hab ich mir natürlich zu Gemüte geführt, bin aber nicht schlau draus geworden (da steht irgendwas mit hyphen (-) ) ... naja, später gibts den Bericht obs funktioniert hat oder nicht, bin gerade noch in der Arbeit ;>
Bitte warten ..
Mitglied: alex86
27.10.2005 um 17:00 Uhr
Okay, habs jetzt ausprobiert, das Script sieht jetzt folgendermaßen aus:

@echo off & setlocal
Call GetAllDateTimeInfos /s /q

Set Wochentag=%cDoW%
Call GetAllDateTimeInfos /u

ntbackup.exe backup systemstate @C:\sicherung_neu.bks /F D:\ "Sicherung_%Wochentag% /V:no /R:no /L:s /M normal"

IF ErrorLevel 4 goto NTBackupMemoryProb
IF ErrorLevel 2 goto NTBackupCanceledByUser
IF ErrorLevel 1 goto NTBackupFailed

:NoError
blat -body "sicherung erfolgreich!" -s "sicherung erfolgreich" -to alex@dick.at
goto :eof

:NTBackupFailed
blat -body "sicherung fehlerhaft" -s "sicherung fehlerhaft" -to alex@dick.at
goto :eof

:NTBackupMemoryProb
blat -body "speicherprobleme" -s "sicherung fehlerhaft" -to alex@dick.at
goto :eof

:NTBackupCanceledByUser
blat -body "sicherung von benutzer abgebrochen" -s "sicherung fehlerhaft" -to alex@dick.at
goto :eof


Rauskommen tut das:
C:\>sicherung.bat
Der Befehl "GetAllDateTimeInfos" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
Der Befehl "GetAllDateTimeInfos" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
Blat v2.5.0 w/GSS encryption (build : Sep 14 2005 22:46:29)

Sending stdin.txt to alex@dick.at
Subject: sicherung fehlerhaft
Login name is xanth0s@dick.at
Try number 1 of 5.

C:\>


Email bekomm ich folgende:
:NTBackupMemoryProb
blat -body "speicherprobleme" -s "sicherung fehlerhaft" -to alex@dick.at
goto :eof

Also eine Mail mit dem Body "speicherprobleme" und dem Betreff "sicherung fehlerhaft"

Ich glaub irgendwas hab ich da noch nicht so richtig verstanden ;)

Edit: Möööööp ... hab vergessen die GetAllDateTimeInfos.bat zu erstellen. hab ich jetzt gemacht, die Datei aus dem oben genannten Topic. Nun tritt die Fehlermeldung nicht mehr auf, aber er führt das backup nicht aus. Ntbackup öffnet sich ganz kurz, danach ist sense ;>

Aha, der Fehler liegt in folgender Zeile:
ntbackup.exe backup systemstate @C:\sicherung_neu.bks /F D:\ "Sicherung_%Wochentag% /V:no /R:no /L:s /M normal"

Hab in der Ereignisanzeige drin stehn
NTBackup-Fehler: 'Ungültigen Befehlszeilenparameter in 'normal'.'

Also irgendwas muss da syntaktisch nicht stimmen, hab selber probiert ein ewnig rumzusopielen, aber es hat nichst geholfen.

MfG
Alex
Bitte warten ..
Mitglied: Biber
27.10.2005 um 17:24 Uhr
Moin Alex,

hab grad bei M$ angerufen... die haben anscheinend meine GetAllDateTimeInfos.bat noch nicht standardmäßig mit ausgeliefert...
vermutlich verstehen die meinen Code wieder mal nicht in Redmond..
Na, ich deren Code auch nicht immer..

Du findest eine Copy&Paste-bare (welch eine Wortschöpfung!) Kopie in meinem Batch-Tutorial III ..siehe den Link oben. [Edit]...schon erledigt, hab ich zu spät gesehen. [/Edit]

Kopier Dir die irgendwohin in Deinen %path% oder gib den Pfad explizit an im Batch.

Sorry für die anderen Tippfehler..sollte nur eine Skizze sein.
Da sind nur die Anfü-Zeichen zuviel!! Das vor dem Wort 'Sicherung_....' und das am Ende
...F D:\ "Sicherung_%Wochentag% ...

Die ErrorLevel von NTBackup sind auch nur Beispiele... schau lieber in der NTBackup-Doku nach.
ErrorLevel 4 (oder höher) ist offensichtlich "SyntaxFehler" beim NTBackup-Aufruf.

Mach doch die Parameter analog zu der lesbaren Minik im VBScript
Set "NTPara=systemstate @C:\sicherung_neu.bks"
Set "NTPara=%NTPara% /F D:\ Sicherung_%Wochentag%"
Set "NTPara=%NTPara% /V:no /R:no /L:s /M normal"
...
ntbackup.exe %NTPara%

Aber erst nach dem Setzen der %Wochentag%-Variablen. *gg


Grüße
Biber
Bitte warten ..
Mitglied: alex86
28.10.2005 um 16:51 Uhr
So, mein Script sieht jetzt so aus:



@echo off & setlocal
Call c:\GetAllDateTimeInfos.bat /s /q

Set Wochentag=%cDoW%
Call c:\GetAllDateTimeInfos.bat /u

Set "NTPara=backup systemstate @C:\sicherung_neu.bks"
Set "NTPara=%NTPara% /F D:\ Sicherung_%Wochentag%"
Set "NTPara=%NTPara% /V:no /R:no /L:s /M normal"

ntbackup.exe %NTPara%


IF ErrorLevel 4 goto err_lvl4
IF ErrorLevel 3 goto err_lvl3
IF ErrorLevel 2 goto err_lvl2
IF ErrorLevel 1 goto err_lvl1
IF ErrorLevel 0 goto success_lvl

:err_lvl4
blat -body "sicherung fehlerhaft" -s "sicherung fehlerhaft" -to alex@dick.at
goto :eof

:err_lvl3
blat -body "sicherung fehlerhaft (abgebrochen)" -s "sicherung fehlerhaft" -to alex@dick.at
goto :eof

:err_lvl2
blat -body "sicherung fehlerhaft (dateizugriffs konflikt)" -s "sicherung fehlerhaft" -to alex@dick.at
goto :eof

:err_lvl1
blat -body "sicherung fehlerhaft (keine dateien zum sichern gefunden)" -s "sicherung fehlerhaft" -to alex@dick.at
goto :eof

:success_lvl
blat -body "sicherung erfolgreich!" -s "sicherung erfolgreich" -to alex@dick.at
goto :eof



und wieder selbiger Fehler in der Ereignisanzeige.
Die Variable %Wochentag% ist anscheinend leer, deswegen funktionierts nicht. Nur hab ich keine Ahnung wieso sie leer ist ;>
Bitte warten ..
Mitglied: Biber
28.10.2005 um 17:10 Uhr
Moin Alex,

blöde Tippfehler... *grmpff
Set "NTPara=backup systemstate @C:\sicherung_neu.bks"
Set "NTPara=%NTPara% /F D:\ Sicherung_%Wochentag%"
Set "NTPara=%NTPara% /V:no /R:no /L:s /M normal"

In der zweiten Zeile ist ein Leerzeichen zwischen "D:\" und "Sicherung..."
Und daher auch immer noch der Syntaxfehler.

[ Nicht zielführende Zwischenfrage:
Weiß eigentlich irgend jemand hier, warum M$'s Praktikanten bei NTBackup manche Parameterspezifikationen mit und manche ohne Doppelpunkt erwarten? Oder hat Bill diesen Job wieder irgendwelchen Azubis und umgeschulten Pizzabäckern zugeschoben??
Alberne Montagsproduktionen...
]

Wieso glaubst Du, dass %cDow% nicht gesetzt ist?
(Wieso zweifeln immer alle an meinen Bätchen? *heuuuuuuuul)
Mach doch da bitte mal am CMD-Prompt den Test, ob denn ein Aufruf "GetAllDateTimeInfos" etwas sinnvolles tut.
Vielleicht ist da wieder mal eine verkehrte Zeile umgebrochen beim Copy&Paste.

Tapfer sein, wir bringen das schon zum Fliegen...
Frank / der Biber aus Bremen
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Apache Server
gelöst OsTicket Email versenden klappt nicht (5)

Frage von ClepToManix zum Thema Apache Server ...

Visual Studio
gelöst Email Versenden Mit VB (2)

Frage von UltraZz zum Thema Visual Studio ...

Datenbanken
gelöst Access Report per Email versenden, hat jemand zufällig einen Code dafür(VBA) (7)

Frage von Dr.Cornwallis zum Thema Datenbanken ...

Server-Hardware
gelöst DL380 G7 Warnungen via email versenden (8)

Frage von franksig zum Thema Server-Hardware ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Microsoft
Ordner mit LW-Buchstaben versehen und benennen (19)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...