Escrevi um script que compacta os arquivos de uma determinada pasta e envia para um email usando o sendEmail, e estou compartilhando com todos

Para enviar o email você precisara ter instalado em seu GNU/Linux o sendEmail, o sendEmail é um script escrito em perl que usa um servidor smtp remoto, sendo assim você não precisa configurar um servidor de email só para isso.

mais detalhes sobre o sendEmail podem ser encontrados aqui

Vamos ao script

esta primeira parte compacta todos os arquivos da pasta com a extensão declarada no comando para um arquivo .tar.gz, se já possuir um arquivo de backup ele criara outro com o numero seguinte como pyGaneHouseAdmin_1.tar.gz, pyGaneHouseAdmin_2.tar.gz, pyGaneHouseAdmin_3.tar.gz e assim por diante


#compactando os arquivos
cont=1
for i in `ls backup/*.tar.gz`; do
cont=`expr $cont + 1`
done
arquivo="backup/pyGaneHouseAdmin_$cont.tar.gz"
comando="tar -zcvf $arquivo *.sql *.py *.db *.glade *.sh"
$comando

Nesta parte do script você especifica os dados do email como email, usuário, senha, destinatário

#Coletando dados para enviar o email
anexo="backup/pyGaneHouseAdmin_$cont.tar.gz"
remetente="endereço@email.com"
destinatario="endereço@email.com"
titulo="Backup pyGameHouseAdmin v$cont"
data=`date '+%d/%m/%Y %H:%M'`
mensagem="
$data\n
Backup dos arquivos .glade, .py, .sh, .sql e .db"
smtp="smtp.email.com:25"
usuario="usuário"
senha="senha"

E agora é só enviar o email com o comando a seguir.


#enviando o email
#obs. é necessariamente ter o sendEmail estalado
comando="sendEmail -f $remetente -t $destinatario -u $titulo -m $mensagem -a $anexo -s $smtp -xu $usuario -xp $senha"
$comando

Obs. Para enviar email usando o smtp do Gmail, você deve instalar no seu perl os modulos Net::SSLeay e IO::Socket::SSL, no site do sendEmail tem mais detalhes