problema com backup

1. problema com backup

Perfil removido
removido

(usa Nenhuma)

Enviado em 22/09/2007 - 11:04h

olá pessoal,
Estou criando um script que faz backup de arquivos em estensão .doc.
Ele primeiro procura todos os arquivos no diretorio e joga a saida limpa das mensagens de erro e acesso negado para um arquivo backuplog e a partir dele criar um arquivo compactado...
O problema é q ele nao ta pegando os arquivos q tem espaços no nome, ou seja, ele pega contrato.doc mas nao pega contrato 1.doc
Alguem sabe como posso resolver isso?

#!/bin/bash
#rotina de backup criada por Jeferson dos Santos (jefersondossantos@gmail.com
#e distribuido sob Licensa GNU/GPL versão < 3

#criando as variáveis
DATA=`date --rfc-3339=date`
EXTENSAO="*.doc"
DIRETORIO_BUSCA=/home
DESTINO=/jef/
TEMPDIR=/tmp/backupscript/
rm -f /tmp/backuplog
mkdir $TEMPDIR
find $DIRETORIO_BUSCA -name $EXTENSAO > /tmp/backuplog

cp `cat /tmp/backuplog |grep .doc` $TEMPDIR
clear
tar -zcvf ${DESTINO}$04/10/2005.tar.gz $TEMPDIR
rm -rf $TEMPDIR







  


2. Re: problema com backup

Elgio Schlemer
elgio

(usa OpenSuSE)

Enviado em 22/09/2007 - 22:02h

Olha, aproveitando o ensejo:

find $DIRETORIO_BUSCA -name $EXTENSAO > /tmp/backuplog

Eu usaria -iname, para pegar também os .DOC (maiusculo)

cp `cat /tmp/backuplog |grep .doc` $TEMPDIR

Grep .doc casa com madoc.txt, pois o ponto no grep significa QUALQUER caracter. Para ser mais enfatico, deveria ser grep "\.doc$"

mas porque fazer um grep de doc se o teu find já retorna apenas os docs? Não confia no find e quer ter certeza??

Tche, acho que TUDO que tu precisa é isto:

# SAI find $DIRETORIO_BUSCA -name $EXTENSAO > /tmp/backuplog

# SAI cp `cat /tmp/backuplog |grep .doc` $TEMPDIR

# ENTRA APENAS:
find $DIRETORIO_BUSCA -iname "$EXTENSAO" -exec cp {} $TEMPDIR \;





3. RESOLVIDO

Perfil removido
removido

(usa Nenhuma)

Enviado em 24/09/2007 - 01:16h

Antes de mais nada obrigado por responder.
Ainda to engatinhando em shell script não conheço as formas mais práticas. Eu já tinha conseguido fazer o script rodar da forma q eu tava querendo, mas aproveitei sua msg pra aprender sobre o lance do .doc
Segue abaixo o script funcionando. Depois vou tentar utilizar o comando q vc me passou, pra deixar o script mais limpo. Valeu!
Caso possa me ajudar, como eu faço pra, em um unico SED colocar aspas no começo e no fim de cada linha? Pq o tar dá erro caso o arquivo tenha espaço no nome

--------
#!/bin/bash
find $DIRETORIO_BUSCA -iname $EXTENSAO |sed 's/^/"/g' | sed 's/$/"/g' > /tmp/scriptlog

cat /tmp/scriptlog | xargs tar -zcvf ${DESTINO}$04/10/2005.tar.gz
--------






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts