Descrição
Antes de rodar o script, a maquina servidor, deve poder se conectar com a maquina cliente com SSH sem senha (há vários artigos sobre isso). O cliente e o servidor devem ter o rsync. O rsync vai copiar na primeira vez os arquivos do servidor para a maquina do backup, depois o rsync só atualiza o que foi modificado e apagado. Está rodando há uns 6 meses aqui na empresa.
[ Download:
sincr_backup.sh ]
[
Enviar nova versão ]
[ Esconder código-fonte ]
#!/bin/sh
#
#sincr_backup.1.0
#Script que iniciara e enviara os pacotes para
#backup na maquina remoto, definida agora como
#backup ou 192.168.50.241
#
#Configuracao do host remoto
#ip da maquina que recebe os backups
IP_BCKUP=192.168.50.241
#dispositivo (/dev/hd??) que recebe os backups
DISP_BCKUP=/dev/hdb1
#ponto de montagem do dispositivo
MNT_POINT=/mnt/discobackup/
ARQ_IDENT=.ident_dsk.txt
#
#
#Checa se o host esta ligado
/bin/ping -c 1 -W 2 $IP_BCKUP > /dev/null
if [ "$?" -ne 0 ];
then
#Escreve o arquivo de log em /var/log/sincr_backup.log
#Escreve a data e a hora
date >> /var/log/sincr_backup.log
#Se a conexao nao retornar o pinga ele avisa.
echo Conexao ao host $IP_BCKUP falhou!!! >> /var/log/sincr_backup.log
echo Nao foi possivel realizar o backup. >> /var/log/sincr_backup.log
echo ----------------------------------- >> /var/log/sincr_backup.log
#O script termina aqui.
else
#Se retornar o ping ...
#Escreve o arquivo de log em /var/log/sincr_backup.log
#Escreve a data e a hora
date >> /var/log/sincr_backup.log
#Pega a estampa de tempo inicial, em segundos desde 1-1-1970
INI_TIME=`date +%s`
#Avisa que o host esta funcionando
echo O host $IP_BCKUP esta em pe!! >> /var/log/sincr_backup.log
#Verifica se o disco de backup ja esta montado
/usr/bin/ssh $IP_BCKUP /bin/mount | grep $DISP_BCKUP > /dev/null
#monta o disco no ponto de montagem, se ja estiver montado, tudo bem
if [ "$?" -ne 1 ];
then
echo O disco ja esta montado!!! >> /var/log/sincr_backup.log
else
echo Montando o disco $DISP_BCKUP em $MNT_POINT >> /var/log/sincr_backup.log
/usr/bin/ssh $IP_BCKUP mount /dev/hdb1 /mnt/discobackup
fi
#Depois de montados
#le o arquivo com a identificacao do disco
/usr/bin/ssh $IP_BCKUP /bin/cat $MNT_POINT$ARQ_IDENT >> /var/log/sincr_backup.log
echo Sincronizando discos ..... >> /var/log/sincr_backup.log
#Inicia a sincronizacao pelo rsync
rsync -a --delete -e ssh /home root@$IP_BCKUP:/mnt/discobackup/
#Pega a estampa de tempo final
FIN_TIME=`date +%s`
#Calcula o tempo para realizar o backup
TOT_TIME=`expr $FIN_TIME - $INI_TIME`
echo Levou $TOT_TIME segundos para terminar o backup! >> /var/log/sincr_backup.log
echo ----------------------------------- >> /var/log/sincr_backup.log
fi
Scripts recomendados
Gerenciamento de usários do Squid usando Dialog
Buscar conteúdo digitado em sites de busca
PINGS - Ping para diversos hosts em varios consoles
Pass
Script simples de procura de arquivo.
Comentários
[1] Comentário enviado por
icatorze em 31/08/2004 - 17:49h:
Ainda, complementando, com a configuração certa é possível fazer o backup numa maquina remota, fora da rede, através da internet, pois o rsync permite isso.