+ Responder ao Tópico



  1. #1

    Padrão Script Backup so nao funciona pelo cron

    Camadas

    Tenho um script de backup das estacoes windows que roda no linux durante a noite. Este script nao consegue montar compartilhamentos do windows quando executada pelo cron, mas quando me logo no servidor como root e executo o script ele funciona 100%.
    O que pode ser?

    Laercio
    *********cron***********
    # m h dom mon dow user command
    00 22 * * 2,3 root /usr/local/bin/backup-estacao
    *********parte do script que nao funciona ***************
    ***************************************************
    MONTA="/mnt/backup/"
    i="MICRO01"
    if mount -t smbfs -o username=guest,password=guest //$i/E $MONTA;then
    echo " backup-estacao montou E" >> /tmp/backup-estacao.txt
    else
    if mount -t smbfs -o username=guest,password=guest //$i/D $MONTA;then
    echo " backup-estacao montou D" >> /tmp/backup-estacao.txt
    else
    if mount -t smbfs -o username=guest,password=guest //$i/C $MONTA;then
    echo " backup-estacao montou C" >> /tmp/backup-estacao.txt
    else
    echo " backup-estacao nao montou" >> /
    fi
    fi
    fi

  2. #2

    Padrão Script Backup so nao funciona pelo cron

    Pelo que eu entendi, você vai copiar o disco E ou D ou C, dependendo de qual vai estar disponível ???
    Qual a mensagem de erro que ele dá ??? backup-estacao nao montou ???
    Esse MICRO01 é um servidor ??? Ele está ligado e na rede nesses horário ???

  3. #3

    Padrão Script Backup so nao funciona pelo cron

    Marcio


    Pelo que eu entendi, você vai copiar o disco E ou D ou C, dependendo de qual vai estar disponível ???

    Exatamente

    Qual a mensagem de erro que ele dá ??? backup-estacao nao montou ???

    Exatemente . Como o mount esta num if nao sei exatamente qual mensagem de erro que da. Teria como melhorar isto?

    Esse MICRO01 é um servidor ??? Ele está ligado e na rede nesses horário ???
    Este micro01 é uma estacao da rede e tem Windows 98 ou XP. Sobre o horario o script completo tem o comando findsmb que me lista as maquinas ligadas. Nos dias de backup após as 22:00 me logo no servidor e executo manulamente o script e ele faz o backup corretamente.

  4. #4

    Padrão Script Backup so nao funciona pelo cron

    Continuo sem solucao.
    Alguem pode me ajudar?


    Laercio

  5. #5
    fabricio_
    Visitante

    Padrão Script Backup so nao funciona pelo cron

    vc colocou na cron como root ?
    outra , vc opde mandar a saida de cada comando para o log , para saber oq esta acontecendo
    ou mesmo executar o script inteiro mandando a saida para o log

  6. #6

    Padrão Script Backup so nao funciona pelo cron

    Posta o arquivo cron pra darmos uma olhada !!

    mtec

  7. #7

    Padrão Script Backup so nao funciona pelo cron

    no script tenta por o path completo do mount, pode ser isso.

    falows

  8. #8

    Padrão Script Backup so nao funciona pelo cron

    Ruyneto
    Vou colocar o caminho completo do mout para ver se resolve.

    ------------------------------------------------------------------------------
    fabricio

    Meu script esta na mensagem anterior e voce pode ver que coloco a saida em um arquivo temporario, onde nao aparecem erros.
    Mas quando executo manualmente a rotina funciona, apesar de algumas mensagens de warning em relacao ao dhcp que nao entendo:
    params.c:Parameter() - Ignoring badly formed line in configuration file: subnet 192.168.0.0 netmask 255.255.255.0 { params.c:Parameter() - Ignoring badly formed line in configuration file: range 192.168.0.2 192.168.0.254; params.c:Parameter() - Ignoring badly formed line in configuration file: option routers 192.168.0.1; params.c:Parameter() - Ignoring badly formed line in configuration file: option domain-name "kleber.net.br"; params.c:Parameter() - Ignoring badly formed line in configuration file: option domain-name-servers 192.168.0.1; params.c:Parameter() - Ignoring badly formed line in configuration file: option broadcast-address 192.168.0.255; params.c:Parameter() - Ignoring badly formed line in configuration file: default-lease-time 600; params.c:Parameter() - Ignoring badly formed line in configuration file: max-lease-time 7200; params.c:Parameter() - Ignoring badly formed line in configuration file: }

    --------------------------------------------------------------------------------
    mtec

    Segue meu arquivo /etc/crontab sendo que o script que da problema é o backup-estacao:

    SHELL=/bin/sh
    PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

    # m h dom mon dow user command
    00 * * * * root webalizer -q
    30 * * * * root sarg
    00 00 1 * * root find /var/www/squid-reports/ -name "*.*" -type f -mtime +90 -exec rm -rf {} \;
    00,05,10,15,20,25,30,35,40,45,55 * * * * root mrtg /etc/mrtg.cfg
    30 20 * * * root /usr/local/bin/backup-diario
    00 23 * * 5 root /usr/local/bin/backup-semanal
    00 23 1 * 6 root /usr/local/bin/backup-mensal
    00 22 * * 1,2,3,4,5 root /usr/local/bin/backup-estacao
    00 * * * * root /usr/local/bin/logiptables
    00 00 1 * * root find /var/www/wflogs/ -name "*.*" -type f -mtime +90 -exec rm -rf {} \;
    17 * * * * root run-parts --report /etc/cron.hourly
    25 6 * * * root test -x /usr/sbin/anacron || run-parts --report /etc/cron.daily
    47 6 * * 7 root test -x /usr/sbin/anacron || run-parts --report /etc/cron.weekly
    52 6 1 * * root test -x /usr/sbin/anacron || run-parts --report /etc/cron.monthly


    Obrigado a todos.

    Laercio

  9. #9
    fabricio_
    Visitante

    Padrão Script Backup so nao funciona pelo cron

    vamos la!

    seu script
    Código :
    MONTA="/mnt/backup/"
    i="MICRO01"
    if mount -t smbfs -o username=guest,password=guest //$i/E $MONTA;then
    # Voce jogando a saida do eco para a estacao .
    echo " backup-estacao montou E" >> /tmp/backup-estacao.txt
    else
    if mount -t smbfs -o username=guest,password=guest //$i/D $MONTA;then
    # Voce jogando a saida do eco para a estacao .
    echo " backup-estacao montou D" >> /tmp/backup-estacao.txt
    else
    if mount -t smbfs -o username=guest,password=guest //$i/C $MONTA;then
    # Voce jogando a saida do eco para a estacao .
    echo " backup-estacao montou C" >> /tmp/backup-estacao.txt
    else
    echo " backup-estacao nao montou" >> /
    fi
    fi
    fi
    Voce joga 3 echos pro 'log' , nao encherguei vc jogando a saida do mount pro log , entao impossivel que vc veja os erros

    meu teste pra vc
    Código :
    MONTA="/mnt/backup/"
    i="MICRO01"
    log="/tmp/backup-estacao.txt"
     
    for mount in E D C ; do
       mount -t smbfs -o username=guest,password=guest //$i/$mount $MONTA >> $log || continue
       echo " backup-estacao montou $mount" >> $log
       return 0
    done
       echo " Nao foi possivel montar nenhuma unidade" >>$log

    veja se funciona , tente tb executar como bash -x nome_do_script.sh

  10. #10

    Padrão Script Backup so nao funciona pelo cron

    Citação Postado originalmente por laerciok
    Ruyneto
    Vou colocar o caminho completo do mout para ver se resolve.

    ------------------------------------------------------------------------------
    fabricio

    Meu script esta na mensagem anterior e voce pode ver que coloco a saida em um arquivo temporario, onde nao aparecem erros.
    Mas quando executo manualmente a rotina funciona, apesar de algumas mensagens de warning em relacao ao dhcp que nao entendo:
    params.c:Parameter() - Ignoring badly formed line in configuration file: subnet 192.168.0.0 netmask 255.255.255.0 { params.c:Parameter() - Ignoring badly formed line in configuration file: range 192.168.0.2 192.168.0.254; params.c:Parameter() - Ignoring badly formed line in configuration file: option routers 192.168.0.1; params.c:Parameter() - Ignoring badly formed line in configuration file: option domain-name "kleber.net.br"; params.c:Parameter() - Ignoring badly formed line in configuration file: option domain-name-servers 192.168.0.1; params.c:Parameter() - Ignoring badly formed line in configuration file: option broadcast-address 192.168.0.255; params.c:Parameter() - Ignoring badly formed line in configuration file: default-lease-time 600; params.c:Parameter() - Ignoring badly formed line in configuration file: max-lease-time 7200; params.c:Parameter() - Ignoring badly formed line in configuration file: }

    --------------------------------------------------------------------------------
    mtec

    Segue meu arquivo /etc/crontab sendo que o script que da problema é o backup-estacao:

    SHELL=/bin/sh
    PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

    # m h dom mon dow user command
    00 * * * * root webalizer -q
    30 * * * * root sarg
    00 00 1 * * root find /var/www/squid-reports/ -name "*.*" -type f -mtime +90 -exec rm -rf {} \;
    00,05,10,15,20,25,30,35,40,45,55 * * * * root mrtg /etc/mrtg.cfg
    30 20 * * * root /usr/local/bin/backup-diario
    00 23 * * 5 root /usr/local/bin/backup-semanal
    00 23 1 * 6 root /usr/local/bin/backup-mensal
    00 22 * * 1,2,3,4,5 root /usr/local/bin/backup-estacao
    00 * * * * root /usr/local/bin/logiptables
    00 00 1 * * root find /var/www/wflogs/ -name "*.*" -type f -mtime +90 -exec rm -rf {} \;
    17 * * * * root run-parts --report /etc/cron.hourly
    25 6 * * * root test -x /usr/sbin/anacron || run-parts --report /etc/cron.daily
    47 6 * * 7 root test -x /usr/sbin/anacron || run-parts --report /etc/cron.weekly
    52 6 1 * * root test -x /usr/sbin/anacron || run-parts --report /etc/cron.monthly


    Obrigado a todos.

    Laercio
    Tente incluindo o script dentro dos diretorios padronizados do sistema. Tipo em /etc/cron.daily ou /etc/cron.weekly !!

    Até !!

  11. #11

    Padrão Script Backup so nao funciona pelo cron

    mtec

    Parece que com a inclusao deste "for" para fazer a montagem funcionou. Digo parece porque executei manualmente e depois deixei executar pelo cron. Vamos ver se hoje a noite ele executa normalmente.
    A unica mudança que fiz no teu comando foi trocar o "returno 0" por "break", pois estava com mensagem dizendo que return so poderia ser usado em funcao ou quando script chamado por outro script.
    Se tudo der certo hoje posso concluir que o erro acontecia porque o mount estava dentro do iF?
    Obrigado a todos.

    Laercio

  12. #12
    fabricio_
    Visitante

    Padrão Script Backup so nao funciona pelo cron

    Citação Postado originalmente por laerciok
    mtec

    Parece que com a inclusao deste "for" para fazer a montagem funcionou. Digo parece porque executei manualmente e depois deixei executar pelo cron. Vamos ver se hoje a noite ele executa normalmente.
    A unica mudança que fiz no teu comando foi trocar o "returno 0" por "break", pois estava com mensagem dizendo que return so poderia ser usado em funcao ou quando script chamado por outro script.
    Se tudo der certo hoje posso concluir que o erro acontecia porque o mount estava dentro do iF?
    Obrigado a todos.

    Laercio
    opa , troque o reak por um exit 0
    bom nao da pra chegar a essa conclusao ... teria que analizar a saida dos mounts!
    abraco!