[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Script p/ Verificar remover backups?
From: |
Jose Valdir Gama |
Subject: |
Re: [shell-script] Script p/ Verificar remover backups? |
Date: |
Sat, 23 Feb 2008 10:01:07 -0300 |
Olha amigo eu não conheço bulufa nenhuma de shell script, alia estou
tentando aprender, mas está dificil.
Uso este escript, e não fui eu que criei, mais resolveu o meu problema, ele
é bem simples, mas eficiente.
Ele faz o backup incremental durante 7 dias da semana, e vai apagando os
backup mais antigos, isso quer dizer que vc terá sempre 7 backps.
#!/bin/bash
#
# Identificação dos arquivos
IDENTIFICA=Backup
# Numero de dias do ciclo de backup
DIAS=7
# E-mail do administrador
ADMIN=seu e-mail.com <ADMIN=address@hidden>
# A partir de onde ficarão os arquivos
PREFIX=/var
# Onde os arquivos de backup e logs ficarão armazenados
DIR_DESTINO=/mnt/sdb1/backup/arquivos
# Lista de arquivos a não serem backupeados
EXCLUDE=$PREFIX/etc/exclude.list
# Arquivos temporário do script
TEMP=/tmp/.backup.$$
# Arquivos de controle do GNU/Tar
INC=$PREFIX/etc/incremental.conf
# Formato da data
DATA=$(date +%d-%m-%Y-%a)
# Arquivo com a lista de diretórios a serem backupeados
LISTA=$(cat $PREFIX/etc/list.conf | grep ^\/ | sort | uniq)
# Arquivos gerado pelo script para controle de incremento
CONFIG=$PREFIX/etc/backup.conf
VOLTA=0
if [ ! -e $CONFIG ] ; then
touch $CONFIG
NUMERO=1
else
cp -f $CONFIG $CONFIG.bak
LINHAS=$(cat $CONFIG | grep ^[0-9] | wc -l)
[ $LINHAS -eq $((DIAS+1)) ] && VOLTA=1
FIRST=$(cat $CONFIG | grep ^[0-9]- | head -1)
LAST=$(cat $CONFIG | grep ^[0-9]- | tail -1)
OLD=$(echo $LAST | cut -f1 -d"-")
OLD=${OLD:-0}
BACKUP_OLD=$(echo $FIRST | cut -f1 -d"-")
FILE_OLD=$(echo $FIRST | cut -f- -d"-")
if [ $OLD -eq $DIAS ] ; then
NUMERO=1
mv -f $INC $INC.bak
else
NUMERO=$((OLD+1))
fi
fi
DESTINO=$DIR_DESTINO/$IDENTIFICA-$NUMERO-$DATA
#SEND_MAIL () {
#postfix $ADMIN << FIMEMAIL
#sendmail $ADMIN
#Subject: Backup CL $(date +%d-%m-%Y)
#Backup realizado no arquivo: $DESTINO.tar.gz
#FIMEMAIL
#}
df -h > $DESTINO.log
tar --totals --ignore-failed-read --exclude-from=$EXCLUDE -zcvg $INC -f
$DESTINO.tar.gz $LISTA >> $DESTINO.log 2>&1
df -h >> $DESTINO.log
#SEND_MAIL $DESTINO.log
echo $NUMERO-$DATA >> $CONFIG
if [ $VOLTA -eq 1 ] ; then
rm -f $DIR_DESTINO/$IDENTIFICA-$FILE_OLD.tar.gz
rm -f $DIR_DESTINO/$IDENTIFICA-$FILE_OLD.log
sed 1d $CONFIG > $TEMP
mv -f $TEMP $CONFIG
fi
#Fim
Espero que ajude.
Abraço
Valdir
Em 19/02/08, Rafael Tomelin <address@hidden> escreveu:
>
> Olá pessoal,
>
> Faço o meu backup direto paraum diretório em um utro servidor, quero saber
> o
> seguinte:
>
> Como listar os backups existentes e deixar os backups dos ultimos 5 dias,
> ou
> seja, quero remover todos os backups deixando apenas o da semana atual.
>
> Como posso estar fazendo esse script?
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>
--
Sumare- SP
jgamasystem - Linux a toda Prova
[As partes desta mensagem que não continham texto foram removidas]
Re: [shell-script] Script p/ Verificar remover backups?,
Jose Valdir Gama <=