Nosso sistema de backup externo depende de um membro da equipe alternando qual unidade USB está conectada ao servidor de arquivos a cada semana.
Qualquer unidade conectada será sincronizada com a partição de dados no servidor (todas as noites às 22h) usando um arquivo em lote agendado, que executa o Robocopy. As próprias unidades USB são criptografadas usando Truecrypt para proteger nossa organização no caso de perda ou roubo de alguma delas.
O elo mais fraco (dependente de humanos) em nosso sistema de backup é o membro da equipe responsável pela rotação das unidades a cada semana. Às vezes, ele não apenas se esquece de fazer isso semanalmente, mas também por mais de um mês.
Já tenho o registro configurado, o que me permite rastrear quando as unidades são giradas, graças à resposta da minha pergunta anterioraqui. Portanto, já temos um arquivo de log que rastreia qual unidade está conectada em um determinado dia.
O que eu quero fazer agora é enviar um e-mail automático do servidor (SBS 2003) para o usuário responsável pela rotação das unidades, para o chefe do usuário e para mim (sysadmin) se o agendamento de backup estiver faltando por duas ou mais semanas. O Outlook 2010 não está instalado no servidor, mas poderá estar, se necessário.
Os dados no log que rastreiam qual unidade de backup está conectada estão no seguinte formato:
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
Alguém tem alguma idéia de como eu poderia automatizar o envio de um e-mail de aviso se o mesmo número da unidade USB de backup aparecer por um determinado número de vezes consecutivas na parte inferior do arquivo de log? Por exemplo, 14 ou mais (pois isso indicaria que a rotação semanal da unidade que o usuário deveria ter realizado está agora atrasada uma semana inteira).
Quaisquer ideias serão muito apreciadas!
Responder1
Isso funcionaria. Você deve adicionar o código para enviar o e-mail dentro da condição if e alterar LOGFILE para qualquer caminho do arquivo de log:
#!/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