[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