Robocoby Skript mit Email Benachrichtigung bei Server Sicherung

Coolzero82

Enthusiast
Thread Starter
Mitglied seit
05.11.2010
Beiträge
632
Hallo, ich sichere die Datenplatten meines Whs2011 per robocoby Skript regelmäßig auf einen WinServer2012, das funktioniert auch soweit problemlos. Wenn die Sicherung dann vollständig gelaufen ist je Datenplatten lasse ich mich per Email benachrichtigen, das Problem ist das wenn es viele Daten Änderungen gegeben hat die Email so groß wird das ich sie unterwegs z.b mit dem iPhone nicht abrufen kann weil sie garnicht erst geöffnet wird. Dazu kommt das die Formatierung sehr unübersichtlich ist.

Kann man die emails im robocoby Skript formatieren und kann ich die Größe der Email einschränken? Ich bekomme im Moment jede 1% Änderung in der Mail dokumentiert, mir reichte es aber wenn da z.b stehen würde "Datei xyz kopiert da neuer " 100% oder so ähnlich das ich nur sehen könnte, wieso und erfolgreich oder nicht!?
Geht das irgendwie?

Mein Skript was ich mal zusammen gebastelt hab sieht im Moment so

Code:
#   **************************************************************
#   * PowserShell Script                                         *
#   **************************************************************
#   * Script:                                                    *
#   * PowerShell Robocopy script with e-mail notification        *
#   * e-mail notification with SSL support                       *
**********************************************************************
# Variables Backup
$SourceFolder = "F:\"
$DestinationFolder = "\\SERVER-BACKUP\Server-Backup\Sicherung_F"
$Logfile = "C:\Logs\Backup.log" + (Get-Date).tostring("yyyy-MM-dd") + "_Sicherung_F" + ".log"

# Variables Email notification
$EmailFrom = "web.de"
$EmailTo = "googlemail.com"
$EmailBody = "Robocopy completed successfully. See attached log file for details"
$EmailSubject = "Robocopy Job Laufwerk F"
$SMTPServer = "smtp.web.de"
$SMTPPort = "587"
$Username = "xyz"
$Password = "xyz"

# Mirror Folder with Robocopy
Robocopy $SourceFolder $DestinationFolder /xd "System Volume Information" $recycle.bin /xf pagefile.sys NTUSER.Dat /mir /a-:sh /fft /LOG:$Logfile /NDL /TEE # Send E-mail message with log file attachment $Message = New-Object Net.Mail.MailMessage($EmailFrom, $EmailTo, $EmailSubject, $EmailBody) $Attachment = New-Object Net.Mail.Attachment($Logfile, 'text/plain')
$Message.Attachments.Add($Attachment)
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, $SMTPPort) If (-not ($SMTPPort -eq "25")){
$SMTPClient.EnableSsl = $true;    
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential($Username, $Password); }
$SMTPClient.Send($Message)

# EOF


Danke
 
Zuletzt bearbeitet:
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Wie wäre es denn wenn du einfach eines der zahlreichen BackupTools nimmst die eine EMail Benachrichtigung bieten?
(Mein Vorschlag wäre da Cobian Backup)
 
Cobian habe ich lange genutzt, nur hätte damit nachher häufig Probleme, und da es ja nicht mehr weiter entwickelt wurde musste ich mir was neues suchen.
Ansonsten habe ich kein annähernd gutes Programme dafür gefunden
 
Mailen kannst du auch über einen externen Mailer, wie z.B. Blat, mit dem du dann dein erstelltes Log verschickst.

happy mailing : Blat online

Formatierung habe ich gerade nicht im Kopf.
 
Du könntest mit den Log-Optionen experimentieren. Robocopy kann auch nur eine Zusammenfassung des gesamten Vorgangs in die Logdatei schreiben.
Wie sieht denn z.B. ein Ausschnitt aus einem dieser Logs aus / wie sollte er formatiert sein?
Von was für Dateigrößen der Logdateien reden wir hier, einige MB?
 
Du könntest mit den Log-Optionen experimentieren. Robocopy kann auch nur eine Zusammenfassung des gesamten Vorgangs in die Logdatei schreiben.
Wie sieht denn z.B. ein Ausschnitt aus einem dieser Logs aus / wie sollte er formatiert sein?
Von was für Dateigrößen der Logdateien reden wir hier, einige MB?

Geht aber nicht wenn der Parameter /mir verwendet wird.

@TE: Schau dir mal in Ruhe Freefilesync an. Das ist mittlerweile auch sehr mächtig. Mailversand wie schon erwähnt kann man über BLAT machen.
 
Hi,
sorry, komme grade nicht dazu, da sich natürlich grade jetzt eine Festplatte verabschiedet, sobald ich die Daten gesichert und auf eine neue zurückgespielt habe werde ich mich nochmal robocopy usw. annehem und meld mich dann.

Danke schon mal für die Tips
 
So, ein Log sieht z.b. so aus:

Code:
-------------------------------------------------------------------------------
   ROBOCOPY     ::     Robustes Dateikopieren f�r Windows                              
-------------------------------------------------------------------------------

  Gestartet: Mon May 25 15:39:26 2015

   Quelle : D:\
     Ziel : \\SERVER-BACKUP\Server-Backup\Sicherung_D\

    Dateien : *.*
	    
Ausf�hrbare Dateien : pagefile.sys
	    NTUSER.Dat
	    
 Ausf. Verzeichnisse : System Volume Information
	    
  Optionen: *.* /FFT /TEE /S /E /COPY:DAT /PURGE /MIR /NP /A-:SH /R:1000000 /W:30 

------------------------------------------------------------------------------

	                   1	D:\
	                   0	D:\$RECYCLE.BIN\
	                   5	D:\$RECYCLE.BIN\S-1-5-21-3695200510-2163779555-86034144-1009\
	                   1	D:\$RECYCLE.BIN\S-1-5-21-3695200510-2163779555-86034144-1013\
	                   1	D:\$RECYCLE.BIN\S-1-5-21-3695200510-2163779555-86034144-500\
	                   0	D:\$RECYCLE.BIN\S-1-5-21-3695200510-2163779555-86034144-500\$RMJR4NY\
	                   0	D:\$RECYCLE.BIN\S-1-5-21-3695200510-2163779555-86034144-500\$RMJR4NY\Marvell\
	                   0	D:\$RECYCLE.BIN\S-1-5-21-3695200510-2163779555-86034144-500\$RMJR4NY\Marvell\Driver\
	                   0	D:\$RECYCLE.BIN\S-1-5-21-3695200510-2163779555-86034144-500\$RMJR4NY\Marvell\Driver\Disk\
	                   0	D:\Config.Msi\
	                   0	D:\ServerFolders\
	                   3	D:\ServerFolders\Anwendungen\	                  21	D:\ServerFolders\Vu_Sicherung\vti-backupsuite\
	                   0	D:\ServerFolders\Vu_Sicherung\vti-image-backup\
	                   0	D:\ServerFolders\Vu_Sicherung\vti-image-backup\vti_8.0.0_backup-image_ultimo_2015-05-15_17-56-21\
	                   0	D:\ServerFolders\Vu_Sicherung\vti-image-backup\vti_8.0.0_backup-image_ultimo_2015-05-15_17-56-21\vuplus\
	                   2	D:\ServerFolders\Vu_Sicherung\vti-image-backup\vti_8.0.0_backup-image_ultimo_2015-05-15_17-56-21\vuplus\ultimo\
	                   0	D:\ServerFolders\Vu_Sicherung\vti-image-download\
	                   1	D:\ServerFolders\Vu_Sicherung\vti-image-download\vti_8.2.1\
	                   0	D:\ServerFolders\Vu_Sicherung\vti-image-download\vti_8.2.1\vuplus\
	                   4	D:\ServerFolders\Vu_Sicherung\vti-image-download\vti_8.2.1\vuplus\ultimo\

------------------------------------------------------------------------------

           Insgesamt   KopiertšbersprungenKeine šbereinstimmung    FEHLER    Extras
Verzeich.:     27293         0     27293         0         0         0
  Dateien:    192345         0    192345         0         0         0
    Bytes:   1.668 t         0   1.668 t         0         0         0
   Zeiten:   0:09:22   0:00:00                       0:00:00   0:09:22

  Beendet: Mon May 25 15:48:58 2015
Sieht am Pc recht übersichtlich aus, aber auf dem Handy weniger.

Was bedeuten die Zahlen vor den Verzeichnissen?

Die größe des Logs schwankt zwischen ein paar Byte und 2-5 MB
 
Ist die ID des Benutzers, ich würde den Papierkorb einfach im Robocopy ausnehmen :-)
 
Paprierkorb ist weg:-)

Hab aber ein neues Problem,
Wollte mittels des Skriptes jetzt noch auf einen anderen Rechner im Netzwerk sichern, allerdings bekomme ich da immer die Meldung "Zugriff verweigert", kannn ich im Skript noch einen Benutzer und Passwort angeben? Auch wenn ich das bis jetzt nie musste!?!
 
Hab dann jetzt doch wieder ein neues Problem, hab eine neue Sicherung auf eine Win 10 Freigabe eingerichtet, und beim Ausführen des Robocopyskripts kommt dann immer "Falscher Parameter" was ist falsch an meinem Skript?

Code:
# Archiv Sicherung Laufwerk_D
# Variables Backup
$SourceFolder = "D:\"
$DestinationFolder = "\\BUERO\Archiv\"
$Logfile = "C:\Logs\Backup.log" + (Get-Date).tostring("yyyy-MM-dd") + "_Archiv_D+F" + ".log"

# Variables Email notification
$EmailFrom = "@web.de"
$EmailTo = "@googlemail.com"
$EmailBody = "Robocopy completed successfully. See attached log file for details"
$EmailSubject = "Robocopy Job Sicherung_2 Laufwerk D+F"
$SMTPServer = "smtp.web.de"
$SMTPPort = "587"
$Username = "xxx"
$Password = "xxx"

# Mirror Folder with Robocopy
Robocopy $SourceFolder $DestinationFolder /xd "System Volume Information" $recycle.bin /xf pagefile.sys NTUSER.Dat /e /a-:sh /fft /LOG:$Logfile /NP /TEE
# Send E-mail message with log file attachment
#$Message = New-Object Net.Mail.MailMessage($EmailFrom, $EmailTo, $EmailSubject, $EmailBody)
#$Attachment = New-Object Net.Mail.Attachment($Logfile, 'text/plain')
#$Message.Attachments.Add($Attachment)
#$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, $SMTPPort)
#If (-not ($SMTPPort -eq "25")){
#$SMTPClient.EnableSsl = $true;    
#$SMTPClient.Credentials = New-Object System.Net.NetworkCredential($Username, $Password);
#}
#$SMTPClient.Send($Message)

# Archiv Sicherung Laufwerk_F
# Variables Backup
$SourceFolder = "F:\"
$DestinationFolder = "\\BUERO\Archiv\"
#$Logfile = "C:\Logs\Backup.log" + (Get-Date).tostring("yyyy-MM-dd") + "_Archiv_F" + ".log"

# Variables Email notification
$EmailFrom = "@web.de"
$EmailTo = "@googlemail.com"
$EmailBody = "Robocopy completed successfully. See attached log file for details"
$EmailSubject = "Robocopy Job Sicherung_2 Laufwerk D+F"
$SMTPServer = "smtp.web.de"
$SMTPPort = "587"
$Username = "xxx"
$Password = "xxx"

# Mirror Folder with Robocopy
Robocopy $SourceFolder $DestinationFolder /xd "System Volume Information" $recycle.bin /xf pagefile.sys NTUSER.Dat /e /a-:sh /fft /LOG:$Logfile /NP /TEE
# Send E-mail message with log file attachment
$Message = New-Object Net.Mail.MailMessage($EmailFrom, $EmailTo, $EmailSubject, $EmailBody)
$Attachment = New-Object Net.Mail.Attachment($Logfile, 'text/plain')
$Message.Attachments.Add($Attachment)
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, $SMTPPort)
If (-not ($SMTPPort -eq "25")){
$SMTPClient.EnableSsl = $true;    
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential($Username, $Password);
}
$SMTPClient.Send($Message)
Read-Host
# EOF

Was hab ich falsch gemacht?

Die Freigabe auf die Gesichert werden soll ist auf dem Rechner "Buero" und der Freigabename ist "Archiv" Auch mit der IP anstatt dem Hostname klappt es nicht
 
Hi, hab es gelöst, ich wollte immer direkt in die Freigabe schreiben das hat nicht geklappt, nachdem ich in der Freigabe ein Verzeichnis erstellt hab und das Skript jetzt in das Verzeichnis schreiben lasse klappt es auch

Jetzt möchte meine Datenplatten über ein robocopyskript auf einen zweiten Rechner spiegeln, und dann nocheinmal auf einen weiteren Rechner, aber nicht als Spiegelung, sonder nur Sichern ohne die nicht mehr vorhandenen Daten zu löschen.
Bei beiden Sicherungen möchte ich eine Email Benachrichtigung bekommen, ob die Sicherung funktioniert hat

Dazu hab ich mir diese zwei Skripte gebastelt:

Das Skript für die Spiegelung:

Code:
$SourceFolder = "D:\"
$DestinationFolder = "\\SERVER-BACKUP\Server-Backup\Sicherung_D"
$Logfile = "C:\Logs\Backup.log" + (Get-Date).tostring("yyyy-MM-dd") + "_Sicherung_D" + ".log"

# Variables Email notification
$EmailFrom = "xxx@web.de"
$EmailTo = "xxx@googlemail.com"
$EmailBody = "Robocopy completed successfully. See attached log file for details"
$EmailSubject = "Robocopy Job Laufwerk D"
$SMTPServer = "smtp.web.de"
$SMTPPort = "587"
$Username = "xxx"
$Password = "xxx"

# Mirror Folder with Robocopy
Robocopy $SourceFolder $DestinationFolder /xd "System Volume Information" $recycle.bin /xf pagefile.sys NTUSER.Dat /mir /a-:sh /fft /LOG:$Logfile /NP /TEE
# Send E-mail message with log file attachment
$Message = New-Object Net.Mail.MailMessage($EmailFrom, $EmailTo, $EmailSubject, $EmailBody)
$Attachment = New-Object Net.Mail.Attachment($Logfile, 'text/plain')
$Message.Attachments.Add($Attachment)
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, $SMTPPort)
If (-not ($SMTPPort -eq "25")){
$SMTPClient.EnableSsl = $true;    
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential($Username, $Password);
}
$SMTPClient.Send($Message)
Read-Host
# EOF

Und die Sicherung ohne das Löschen der Daten
Code:
$SourceFolder = "D:"
$DestinationFolder = "\\Buero\Archiv\Sicherung"
$Logfile = "C:\Logs\Backup.log" + (Get-Date).tostring("yyyy-MM-dd") + "_Sicherung_E" + ".log"

# Variables Email notification
$EmailFrom = "xxx@web.de"
$EmailTo = "xxx@googlemail.com"
$EmailBody = "Robocopy completed successfully. See attached log file for details"
$EmailSubject = "Robocopy Job Laufwerk E"
$SMTPServer = "smtp.web.de"
$SMTPPort = "587"
$Username = "xxx"
$Password = "xxx"

# Mirror Folder with Robocopy
Robocopy $SourceFolder $DestinationFolder /xd "System Volume Information" $recycle.bin /xf pagefile.sys NTUSER.Dat /E /a-:sh /fft /LOG:$Logfile /NP /TEE
# Send E-mail message with log file attachment
$Message = New-Object Net.Mail.MailMessage($EmailFrom, $EmailTo, $EmailSubject, $EmailBody)
$Attachment = New-Object Net.Mail.Attachment($Logfile, 'text/plain')
$Message.Attachments.Add($Attachment)
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, $SMTPPort)
If (-not ($SMTPPort -eq "25")){
$SMTPClient.EnableSsl = $true;    
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential($Username, $Password);
}
$SMTPClient.Send($Message)
Read-Host
# EOF

Was haltet ihr davon? Hab ich noch einen Fehler drin bzw. was könnte ich noch verbessern? Die Emails sind teilweise (wenn sich viele Daten geändert haben ) sehr gross, wie könnte ich das einschränken?

Danke
 
Zuletzt bearbeitet:
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh