Como é que crio um script de cópia de segurança remota com o Rsync?

Procédure

Para que é utilizado o Rsync?

O Rsync permite-lhe sincronizar ficheiros através da linha de comandos, para que possa fazer cópias de segurança de ficheiros de um local para outro, sincronizando-os de acordo com a fonte.

O script abaixo permitir-lhe-á efetuar uma cópia de segurança completa uma vez por mês e uma cópia de segurança parcial uma vez por semana.

Como posso criar um script de cópia de segurança remota com o Rsync?

O seguinte script permitir-lhe-á configurar um script de backup remoto com o Rsync. O script irá testar a presença da pasta de origem, testar a acessibilidade do servidor e criar uma nova pasta todos os meses na qual irá inserir uma cópia de segurança completa.

#!/bin/sh month=`date +%B` day=`date +%d-%m-%Y` hour=`date +%T` log="/home/user/logs_backups" local="/user/folder" remote="/files/backups_$month/" hostssh="ip_server" userssh="login" counter=5 retention=`date +%B --date='1 month ago'` name() { echo "-------------------------------------------------------------" > $log/$day_backup.log echo -e "$local backup of $(date +%d-%B-%Y)" >> $log/$day_backup.log echo "-------------------------------------------------------------" >> $log/$day_backup.log }# Se o diretório que contém os logs não existir, será criado.if [ ! -d $log ];then mkdir $log fi# Nós testamos a presença da pasta de origem E que o servidor responde ao pingrecus=$(ping -c $counter $hostssh | grep 'received' | awk -F',' '{ print $2 }' | awk '{print $1 }') > /dev/null 2>&1 if [[ ! -d $local ]] && [[ $recus -eq 0 ]];then name echo -e "$day-$hour :\n" >> $log/backup_$day.log echo -e "$local já não existe ou está inacessível.\nServidor inacessível ($hostssh : pacotes $counter transmitidos, pacotes $recus recebidos).\nNão foi efectuado qualquer backup." >> $log/sauvegarde_$jour.log exit# Apenas testamos a presença da pasta de origemelif [ ! -d $local ];then name echo -e "$jour-$heure : $local n'existe plus ou est inaccessible.\nAuc aucune sauvegarde effectuée." >> $log/sauvegarde_$jour.log exit# Só testamos o ping do servidorelif [ $recus -eq 0 ];then name echo -e "$jour-$heure : Serveur inaccessible ($hostssh : $compteur paquets transmises, $recus paquets reçus).\nNo backup made." >> $log/sauvegarde_$jour.log exit fi echo "-------------------------------------------------------------" > $log/backup_day.log echo "Cópia de segurança de $local a partir de $(data +%d-%B-%Y)" >> $log/backup_day.log echo "-------------------------------------------------------------" >> $log/backup_$day.log # Transferir a hora de início no registo echo "Hora de início da cópia de segurança: $(data +%T)" >> $log/backup_$day.log echo "-------------------------------------------------------------" >> $log/backup_$day.log# Transferência de ficheirosrsync -avz --stats --protect-args --delete-after -e ssh $local $userssh@$hostssh:$distant >> $log/backup_$day.log # -a : modo de arquivo ( equivalente -rlptgoD ). # -z : compressão de dados durante a transferência.
-e : para especificar o uso de ssh # -- stats : dá informação sobre a transferência (número de ficheiros...). # --protect -args : Se precisar de transferir um nome de ficheiro que contenha espaços, pode especificá-lo com esta opção. # --delete-after : apaga ficheiros que já não existem na fonte após a transferência para a pasta de destino.
status=$? echo "" >> $log/day_backup.log# códigos de retorno do rsynccase $status in 0) echo Success >> $log/day_backup.log; 1) echo Erro de sintaxe ou de utilização >> $log/day_backup.log; 2) echo Incompatibilidade de protocolo >> $log/day_backup.log;; 3) echo Erros ao selecionar ficheiros e directórios de entrada/saída >> $log/sauvegarde_$jour.log;; 4) echo Ação não suportada: tentativa de manipular ficheiros de 64 bits numa plataforma que não os suporta; ou uma opção que é suportada pelo cliente mas não pelo servidor. >> 5) echo Erro ao iniciar o protocolo cliente-servidor >> $log/sauvegarde_$jour.log;; 6) echo daemon unable to write to log file >> $log/sauvegarde_$jour.log;; 10) echo Erro no socket I/O >> $log/sauvegarde_$jour.log;; 11) echo Erro no ficheiro I/O >> $log/sauvegarde_$jour.log;; 12) echo Erro no fluxo de dados do protocolo rsync >> $log/save_$day.log;; 13) echo Erro com o diagnóstico do programa >> $log/save_$day.log;; 14) echo Erro no código IPC >> $log/save_$day.log;; 20) echo SIGUSR1 ou SIGINT recebido >> $log/save_$day.log;; 21) echo "Um erro retornado por waitpid()" >> $log/save_$day.log;; 22) echo Erro ao alocar buffers de memória principal >> $log/sauvegarde_$jour.log;; 23) echo Transferência parcial devido a um erro >> $log/sauvegarde_$jour.log;; 24) echo Transferência parcial devido ao desaparecimento de um ficheiro fonte >> $log/sauvegarde_$jour.log;; 25) echo O limite --max-delete foi atingido >> $log/sauvegarde_$jour.log;; 30) echo Tempo máximo de espera excedido ao enviar/receber dados >> $log/sauvegarde_$jour.log;; 35) echo Tempo de espera excedido ao aguardar uma ligação >> $log/sauvegarde_$jour.log;; 255) echo Erro inexplicável >> $log/sauvegarde_$jour.log;; esac echo "-------------------------------------------------------------" >> Hora de fim no registoecho "Hora de fim da cópia de segurança: $(data +%T)" >> $log/backup_$day.log echo "-------------------------------------------------------------" >> $log/backup_$day.log# As cópias de segurança são apagadas de acordo com a retenção.ssh $userssh@$hostssh rm -rf "backups_$retenção" exit

fonte : GitHub tuxmika

Conclusão

Agora você pode criar um script de backup remoto usando o Rsync para transferir arquivos e pastas para o seu espaço de backup online usando o LWS. Pode executar o seu script através de um trabalho cron para que seja iniciado uma vez por semana.

Não hesite em partilhar as suas questões e comentários!

Avaliar este artigo :

4,8/5 | 5 opinião

Este artigo foi útil para si ?

Article utileSim

Article non utileNão

Vous souhaitez nous laisser un commentaire concernant cet article ?

Si cela concerne une erreur dans la documentation ou un manque d'informations, n'hésitez pas à nous en faire part depuis le formulaire.

Pour toute question non liée à cette documentation ou problème technique sur l'un de vos services, contactez le support commercial ou le support technique

MerciMerci ! N'hésitez pas à poser des questions sur nos documentations si vous souhaitez plus d'informations et nous aider à les améliorer.


Vous avez noté 0 étoile(s)

Artigos semelhantes

2mn leitura

Como é que adiciono uma chave RSA ao serviço de unidade SCP do Rsync?

1mn leitura

Como é que utilizo o Rsync para fazer cópias de segurança de um sítio Web do Ispconfig?

0mn leitura

Como é que faço uma cópia de segurança do meu site com o LWS Drive?

4mn leitura

utilitário de restauro backup2l


Fazer uma pergunta à equipa do LWS e à sua comunidade