Página 1 de 2 12 ÚltimoÚltimo
+ Responder ao Tópico



  1. #1

    Padrão Script com um pequena falha - Help me!

    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. #2

  3. #3

    Padrão

    Citação Postado originalmente por tianguapontocom Ver Post
    Ele mostra algum erro ou msg? que distro ta usando?
    Ola,

    O script roda sem apresentar erro algum. A referida linha de comando se for executado no shell, funciona. Estou utilizando o Debian Etch.

    Obrigado e aguardo qualquer ajuda.

  4. #4
    ccmalarm
    Visitante

    Wink verifique o seguinte!

    O script esta localizado onde?
    Esta sendo executado como qual usuario?
    Quais as permições do script?

    enta fazer o seguite teste:



    chmod 755 "nomedoscript"
    depois roda ele
    se nao funcionar faz assim:

    entra como root e roda o script


    espero q isso resolva






    Citação Postado originalmente por aprendiz_ce Ver Post
    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.

  5. #5

    Padrão

    Qual usuário roda o script?
    Talvez a permissão do script esteja correta, mas as permissões dos arquivos/diretórios que ele está tentando apagar, não estejam.

  6. #6
    ccmalarm
    Visitante

    Wink amigo acho q vc nao leu meu comentario acima!

    pois esta dizendo a mesma coisa q eu ja disse....




    Citação Postado originalmente por ph0enix Ver Post
    Qual usuário roda o script?
    Talvez a permissão do script esteja correta, mas as permissões dos arquivos/diretórios que ele está tentando apagar, não estejam.

  7. #7

    Padrão

    Ola aprendiz_ce...



    Alguns pontos que voce deve observar:

    1) O seu script deve ser executável... portanto acredito que voce já tenha se atentado em observar que o atributo X (de execucao) está ativado.

    Caso vc queira que o seu script seja executavel (acessivel e executavel por todos)... execute o comando:

    chmod 755 <nome arquivo que contem script>

    por exemplo:

    chmod 755 removetudo.sh

    ===============================

    2) Todos os arquivos possuem "donos". Portanto... para vc apagar... remover tudo como vc pretende fazer com seu script... o usuario que vai executar o script deverá ter "poderes" para deletar esses arquivos.

    SE vc mesmo for o prorpio dono deles... tranquilo.
    Caso vc nao seja o dono desses arquivos... entao... somente o dono ou alguem com super-poderes poderá obter sucesso.

    NOTE: Talvez voce possa ter direito de execucao... (de execucao do script)... mas durante a execucao... vc nao tem sucesso na execucao de cada linha do seu script.

    Caso vc nao seja o dono... execute o script assim:



    sudo removetudo.sh

    e depois digite a senha do root.



    Espero te esclarecido e ajudado voce!




    Abraços

  8. #8
    ccmalarm
    Visitante

    Smile As Funcoes Q Seu Microtic Tem So Existem Nele

    PQ NAO EXISTEM EM CANTO ALGUM...
    POIS INVENTARAM OUTROS NOMES PAR ALGO COMUM...


    EX:

    CACHEFULL KKKK SERIA UM SQUID BEM CONFIGURADO COM BOAS REGRAS NO IPTABLES...

    JA SUPER HYPER PLUG N PLAY REDE É A MAIOR IDIOTICE...

    JA QUE MILHOES DE ROTEADORES WIRELESS NAO USAM ISSO NAO COM ESSE NOME... JA QUE ESSE NOME BONITO AI É PARA ENGANAR IDIOTA COMO VC.. .PENA Q O OUTRO TOPICO ESTA TRANCADO...

    E SENTA E RODA...PQ TEM, Q SER MUITO MUITO OTARIO PARA COMPRAR UM LIXO BUGADO QUE NAO PASSA DE UMA DISTRO LINUX MUITO MUITO BIXADA QUE INCLUSIVE INFRINGE A LICENÇA "GPL"
    ENTAO NAO EXISTE MIKROTIK ORIGINAL NEM PIRATA
    PQ UM PRODUTO QUE É BASEADO NA QUEBRA DE UMA LICENÇA GPL POR SI SO É UM CRIME!!!

    CLICADOR DE MOUSE DO KCT!!! VAI TOMAR NO CU





    Citação Postado originalmente por mson77 Ver Post
    Ola aprendiz_ce...



    Alguns pontos que voce deve observar:

    1) O seu script deve ser executável... portanto acredito que voce já tenha se atentado em observar que o atributo X (de execucao) está ativado.

    Caso vc queira que o seu script seja executavel (acessivel e executavel por todos)... execute o comando:

    chmod 755 <nome arquivo que contem script>

    por exemplo:

    chmod 755 removetudo.sh

    ===============================

    2) Todos os arquivos possuem "donos". Portanto... para vc apagar... remover tudo como vc pretende fazer com seu script... o usuario que vai executar o script deverá ter "poderes" para deletar esses arquivos.

    SE vc mesmo for o prorpio dono deles... tranquilo.
    Caso vc nao seja o dono desses arquivos... entao... somente o dono ou alguem com super-poderes poderá obter sucesso.

    NOTE: Talvez voce possa ter direito de execucao... (de execucao do script)... mas durante a execucao... vc nao tem sucesso na execucao de cada linha do seu script.

    Caso vc nao seja o dono... execute o script assim:



    sudo removetudo.sh

    e depois digite a senha do root.



    Espero te esclarecido e ajudado voce!




    Abraços

  9. #9

    Padrão

    Ôpa...


    Não estou entendendo o português desse "ccmalarm".




    Mas vejam senhores a condecoração que esse mesmo "ccmalarm" recebeu de um OUTRO FÓRUM.
    Confira na URL abaixo... ULTIMA MENSAGEM DO MODERADOR DESSE FORUM.

    Dizinha Linux :: Exibir tópico - so mais uma coisa o desenvolvedor original da dizinha é...


    Acredito que o português dele é chulo... e se vive no Brasil (Ceará) e não sabe usar a lingua pátria corretamente... quem dirá OUTRAS linguas estrangeiras.



    Nem vou citar a postura dele aqui nos tópicos desse NOSSO FÓRUM... mas dá para perceber que contribuição positiva ficou distante... embora falta de respeito, falta de coleguismo... sejam os PREDICADOS MAIS DOMINANTES E VISÍVEIS.


    Fica na PAZ... alimente o espírito que carece de sociabilidade.




    Abraços,

  10. #10

    Padrão

    Pessoal, vamos manter o escopo do tópico.

  11. #11

  12. #12

    Padrão

    Citação Postado originalmente por ccmalarm Ver Post
    O script esta localizado onde?
    Esta sendo executado como qual usuario?
    Quais as permições do script?

    enta fazer o seguite teste:



    chmod 755 "nomedoscript"
    depois roda ele
    se nao funcionar faz assim:

    entra como root e roda o script


    espero q isso resolva
    Beleza!!!

    Mas o script está no "/etc" e as permissões estão como 777 e o mesmo é executado pelo CRONTAB.

    Obrigado pela sua atenção.

  13. #13

    Padrão

    Ola...




    se voce colocou no CRONTAB... coloque o caminho completo:


    * 3 * * * /etc/removetudo.sh

    (executa todo dia as 03:00AM)


    E... deixe apenas como 750... ninguem precisa ficar vendo esse script... que nao seja voce mesmo.





    Abracos,

  14. #14

    Padrão

    Citação Postado originalmente por ccmalarm Ver Post
    O script esta localizado onde?
    Esta sendo executado como qual usuario?
    Quais as permições do script?

    enta fazer o seguite teste:



    chmod 755 "nomedoscript"
    depois roda ele
    se nao funcionar faz assim:

    entra como root e roda o script


    espero q isso resolva
    Olá,

    O script está no "/etc", as permissões estão 777 e a diretorio/arquivos também estão como 777.

    Obrigado pela sua atenção.

  15. #15

    Padrão

    Citação Postado originalmente por mson77 Ver Post
    Ola...





    se voce colocou no CRONTAB... coloque o caminho completo:


    * 3 * * * /etc/removetudo.sh

    (executa todo dia as 03:00AM)


    E... deixe apenas como 750... ninguem precisa ficar vendo esse script... que nao seja voce mesmo.





    Abracos,
    Olá,

    É como já falei antes: "o mesmo funciona 100% em uma máquina e 99% em outra..." os sistema são semelhantes em tudo, o mesmo funciona, só não executa o primeiro bloco de comandos. Por isso estou ENCUCADO, já que o referido comando funciona no shell (na mão).

    Grato pela sua atenção.

  16. #16

    Padrão

    Ola...



    entao por favor...

    1) qual é o sistema1;
    2) qual é o sistema2;
    3) qual é o bloco que executa com sucesso;
    4) qual é o bloco que NAO executa com sucesso;


    Responda essas perguntas.




    Abracos,

  17. #17

    Padrão

    Citação Postado originalmente por mson77 Ver Post
    Ola...




    entao por favor...

    1) qual é o sistema1;
    2) qual é o sistema2;
    3) qual é o bloco que executa com sucesso;
    4) qual é o bloco que NAO executa com sucesso;


    Responda essas perguntas.




    Abracos,
    Beleza!
    1) Debian Etch r3
    2) Debian Etch r3
    3) É extenso e acho que não precisamos dele, pois o bloco que não funciona está logo no inicio do script.
    4) Veja o inicio do meu tópico.

    Grato pela sua valiosa atenção e fico no aguardo.

  18. #18

    Padrão

    Bem, como parece que você já verificou as permissões e tudo mais, lendo o tópico me lembrei de algo similar que passei, eu tinha um script que fazia copia de backups e depois apagava alguns arquivos e um tempo depois eu percebi que o script não funcionava mais da forma certa, no meu caso especifico a parte que não funcionava era quando eu manda mudar o dono com o "chown" e no dia seguinte eu via que os arquivos não tinham mudado de dono e não mostrava erro nem nada, ou seja, bem parecido com o seu problema e depois de muito quebrar a cabeça eu descobri eu o tempo que eu tinha colocado no cron para ele executa já não era mais suficiente, pois ele executava o script *ANTES* dos arquivos de backup serem criados e por isso não mudava o dono do arquivo. Parecido com o seu, não? tentou conferir se no momento da execução do script os arquivos de fato existiam?

    Espero ter ajudado.

    ate+

  19. #19

    Padrão

    Citação Postado originalmente por rmaximo Ver Post
    Bem, como parece que você já verificou as permissões e tudo mais, lendo o tópico me lembrei de algo similar que passei, eu tinha um script que fazia copia de backups e depois apagava alguns arquivos e um tempo depois eu percebi que o script não funcionava mais da forma certa, no meu caso especifico a parte que não funcionava era quando eu manda mudar o dono com o "chown" e no dia seguinte eu via que os arquivos não tinham mudado de dono e não mostrava erro nem nada, ou seja, bem parecido com o seu problema e depois de muito quebrar a cabeça eu descobri eu o tempo que eu tinha colocado no cron para ele executa já não era mais suficiente, pois ele executava o script *ANTES* dos arquivos de backup serem criados e por isso não mudava o dono do arquivo. Parecido com o seu, não? tentou conferir se no momento da execução do script os arquivos de fato existiam?


    Espero ter ajudado.

    ate+
    Olá,

    Os arquivos existem sim, é quanto que eles já estão deixando o meu backup ENORME pois os referidos arquivos são todos arquivos desnecessarios.

    Já verifiquei tudo, e não sei mais o que fazer, por isso é pedi ajuda aqui no forum.

    Grato e aguardo qualquer ajuda.

  20. #20

    Padrão

    cara..
    experimenta usar o script abaixo, altere de acordo com o caminho dos arquivos:

    Código :
    #!/bin/bash
    cd /caminho/dos/arquivos
    a="dbf DBF fpt FPT idx IDX prn PRN"
    for i in $a; do
       rm -rf *.$i;
    done


    CUIDADO ao alterar este script, pois se houver um espaço entre o "*" e o "." será apagado tudo no diretório corrente..

    scripts que envolvem o comando 'rm' são perigosos...

    para testar, você pode substituir o comando "rm" pelo "ls", quando executar o script deverá mostrar todos os arquivos com as extensões contidas na variável $a

    poste a linha do cron que executa seu script