Script de Backup Incremental para compartilhamentos Windows
Atualizado em:
Criei esse script para realizar backups dos documentos dos nossos servidores.
Script muito útil, basta montar um pequeno servidor, pode ser uma máquina bem simples, só com um bom espaço de HD.
Dependência:
rsync
# apt-get instal rsync
Como funciona
O script utiliza o rsync, que copia apenas os arquivos novos ou os que foram modificados.
O script está pré-configurando para realizar o backup diário, e criar uma pasta para cada dia da semana, assim teremos 1 cópia para cada dia.
Ele cria um log para cada servidor.
Configure seu cron para rodar no horário que sua rede tiver menos tráfego, e nos dias que você tem certeza que terão modificações em seus arquivos, por exemplo: se sua empresa funciona de segunda à sexta, não tem porquê colocar o script para rodar nos fins de semana.
#! /bin/bash ################################ # Script de backup de arquivos # # Paulo Collares # # www.paulocollares.com.br # # 20/04/2010 # ################################ ################################################ #VARIAVEIS ################################################ semana=$(date +"%a") nome_semana=$(date +"%A") DIR_BKP="/backup/"$semana"/" # diretorio do backup DIR_LOG="/backup/logs/"$(date +"%d_%m_%Y")"_"$semana"/" # diretorio do log sudo mkdir $DIR_LOG sudo mkdir $DIR_BKP login='' #Usuário do AD com privilégios para acessar os compartilhamentos senha='' #Senha do Usuário do AD dominio='' #Seu domínio ################################################ #FUNCOES ################################################ #funções para criação dos logs function log(){ data=$(date +"%H:%M:%S") echo $data- $1 >> $DIR_LOG"log.log" } function log2(){ echo "" >> $DIR_LOG"log.log" } #A função que faz o backup function fazBackup(){ dir_bkp=$DIR_BKP$2 dir_log_rsync=$DIR_LOG"log_"$2".log" log "Fazendo coṕia dos arquivos de "$2" ("$1" para "$dir_bkp")" rsync --delete -v --log-file=$dir_log_rsync -Cravzp $1 $dir_bkp log "Fim coṕia dos arquivos em "$1" para "$dir_bkp } ################################################ #MAIN ################################################ log "Iniciando Backup diário de "$nome_semana" em "$(date +"%d-%m-%Y") log2 # Aqui você monta os compartilhamentos que serão utilizados para fazer o backup # Crie os diretórios no /mnt antes sudo mount -t cifs -o username=$login,password=$senha,workgroup=$dominio //IP_DO_SERVIDOR/NOME_DO_COMPARTILHAMENTO /mnt/NOME_DO_PONTO_DE_MONTAGEM -o iocharset=utf8 #chama a função de backup fazBackup "/mnt/NOME_DO_PONTO_DE_MONTAGEM" "NOME_PARA_O_LOG" #desmonta sudo umount /mnt/NOME_DO_PONTO_DE_MONTAGEM log2 log "Finalizando Backup diário de "$nome_semana" em "$(date +"%d-%m-%Y") log2 log2
Espero que esse script seja útil para você, assim como foi para mim. Qualquer dúvida me pergunte nos comentários.
Deixe um comentário