[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:07:02 -0300 |
Há, eu esqueci de dizer vc pode limitar quandos dias quizer é só altera a
linha:
DIAS=7
Em 23/02/08, Jose Valdir Gama <address@hidden> escreveu:
>
> 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
--
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, 2008/02/23
- Re: [shell-script] Script p/ Verificar remover backups?,
Jose Valdir Gama <=