#!/bin/sh
# Backup Linux v1.3
# Autor: Vinicius Santoro
# Site: http://www.viniciussantoro.com.br
 
# Destinatario para enviar e-mail com o relatorio do backup
ADMIN=contato@viniciussantoro.com.br
# Nome do servidor a ser feito o backup
SERVER=SERVERVN01
 
# Arquivo com a lista de diretorios para realizar o backup
LIST=$(cat /opt/backup/bkp_files.list | grep ^\/ | sort | uniq)

# Log do backup
LOG=/var/log/backup.log

# Pega data atual
DATE=`date +%d-%m-%Y-%a`
 
# Monta uma unidade Windows para enviar o backup
tomount() {
        mount -t cifs -o "username=DVN\backup,password=backup" "//SERVERVN02/bkplinux$" /mnt/SERVERVN02
        if [[ $? -eq 0 ]]; then
                echo "Partition /mnt/SERVERVN02 has been mounted sussesfully" >> $LOG
                backup
                erase
        else
        echo "An error occurred while mounting the Partition /mnt/SERVERVN02" >> $LOG
        echo "------------- Finishing Backup date `date +%d/%m/%Y" "%H:%M` -------------" >> $LOG
        exit 1
        fi
}
 
# Funcao que dispara o e-mail com o log
send_mail () {
/usr/sbin/sendmail $ADMIN << FIMEMAIL
Subject: Backup $SERVER $(date +%d-%m-%Y)
Backup realizado no arquivo: /mnt/SERVERVN02/$SERVER-$DATE.tar.gz
FIMEMAIL
}
 
# Funcao que realiza o backup e o compacta
backup() {
tar --totals --ignore-failed-read  -zcv -f /mnt/SERVERVN02/$SERVER-$DATE.tar.gz $LIST >> $LOG 2>&1
}
 
# Funcao que deleta os arquivos com mais de 7 dias
erase() {
find /mnt/SERVERVN02/$SERVER* -mtime +7 -exec rm -rf {} \;
}
 
# Monsta mensagem de log
echo "------------- Starting Backup date `date +%d/%m/%Y" "%H:%M` -------------" >> $LOG
tomount
echo "------------- Finishing Backup date `date +%d/%m/%Y" "%H:%M` -------------" >> $LOG

# Envia o e-mail
send_mail
 
# Desmonta a unidade
umount /mnt/SERVERVN02
