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