Pequena falha no script - Help me!!!

1. Pequena falha no script - Help me!!!

Aprendiz - CE
aprendiz_ce

(usa Debian)

Enviado em 11/03/2008 - 14:54h

Tenho um script (bash) de backup que roda em dois servidores distinto, ambos são idênticos em tudo, tanto nos serviços como em pacotes instalados. Só que em uma das máquinas o script roda 100% e no outro roda 99% (rs). Que coisa! As linhas em questão são bem "simples" e ficam logo no inicio do script.

Linhas em questão são as seguintes:

#!/bin/bash
#
rm -rf /home/share/sgr/*.dbf
rm -rf /home/share/sgr/*.DBF
rm -rf /home/share/sgr/*.fpt
rm -rf /home/share/sgr/*.FPT
rm -rf /home/share/sgr/*.idx
rm -rf /home/share/sgr/*.IDX
rm -rf /home/share/sgr/*.prn
rm -rf /home/share/sgr/*.PRN

As referidas linhas do script são executadas, não mostram nenhum tipo de erro na sua execução, mas em compensação não fazem o que deveriam, pois ao termino de sua execução os arquivos continuam lá... Ah, e tem outro detalhe! Se eu executo a referida linha na mão... Funciona certinho. O que pode está acontecendo?

Obrigado e aguardo qualquer ajuda.




  


2. Re: Pequena falha no script - Help me!!!

Leandro Santiago
tenchi

(usa Slackware)

Enviado em 11/03/2008 - 15:54h

Muito provavelmente é problemas com permissão.
A ausência de saída de erro é causada pelo parâmetro '-f' (force). Com ele, você pode até apagar um arquivo que não existe...
$ rm -f /arquivo-que-nao-existe
... e não haverá resquício algum se o procedimento foi realizado com sucesso ou não.

Pensando bem, pode não ser problemas com permissão, já que isto normalmente retorna uma mensagem de erro... Se o script é executado na inicialização ou finalização de um processo, verifique se este processo está ocorrendo bem, como no desligamento ou inicialização do SO.


3. Re: Pequena falha no script - Help me!!!

Sérgio Abrantes Junior
pelo

(usa Debian)

Enviado em 11/03/2008 - 22:03h

Faz outro script na mão que vai funcionar. Na cópia de um servidor pro outro, as vezes não funciona mesmo.

Sérgio Abrantes
[]'s


4. Re: Pequena falha no script - Help me!!!

Geraldo José Ferreira Chagas Júnior
gjr_rj

(usa Debian)

Enviado em 11/03/2008 - 22:44h

qual é o usuário (dono) do script ?
coloque uns echo. Para debugar.
o que aparece ?



5. Re: Pequena falha no script - Help me!!!

Aprendiz - CE
aprendiz_ce

(usa Debian)

Enviado em 12/03/2008 - 10:01h

Olá Pelo,

O script funciona 99% o único problema mesmo é com essas linhas aí, pois como são arquivos desnessarios, ficam INCHANDO o arquivos de BACKUP.

Obrigado.


6. Re: Pequena falha no script - Help me!!!

Aprendiz - CE
aprendiz_ce

(usa Debian)

Enviado em 12/03/2008 - 10:05h

Olá grj_rj,

O script está "777" e roda pelo contab. OK? Só deu pra ver o seguinte erro:

/etc/./backupgeral: linha 5: /bin/rm: lista de argumentos muito longa

O referido script funciona 99%, só não faz as referidas linhas mostradas no inicio do meu tópico.

Grato.


7. Re: Pequena falha no script - Help me!!!

Edvaldo Silva de Almeida Júnior
EdDeAlmeida

(usa Debian)

Enviado em 12/03/2008 - 10:19h

Sei que não é essa a causa do seu problema, mas gostaria de lembrar que 777 é um exagero e perigoso.

Assim qualquer usuário do seu sistema pode executar esse script. E, o que ainda é pior, pode acrescentar código nele antes de executar, sabe-se lá para quê.




8. Re: Pequena falha no script - Help me!!!

Aprendiz - CE
aprendiz_ce

(usa Debian)

Enviado em 12/03/2008 - 10:26h

edlonewolf,

Beleza!

Obrigado pela a sua preocupação, mas o referido script fica no SERVIDOR e só eu que "mexo" no mesmo.

Grato.




9. Re: Pequena falha no script - Help me!!!

Edvaldo Silva de Almeida Júnior
EdDeAlmeida

(usa Debian)

Enviado em 12/03/2008 - 10:26h

Lista de parâmetros muito longa!

O shell tem um tamanho limite para a linha de comando. Na hora da execução o seu *.dbf, por exemplo, é substituído por todos os nomes de arquivos que atendem essa condição.

Se um desses tipos de arquivos tiver muitos representantes no diretório, ou se os nomes dos arquivos forem muito grande, ou as duas coisas, vai havar uma linha de comando muito grande, além do limite que o shell pode processar.

Nesse caso, sugiro que você "divida" em fatias o comando, tipo:

rm -f /caminho/para/arquivos/a*.dbf
rm -f /caminho/para/arquivos/b*.dbf
.
.
.

ou algo assim, de forma que a linha de comando não fique tão grande para nenhum tipo.

Outra coisa: Para remover arquivos você não precisa do parâmetro "r" na sua linha de comando. Esse parâmetro é para remover recurvisamente, ou seja, entrando nos diretórios abaixo daquele que está sendo removido. Como cada uma das suas linhas remove apenas arquivos, e não subdiretórios, o "r" pode ser retirado delas sem prejuízo para o funcionamento do script.



10. Re: Pequena falha no script - Help me!!!

Aprendiz - CE
aprendiz_ce

(usa Debian)

Enviado em 12/03/2008 - 10:29h

Caros colegas,

percebi um coisa que antes não havia notado. O erro só ocorre para os arquivos que são criados como o nome em maisculo. Tentei move-los e convertendo para minusculo e o mesmo erro ocorre "...lista de argumentos muito longa...".

Obrigado.


11. Re: Pequena falha no script - Help me!!!

Sérgio Abrantes Junior
pelo

(usa Debian)

Enviado em 12/03/2008 - 10:38h

Trankilow,

Simulei aqui e não deu nenhum erro tanto em maiúsculo quanto em minúsculo.
Já tentasse fazer o que eu tinha sugerido de copiar todo o código e criar outro script pra testar?
OBS: Fazer isso no próprio linux.

Sérgio Abrantes
[]'s


12. Re: Pequena falha no script - Help me!!!

Aprendiz - CE
aprendiz_ce

(usa Debian)

Enviado em 12/03/2008 - 10:38h

Olá edlonewolf,

Realmente você tem razão quanto ao "-r", vou resolver isso o quanto antes.

Agora sobre o meu problema em especifico... Percebi que o problema só ocorre para os arquivos criados em MAIUSCULO, pois os criados em minusculo funciona certinho. Realmente esse arquivos são criados por divertos usuarios, de diversos grupos, mas todos são criados como "777" e o nome de todos são atribuidos de forma RANDONICA. Sendo assim vou ter criar uma linha no meu script para o ALFABETO inteiro, ou não?

Muitissímo obrigado pela sua atenção e aguardo qualquer comentário.





01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts