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
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 ???
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.
Script Backup so nao funciona pelo cron
Continuo sem solucao.
Alguem pode me ajudar?
Laercio
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 :)
Script Backup so nao funciona pelo cron
Posta o arquivo cron pra darmos uma olhada !!
mtec
Script Backup so nao funciona pelo cron
no script tenta por o path completo do mount, pode ser isso.
falows
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
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
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é !!
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
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!