backup incremental e completo [RESOLVIDO]

1. backup incremental e completo [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 21/04/2011 - 01:41h

tenho um script assim

===========================

#!/bin/sh

BACKUP() {
RSYNC="/usr/bin/rsync -Cravzp"
TAR="/usr/bin/tar -cjvf"
SSH="/usr/bin/ssh"
KEY="/home/backup/.ssh"
RUSER="backup"
RHOST="$1"
RPATH="$2"
NAME="$3"
LPATH="/backup/$RHOST/${NAME}_$(date +%Y-%m-%d_%H:%M)"
PKGBKP="$LPATH.tar.bz2"
LOG="/var/log/backup.log"

echo "###############== START - $RPATH - $(date +%d-%m-%Y_%H:%M) ==###############" >> $LOG
mkdir -p "$LPATH" >> $LOG
$RSYNC $RUSER@$RHOST:$RPATH $LPATH >> $LOG
$TAR $PKGBKP $LPATH >> $LOG
rm -rf $LPATH
echo "###############== FINISH - $RPATH - $(date +%d-%m-%Y_%H:%M) ==###############" >> $LOG
echo "" >> $LOG
}

### BACKUP IP DIR NAME
### BACKUP "192.168.2.10" "/mnt/dados/" "dados"

BACKUP "192.168.2.1" "/mnt/publico/" "publico"

==============================================

a questão é, como eu faço backup incremental com rsync e como faço backup total com rsync

toda vez que eu sincronizo um diretorio, após compactar eu deleto o diretorio e deixo somente o compactado
se for backup incremental, eu não posso deletar o diretorio??

o backup incremental é bom fazer 1 vez por dia e o completo 1 vez por semana??

com o tempo não pode acabar sobrecarregando?? de quanto em quanto tempo vai deletando os backups antigos??

deleta somente os incrementais e deixa somente os completos?


  


2. MELHOR RESPOSTA

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 21/04/2011 - 11:58h

Eu acho q vc deveria separar, para ficar mais fácil a localização e organização. O "-u" da opção rsync é para atualizar (update) o arquivo q existe entre a origem e o destino, mas não concordo q isso seja incremental, pois não teria como recuperar o antigo depois. Eu acho q o certo é vc utilizar o find msm, pois ele pode gravar arquivos q foram modificados, criados e acessados (não vem ao caso). As opções são, respectivamente, mtime, ctime e atime.
Consertando, o meu exemplo ficou faltando o caminho:

# find /caminho/backup -type f -ctime +15 -exec rm -f {} \;

O -exec consegue executar qq comando, desde compactação até remoção do arquivo, desde q ele localize corretamente.

3. Re: backup incremental e completo [RESOLVIDO]

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 21/04/2011 - 01:49h

Faça com o find q vc terá melhores resultados. Ex., localizando arquivos criados há mais d 15 dias:

# find -type f -ctime +15 -exec rm -f {} \;


4. Re: backup incremental e completo [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 21/04/2011 - 02:20h

bacana, mas como eu escolho para procurar em determinado diretorio??

ex:
procurar somente no diretorio /backup/incremental


5. Re: backup incremental e completo [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 21/04/2011 - 02:59h

RSYNC="/usr/bin/rsync -Cravzp --skip-compress=gz/tgz/jpg/jpeg/mp[34]/7z/bz2"

nesse caso ele irá fazer backup completo, pelo menos é o que eu acho

a opção "-u" seria o incremental ou o diferencial???

o script sincroniza os arquivo +- assim

/backup/192.168.1.2/diretorio_2011-04-21_02:57

dpois ele compacta o diretorio, ficando assim

/backup/192.168.1.2/diretorio_2011-04-21_02:57.tar.bz2

dpois de compactar, ele deleta o diretorio "/backup/192.168.1.2/diretorio_2011-04-21_02:57"

essa lógica de backup está certa??

ou terei que criar os diretorio "/backup/completo", "/backup/incremental" e "/backup/atual" e jogar os arquivos compactados nos seus diretorios "completo" e "incremental" e manter o diretorio "/backup/atual" intacto para a sincronização


6. Re: backup incremental e completo [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 22/04/2011 - 00:51h

ja estou com tudo configurado, mas tenho certeza que vou ter problemas na organização de diretorios, mas isso vou resolver em outro topico

rsyncd.conf -----------------------------

#
# /etc/rsyncd.conf
#

# Usuário sob o qual o rsync irá rodar
uid=root

# Grupo sob o qual o rsync irá rodar
gid=root

# Arquivo de log
log file = /var/log/rsyncd.log

# Módulo para o servidor-um
[FreeBSD-center]

# Caminho onde fica o espaço para este módulo
path = /backup/current/FreeBSD-center

# Usuário(s) autorizado(s)
auth users = backup

# Arquivo de usuários senhas
secrets file = /etc/rsyncd.secrets

# Permitir gravação
read only = false

# Não incluir este módulo quando solicitada a listagem
list = false

# IP(s) ou rede permitidos a conectar
hosts allow = 192.168.2.1

# Log de Transferências
transfer logging = yes

# Formato do arquivo de log
log format = %t: host %h (%a) %o %f (%l bytes). Total %b bytes.

# Módulo para o servidor-dois.
[FreeBSD-server]
path = /backup/current/FreeBSD-server
auth users = backup
secrets file = /etc/rsyncd.secrets
read only = false
list = false
hosts allow = 192.168.2.2
transfer logging = yes
log format = %t: host %h (%a) %o %f (%l bytes). Total %b bytes.

-----------------------------------------------------------

dgfbackupserver -------------------------------------------

#!/bin/sh

TAR="/usr/bin/tar"
TAR_FLAGS="-cjvf"
PATH_CURRENT=/backup/current
PATH_FULL=/backup/full
PATH_INCREMENTAL=/backup/incremental
NAME_FLAGS=""
LOG_DIR="/var/log/backup"
mkdir -p $LOG_DIR $PATH_INCREMENTAL $PATH_FULL $PATH_CURRENT

TYPE=$(echo $1 | tr [A-Z] [a-z])
case $TYPE in
full)
TAR_FLAGS+=""
PATH="$PATH_FULL"
NAME_FLAGS+=""

;;
incremental)
TAR_FLAGS+=""
PATH="$PATH_INCREMENTAL"
NAME_FLAGS+="_$(date +%Y-%m-%d_%H:%M)"
;;
esac
LOG="$LOG_DIR/${TYPE}_$(date +%Y-%m-%d).log"
NAME="$PATH/*"
echo "###############== START - $(date %H:%M) ==###############" >> $LOG
for i in $NAME; do
PKGBKP="$NAME$NAME_FLAGS.tar.bz2"
echo "$NAME - Start $(date %H:%M)" >> $LOG
$TAR $TAR_FLAGS $NAME -C $PATH/$PKGBKP >> $LOG
echo "$NAME - Stop $(date %H:%M)" >> $LOG
echo "" >> $LOG
done
echo "###############== FINISH - $(date %H:%M) ==###############" >> $LOG
echo "" >> $LOG

mv $LOG $LOG_$(date +%Y-%m-%d)

------------------------------------------------------------------

dgfbackupclient ---------------------------------------------------

#!/bin/sh

SSH="/usr/bin/ssh"
RSYNC="/usr/bin/rsync"
RSYNC_FLAGS="--skip-compress=gz/tgz/jpg/jpeg/mp[34]/7z/bz2"
LOG_DIR="/var/log/backup"
LOG="$LOG_DIR/$(date +%Y-%m-%d).log"
mkdir -p $LOG_DIR

BACKUP() {
TRANSMISSION=$(echo $1 | tr [A-Z] [a-z])
case $TRANSMISSION in
rsync)
RSYNC_FLAGS+=" -Cravzp"
HOST="$2"
USER="$3"
LPATH="$4"
MODULE="$5"
DEST="$USER@$HOST::$MODULE"
;;
ssh)
RSYNC_FLAGS+=" -Cravzp -e ssh"
HOST="$2"
USER="$3"
LPATH="$4"
RPATH="$5"
DEST="$USER@$HOST:$RPATH $LPATH"
;;
esac

echo "###############== START - $(date %H:%M) ==###############" >> $LOG
for i in $LPATH; do
echo "$LPATH - Start $(date %H:%M)" >> $LOG
$RSYNC $RSYNC_FLAGS $DEST >> $LOG
echo "$LPATH - Stop $(date %H:%M)" >> $LOG
echo "" >> $LOG
done
echo "###############== FINISH - $(date %H:%M) ==###############" >> $LOG
echo "" >> $LOG
mv $LOG $LOG_$(date +%Y-%m-%d)
}

### RSYNC
# BACKUP "TRANSMISSION" "REMOTE-IP" "USER" "DIR(s)" "MODULE"(rsyncd.conf)
# BACKUP "rsync" "192.168.2.3" "backup" "/mnt/dados /home/user" "FreeBSD-center"



### SSH
# BACKUP "TRANSMISSION" "REMOTE-IP" "USER" "DIR(s)" "REMOTE-DIR"
# BACKUP "ssh" "192.168.2.3" "backup" "/mnt/dados /home/user" "/backup"

BACKUP "ssh" "192.168.2.3" "backup" "/mnt/rede" "/backup/current/FreeBSD-center"

------------------------------------------------------------------

agr só falta jogar o find no script dgfbackupserver, vlw






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts