有人有与 WBADMIN 一起使用来发送电子邮件警报的脚本吗?我是脚本新手,在寻找备份失败时通知的解决方案时遇到了麻烦。看来这是一个很有用的工具。
我正在运行 Server 2008 R2 Foundation 并备份到 NAS。我使用 wbadmin 和任务计划程序执行每日备份。
更新 我们没有第三方解决方案的预算,因此我尝试通过一个简单的脚本来实施解决方案。
答案1
如果您已经遇到备份失败的情况,则应该很容易完成,只需在备份|操作事件日志中找到失败的备份,右键单击失败的事件,选择“将任务附加到此事件”,然后适当地填写任务设置即可。
然后,每当备份失败并将事件记录到日志中时,就会根据您的任务配置发送一封电子邮件。
答案2
在 Server 2012 上,备份工具在每次备份任务后都会写入两个日志文件:
- 成功时,将创建 Backup_Error-<date>.log,但是为空。
当不成功时,我假设 Backup_Error-<date>.log 中会填充数据。
使用任务计划程序,我运行批处理文件以实现以下目标:
- 删除 C:\Windows\Logs\WindowsServerBackup 目录中的空 .log 文件
- 搜索(剩余的)Backup_Error*.log(因为非空)
- 使用以下方式将其内容邮寄给我布拉特
@echo off :: This script has been written to monitor WBAdmin backups on Server 2012 :: :: Tested on: Microsoft Windows Server 2012 Standard (6.2.9200 N/A Build 9200) :: Date: September 4, 2015 :: Author Florian Bidabe @Enelass (https://au.linkedin.com/in/bidabe) ::Variables set MailServer= set Sender= set Recipient= :: Delete Empty files cd C:\Windows\Logs\WindowsServerBackup for %%F in (*) do if %%~zF equ 2 del "%%F" :: Look for Backup_Error file(s) dir C:\Windows\Logs\WindowsServerBackup\Backup_Error*.log > nul 2> nul if %ERRORLEVEL% EQU 0 goto :AdminAlert echo No Error Logs available ! Backup suceeded ! ping 0.0.0.0 -n 5 > nul 2> nul exit 0 :AdminAlert :: Test if blat can be found (SMTP Server) where blat > nul 2> nul if not %ERRORLEVEL% EQU 0 ( echo Blat cannot be found... Copy blat.exe in system32! ping 0.0.0.0 -n 5 > nul 2> nul exit 1) :: Select most recent error log FOR %%F IN (C:\Windows\Logs\WindowsServerBackup\Backup_Error*.log) DO ( set filename=%%F goto :Send ) :Send blat -SaveSettings -f %Sender% -server %MailServer% blat -body "Hello Administrator, Please consult the attached log" -attach %filename% -s "%computername% - Windows Server Backup has failed !" -to %Recipient% exit 0
答案3
您可以使用布拉特这是一个命令行工具,它使用 SMTP 服务器和您指定的凭据发送电子邮件。我已将脚本设置为使用 blat,并在 wbadmin 备份失败时向我发送电子邮件。
这是编写脚本时非常有用的工具。我经常在很多脚本中使用它来提醒我可能需要注意的状态。
答案4
除非您真的想这样做,否则您不必编写此脚本。Webmin 可以做到这一点...如果您使用 Webmin 的备份,当您转到“安排备份”>“创建计划”>“备份计划”时,那里有一个选项允许您在发生错误时通过电子邮件通知某人。