Em 26/7/2010 14:28, marcus escreveu:
> On Sunday 25 July 2010 10:06:00 you wrote:
>    
>> Opa...obrigado pela dica na formulação do texto...
>>
>> entendi sobre o rsync mas ainda nao foi o que perguntei
>>
>> por exemplo
>>
>> a pasta DADOS sera copiada toda sexta feira.
>>
>> no diretorio backup ficara da seguinte forma
>>
>> DADOS 25-07-2010
>>
>> Na proxima sexta eu quero que a pasta DADOS 25-07-2010 continue no local e
>> que fique a proxima pasta fique la tambem ou seja
>>
>> DADOS 27-07-2010
>> DADOS 02-08-2010
>>
>> e isso que eu quero . que copie a novamente a pasta. portem a anterior
>> fique no mesmo local...mantendo meses de backup
>>
>>
>> Agradeço a ajuda
>>
>> --- Em dom, 25/7/10, Kurt Kraut<lis...@kurtkraut.net>  escreveu:
>>
>> De: Kurt Kraut<lis...@kurtkraut.net>
>> Assunto: Re: [shell-script] Script para Backup
>> Para: shell-script@yahoogrupos.com.br
>> Data: Domingo, 25 de Julho de 2010, 10:35
>>
>> Aloha Rodrigo,
>>
>>
>> Tive enorme dificuldade de entender o que você está falando. Eu sugiro que
>> você revise o encadeamento lógico do seu texto. Quanto mais inteligível
>> você for, mais chance tem de conseguir ajuda.
>>
>> Do que entendi do teu cenário, você não está utilizando a melhor ferramenta
>> para a tarefa. Enquanto o comando 'cp' copia tudo no diretório de origem
>> para o diretório alvo, a ferramenta 'rsync' faz um trabalho mais refinado:
>> ela checa o que mudou na origem do backup e só copia para o alvo os
>> arquivos que mudaram. Isso irá reduzir o teu processo de backup de minutos
>> para poucos segundos. Diferença respeitável se você estiver movimentando
>> dados na casa dos gigabytes.
>>
>> Portanto, sugiro que pesquise tutoriais do rsync.
>>
>>
>> Atenciosamente,
>>
>>
>> Kurt Kraut (lis...@kurtkraut.net)
>>
>> Em 24 de julho de 2010 23:08, Rodrigo Griffo
>>      
> <rodrigogri...@ymail.com>escreveu:
>    
>>> Boa noite a todos.
>>>
>>> Estou com a seguinte situaçao.
>>>
>>> Tenho uma pasta em /home
>>> /home/dados
>>>
>>> Tenho uma outra partição que está ativa que tem o ponto de montagem
>>> "backup"
>>>
>>> Fiz um scritp para backup incremental simples
>>>
>>> cp -rRu /home/dados /bacup
>>>
>>> funciona blz....ele roda pelo cron 2x por dia e ta blz.
>>>
>>> Agora vem a questao.
>>>
>>> Que 1 backup semanal...mas na hora da copia a pasta anterior fique no
>>> mesmo local ou seja....nao se apague.
>>>
>>> Eu nao manjo de shell....entao to pedindo ajuda.
>>>
>>> Agradeço
>>>
>>>        
> Eu tambem faria com rsync. Assim:
>
> datahoje=`date`
> mkdir dir-$datahoje
> /usr/bin/rsync -av --progress --delete --password-file=/etc/rsyncd.secret
> origem::compartilhamento  dir_$datahoje>  /tmp/rsync_.log
>
> Abs!
>
>
>    
Veja se isso ajuda

backup.sh

#!/bin/bash
#
# Script copiado do link http://www.dicas-l.com.br/dicas-l/20050723.php



   # Identificação dos arquivos
   IDENTIFICA=Backup

   # Numero de dias do ciclo de backup
   DIAS=2

   # E-mail do administrador
   ADMIN_EMAIL=""
   ADMIN_PANDION=""
   ADMIN_SMS=""

   # A partir de onde ficarão os arquivos
   PREFIX=/scripts

   # Onde os arquivos de backup e logs ficarão armazenados
   DIR_DESTINO=/hd500g/bkp_departamentos

   # Lista de arquivos a não serem backupeados
   EXCLUDE=$PREFIX/bkpIncremental/exclude.list

   # Arquivos temporário do script
   TEMP=/tmp/.backup.$$

   # Arquivos de controle do GNU/Tar
   INC=$PREFIX/bkpIncremental/incremental.conf

   # Formato da data
   DATA=$(date +%d-%m-%Y-%a)

   rm -rf $PREFIX/bkpIncremental/tempo.log
   # INICIO Calculo tempo gasto para backup
   DATA_LOG=`date +%a-%d-%m-%Y-%H:%M:%S`
   echo -ne "\nInicio: $DATA_LOG" >> $PREFIX/bkpIncremental/tempo.log
   # INICIO do script, calcula tempo.
   START=$(date +%s)

   # Arquivo com a lista de diretórios a serem backupeados
   LISTA=$(cat $PREFIX/bkpIncremental/list.conf | grep ^\/ | sort | uniq)

   # Arquivos gerado pelo script para controle de incremento
   CONFIG=$PREFIX/bkpIncremental/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 () {

       echo "Backup realizado arquivo: $DESTINO.tar.gz" | /usr/bin/mutt 
-s "Backup F: $(date +%d-%m-%Y)" $ADMIN_EMAIL
     echo "Backup:$DESTINO.tar.gz" | /usr/bin/mutt -s "BKP F:" $ADMIN_SMS
     /usr/local/nagios/libexec/notify_via_jabber.pl $ADMIN_PANDION 
"Backup F: $(date +%d-%m-%Y) - Backup realizado arquivo: $DESTINO.tar.gz"

   }

   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 Calculo tempo gasto para backup
   DATA_LOG=`date +%a-%d-%m-%Y-%H:%M:%S`
   echo -ne "\nFim: $DATA_LOG" >> $PREFIX/bkpIncremental/tempo.log
   # FIM do script, calcula tempo.
   END=$(date +%s)
   DIFF=$(( $END - $START ))
   echo -ne "\nTempo gasto em segundos: $DIFF" >> 
$PREFIX/bkpIncremental/tempo.log

exit

exclude.list
*.avi
*.AVI
*.bmp
*.BMP
*.dsc
*.DSC
*.exe
*.EXE
*.jpeg
*.JPEG
*.jpg
*.JPG
*.lnk
*.mp3
*.MP3
*.mpeg
*.MPEG
*.mpg
*.MPG
*.wav
*.WAV
*.wma
*.WMA
*.wmv
*.WMV

list.conf
/hd500g/departamentos




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

---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como 
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio 
aviso.
---------------------------------------------------------------------
Sair da lista: shell-script-unsubscr...@yahoogrupos.com.br
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em 
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil

Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/shell-script/

<*> Para sair deste grupo, envie um e-mail para:
    shell-script-unsubscr...@yahoogrupos.com.br

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html


Responder a