[FUG-BR] Backup remoto usando ftp e dump

Marcelo Gondim gondim em linuxinfo.com.br
Quarta Maio 25 21:15:07 BRT 2011


Olá pessoal,

Na BSD Magazine desse mês veio uma matéria muito legal de como fazer um 
Backup usando o ftp + dump. Na máquina FreeBSD que se vai fazer o 
backup, roda-se um script e este conecta ao servidor de backup que pode 
ser qualquer máquina com grande espaço e um servidor de FTP rodando. É 
feito um dump dos filesystems que você quiser e enviado para o servidor 
ftp automaticamente. O script original foi feito por Bill Harris mas 
algumas coisas não saíram como eu esperei então fiz umas alterações 
interessantes. Abaixo a versão que alterei do Bill:

O script run_backup.sh eu coloquei em /root/scripts ao invés de 
/root/bin como na matéria.
No servidor ftp criei uma conta numa partição com muito mas muito 
espaço, dentro do diretório home dele
criei o diretório dumpfiles e dentro do dumpfiles criei os dias do mês 
de 01 até 31. Dessa forma o script abaixo vai fazer um dump diário do 
servidor FreeBSD e jogar os dumps para o diretório do dia corrente.
A variável DUMPFS tem os filesystems que você quiser o dump separados 
por espaço. No meu exemplo fiz do: /, /usr e /var
O script vai criar o /root/.netrc com os dados necessários e no final 
conectar usando a ferramenta ftp do FreeBSD.
No final do script eu coloquei um exemplo de como recuperar um dump via 
ftp também como o Bill colocou na matéria.

#!/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/scripts
export PATH
echo "BackMeUp"
echo "version .6"
umask 066
HOST=`/bin/hostname`
BACKUPHOST="IP_DO_SEU_SERVIDOR_FTP"
BACKUPUSR=LOGIN_FTP
BACKUPPWD=SENHA_FTP
BACKUPLOG="/var/log/backup.log"
DUMPDIR="dumpfiles"
DUMPFS="/ /usr /var"
DAY=`date +%d`
DUMPDATE=`date`
X=1

cat > /root/.netrc <<-EOF
machine $BACKUPHOST
        login $BACKUPUSR
        password $BACKUPPWD
        macdef init
        cd $DUMPDIR
        cd $DAY
        binary
EOF

for fs in $DUMPFS
do
        echo "       put \"|dump 0aLf - $fs \" $HOST.$X.dump" >>/root/.netrc
        X=`expr $X + 1`
done
echo "       quit" >>/root/.netrc
echo "" >>/root/.netrc

echo "$DUMPDATE: Backup started " >>$BACKUPLOG
ftp $BACKUPHOST
echo "$DUMPDATE: Backup Completed " >>$BACKUPLOG

# Para recuperar:
# ftp> get server_name.1.dump "|restore -ivf -"

[]´s a todos


Mais detalhes sobre a lista de discussão freebsd