você está aqui: Home  → Arquivo de Mensagens

Backups via e-mail

Colaboração: Rubens Queiroz de Almeida

Data de Publicação: 08 de Abril de 1997

Muitas vezes não é necessário que se faça um backup completo de todos os sistemas de arquivos de uma máquina. Todavia, ainda assim é importante que se salvem alguns arquivos importantes.

Uma solução para este problema é realizar o backup destes arquivos, em sua maioria arquivos de configuração, através de e-mail.

Desta forma, os arquivos são gravados diariamente e enviados via email para uma ou mais máquinas ou pessoas, onde são gravados em um arquivo em disco.

A automatização via cron, pode ser criada através da edição à crontab de uma linha como:

0 0 * * * /usr/local/etc/saveconfig  1>/dev/null 2>/dev/nul

Desta forma, todos os dias, as 00:00 horas, o script /usr/local/etc/saveconfig é executado.

Para melhor entender o procedimento, encontra-se abaixo o script saveconfig, contendo explicações detalhadas sobre os passos seguidos:

#!/bin/sh
#
# Script para realização de backup de arquivos de configuração
# via correio eletronico
#

PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin
export PATH

# A seguir é criado um arquivo no formato tar, contendo todos os arquivos
# de configuração que se deseja salvar. A lista dos arquivos deve ser
# criada em conjunto com todos os usuários e administradores da máquina
# Observar que o arquivo é criado com diretórios relativos, ou seja,
# iniciados em "." para facilitar a expansão do arquivo tar em qualquer
# localização.
# O arquivo tar criado é compactado utilizando-se o programa gzip
# e redirecionado para o arquivo /tmp/machine.config.tar.gz

cd /
tar cvzf - \
        ./var/spool/cron \
        ./var/named \
        ./etc/aliases \
        ./etc/dumpdates \
        ./etc/gated.conf \
        ./etc/group \
        ./etc/hostname.le0 \
        ./etc/hostname.le1 \
        ./etc/hosts \
        ./etc/hosts.equiv \
        ./etc/hosts.equiv \
        ./etc/inet \
        ./etc/vfstab \
        ./etc/vold.conf > /tmp/machine.config.tar.gz

# Neste ponto, o formato do arquivo é
# transformado pelo comando uuencode
# para permitir a sua transferência
# via mail

uuencode /tmp/machine.config.tar.gz machine.config.tar.gz \
         > /tmp/machine.config.tar.gz.uu

# Em seguida, o arquivo é enviado
# para a(s) máquinas de destino onde
# deverá ser criado um alias que se
# encarregará de realizar a gravação
# no local apropriado. Incluir na(s)
# máquina(s) de destino, no arquivo
# /etc/aliases, uma linha do tipo:
# backup:
#
# "|/usr/local/bin/deliver -b /usr/local/doc/backups/machine
# 
# Recomenda-se também a encriptação da
# mensagem para aumentar a segurança
# deste esquema visto que informações
# confidenciais estarão sendo
# enviadas.
# 
# O programa deliver é de domínio público
# e serve para fazer a sincronização
# de gravação no arquivo de destino, no
# caso, /usr/local/doc/backups/machine.
# De tempos em tempos este arquivo
# deve ser examinado e removidas as
# mensagens mais antigas (manual ou
# automaticamente).
# 
# No nosso exemplo, o arquivo de backup é
# enviado para o usuário queiroz e para o
# alias backup na máquina fserver.com.br.

mail -s "Configuracao ""date +%d/%m"" (machine)" queiroz backup@fserver.com.br <
                /tmp/machine.config.tar.gz.uu

# Finalmente, os arquivos temporários gerados devem ser removidos

rm /tmp/machine.config.*


Veja a relação completa dos artigos de Rubens Queiroz de Almeida