Autor Tópico: Problema com script de backup.  (Lida 2484 vezes)

Offline r40n1

  • Usuário Ubuntu
  • *
  • Mensagens: 46
    • Ver perfil
Problema com script de backup.
« Online: 05 de Outubro de 2009, 23:43 »
Olá pessoal...
estou tendo um pequeno problema com um script de backup que estou tentando criar.
Antes desse eu tinha criado um que copiava todos os arquivos .bash de um determinado diretório pra outro em uma hora especificada pelo usuário, agora o cenário mudou um pouco.

O script deve copiar todos os arquivos com terminação .bash que estejam abaixo do diretório do usuário (dentro dos diretórios e sub-diretórios) e copiar pra uma pasta que já foi criada para backup.
Creio que o problema seja com o comando locate ou com o meu for mal feito.
Por favor, desconsiderem os erros noobs, estou começando agora!

eis o código:
Código: [Selecionar]
#!/bin/bash
echo A que horas voce quer fazer o backup dos seus scripts bash?
read hora

locate /home/*.bash > arquivosbash.txt
lista=$(cat arquivosbash.txt)

for itens in $lista
do
echo cp $itens /home/raoni/raoni_backup > comandos.txt
done

at $hora -f comandos.txt


Agradeço desde já a ajuda de todos!!!;)

Offline clcampos

  • Administrador
  • Usuário Ubuntu
  • *****
  • Mensagens: 10.790
  • .:: User Linux #439596 ::.
    • Ver perfil
Re: Problema com script de backup.
« Resposta #1 Online: 05 de Outubro de 2009, 23:51 »
Tente as alterações (em vermelho):

Citar
#!/bin/bash
echo A que horas voce quer fazer o backup dos seus scripts bash?
read hora

locate /home/*.bash > arquivosbash.txt
lista=$(cat arquivosbash.txt)

> comandos.txt

for itens in $lista
do
   echo cp $itens /home/raoni/raoni_backup >> comandos.txt
done

at $hora -f comandos.txt

Quanta alteração heim!

obs.: Não testei sua rotina, só vi a rotina direto aqui, mas acho que já vai rolar legal... a sim, faltam algumas consistências, mas esta ótimo.
« Última modificação: 05 de Outubro de 2009, 23:53 por clcampos »
Cristiano/Timóteo - MG
.: Como Fazer Perguntas de Forma Inteligente :.                
Com dúvida? pesquise!

Offline r40n1

  • Usuário Ubuntu
  • *
  • Mensagens: 46
    • Ver perfil
Re: Problema com script de backup.
« Resposta #2 Online: 06 de Outubro de 2009, 14:12 »
Tente as alterações (em vermelho):

Citar
#!/bin/bash
echo A que horas voce quer fazer o backup dos seus scripts bash?
read hora

locate /home/*.bash > arquivosbash.txt
lista=$(cat arquivosbash.txt)

> comandos.txt

for itens in $lista
do
   echo cp $itens /home/raoni/raoni_backup >> comandos.txt
done

at $hora -f comandos.txt

Quanta alteração heim!

obs.: Não testei sua rotina, só vi a rotina direto aqui, mas acho que já vai rolar legal... a sim, faltam algumas consistências, mas esta ótimo.


Legal...
Testei, mas não funcionou direito!
Pelo que entendi, dessa forma o script vai criar o arquivo comandos.txt antes do for e depois vai adicionar a linha
Código: [Selecionar]
echo cp $itens /home/raoni/raoni_backupno mesmo, pra depois o at chama-lo e realiza-lo!

Aqui o que está acontecendo é o seguinte: o script roda normalmente, localiza os arquivos .bash e salva todos na lista arquivosbash.txt. Essa $lista é criada normalmente, porém o for não está conseguindo ler a mesma!
O arquivo comandos.txt também é criado, porém não existe comando nenhum gravado nele, pois a linha 12, que contém o comando echo está dando erro.

Resumindo, esse script está apenas perguntando a que horas o usuário quer fazer o backup e criando um arquivo com a lista de todos os arquivos de interesse dele, e na hora marcada ele não copia esses arquivos.
Não sei o que está acontecendo, aparentemente o script está correto, mas conto com a ajuda de todos para descobrirmos!
Também espero estar contribuindo para o desenvolvimento dos scripts dos usuários por aqui logo em breve!:)

Obrigado, Abração;)
« Última modificação: 06 de Outubro de 2009, 14:14 por r40n1 »

Offline Imoogi

  • Usuário Ubuntu
  • *
  • Mensagens: 10
    • Ver perfil
Re: Problema com script de backup.
« Resposta #3 Online: 06 de Outubro de 2009, 18:09 »
ae r40n1 tenta esse


Código: [Selecionar]
#!/bin/bash
echo A que horas voce quer fazer o backup dos seus scripts bash?
read hora

lista=`locate -o /home/ *.bash`

for itens in $lista
do
   echo "cp $itens /home/backup" >> comandos.txt
done

at $hora -f comandos.txt

vc tem que colocat o caminho da pasta backup no comando "cp" dentro do "for", de resto ta funfiando ;D
« Última modificação: 06 de Outubro de 2009, 18:15 por Imoogi »

Offline clcampos

  • Administrador
  • Usuário Ubuntu
  • *****
  • Mensagens: 10.790
  • .:: User Linux #439596 ::.
    • Ver perfil
Re: Problema com script de backup.
« Resposta #4 Online: 08 de Outubro de 2009, 11:52 »
Caro r40n1 tudo bem?

Até sei que já tem uns dias que postou o problema, e talvez já tenha resolvido, porém fiquei curioso e gostaria de saber qual é o erro que dá na rotina?

Pergunto porque aqui o for funcionou perfeitamente.
Cristiano/Timóteo - MG
.: Como Fazer Perguntas de Forma Inteligente :.                
Com dúvida? pesquise!

Offline r40n1

  • Usuário Ubuntu
  • *
  • Mensagens: 46
    • Ver perfil
Re: Problema com script de backup.
« Resposta #5 Online: 09 de Outubro de 2009, 11:49 »
ae r40n1 tenta esse


Código: [Selecionar]
#!/bin/bash
echo A que horas voce quer fazer o backup dos seus scripts bash?
read hora

lista=`locate -o /home/ *.bash`

for itens in $lista
do
   echo "cp $itens /home/backup" >> comandos.txt
done

at $hora -f comandos.txt

vc tem que colocat o caminho da pasta backup no comando "cp" dentro do "for", de resto ta funfiando ;D

Cara, fiz assim e não funfou =/
ele diz que o parâmetro 'o' não existe no comando locate.

E eu já havia colocado o caminho da pasta de backup no meu comando cp, o que será que está acontecendo? =/
Código: [Selecionar]
echo cp $itens /home/raoni/raoni_backup > comandos.txtValeu pela ajuda! ;)

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

Caro r40n1 tudo bem?

Até sei que já tem uns dias que postou o problema, e talvez já tenha resolvido, porém fiquei curioso e gostaria de saber qual é o erro que dá na rotina?

Pergunto porque aqui o for funcionou perfeitamente.

Olá, clcampos, obrigado por estar ajudando!
Apesar de ser um problema simples, ainda não o resolvi. Meu compilador deve estar com preguiça! :)

Quando executo o script conforme você me orientou, o terminal retorna o seguinte erro:
Código: [Selecionar]
raoni@raoni-laptop:~/Documentos$ bash at2.bash
A que horas voce quer fazer o backup dos seus scripts bash?
11:45
at2.bash: line 12:    echo: comando não encontrado
at2.bash: line 12:    echo: comando não encontrado
at2.bash: line 12:    echo: comando não encontrado
at2.bash: line 12:    echo: comando não encontrado
at2.bash: line 12:    echo: comando não encontrado
at2.bash: line 12:    echo: comando não encontrado
at2.bash: line 12:    echo: comando não encontrado
warning: commands will be executed using /bin/sh
job 11 at Fri Oct  9 11:45:00 2009
raoni@raoni-laptop:~/Documentos$
Todos na linha 12, no comando echo que fica dentro do for.
------------------
Caros...
não sei o que está acontecendo mesmo, mas continuo contando com a ajuda de todos para descobrir!
Abraços!;)