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.
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.
Segue código:
Código: Selecionar todos
#! /bin/bash
semana=$(date +"%a")
nome_semana=$(date +"%A")
DIR_BKP="/backup/"$semana"/"
DIR_LOG="/backup/logs/"$(date +"%d_%m_%Y")"_"$semana"/"
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
function log(){
data=$(date +"%H:%M:%S")
echo $data- $1 >> $DIR_LOG"log.log"
}
function log2(){
echo "" >> $DIR_LOG"log.log"
}
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
}
log "Iniciando Backup diário de "$nome_semana" em "$(date +"%d-%m-%Y")
log2
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
fazBackup "/mnt/NOME_DO_PONTO_DE_MONTAGEM" "NOME_PARA_O_LOG"
sudo umount /mnt/NOME_DO_PONTO_DE_MONTAGEM
log2
log "Finalizando Backup diário de "$nome_semana" em "$(date +"%d-%m-%Y")
log2
log2
