我们的异地备份系统依靠工作人员每周轮流将哪个 USB 驱动器连接到文件服务器。
无论连接哪个驱动器,它都会使用运行 Robocopy 的计划批处理文件与服务器上的数据分区同步(每晚 10 点)。USB 驱动器本身都使用 Truecrypt 加密,以防其中一个驱动器丢失或被盗,从而保护我们的组织。
我们备份系统中的薄弱环节(依赖人力)是每周负责轮换驱动器的工作人员。有时,他不仅忘记按要求每周轮换一次,而且会忘记一个月以上。
我已经设置了日志记录,这使我能够跟踪驱动器的旋转时间,这要感谢我之前问题的答案这里。因此,我们已经有一个日志文件,可以跟踪任意一天连接的驱动器。
我现在想要做的是,如果备份计划错过了两周或更长时间,服务器 (SBS 2003) 就会自动向负责轮换驱动器的用户、用户的老板和我自己 (系统管理员) 发送电子邮件。目前服务器上没有安装 Outlook 2010,但如果需要可以安装。
日志中跟踪所连接的备份驱动器的数据格式如下:
Volume in drive V is BACKUP 1
Sat 05/10/2014
22:00:00.77
Volume in drive V is BACKUP 1
Sun 05/11/2014
22:00:00.44
Volume in drive V is BACKUP 1
Mon 05/12/2014
22:00:00.39
Volume in drive V is BACKUP 1
Tue 05/13/2014
22:00:01.50
有人知道如果相同的备份 USB 驱动器号在日志文件底部连续出现一定次数,我该如何自动发送警告电子邮件吗?例如,14 次或更多(因为这表明用户应该执行的每周驱动器轮换现在已经整整拖延了一周)。
任何想法都将不胜感激!
答案1
这可行。您必须在 if 条件中添加发送电子邮件的代码,并将 LOGFILE 更改为您的日志文件路径:
#!/bin/bash
LOGFILE="logtest"
COUNT=`tail -n16 $LOGFILE | grep "Volume in" | uniq -c | cut -c0-7 | tail -n1`
echo "Last tape repeated $((COUNT)) times"
if [ $COUNT -gt 3 ]; then
echo "Sending email..."
mutt -s"FATAL: Missing tape rotation" [email protected] < /dev/null
fi