[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [OT] Script roda via comando mas não pelo cron



Dando alguns palpites aleatórios...

Em 03/04/07, Leonardo Rosa<leo.info.deb@gmail.com> escreveu:
Olá a todos...
 Sei que não é nada voltado em específico para debian, mas se alguém puder
ajudar...
[...]
 Criei um arquivo de nome backup_diario, que está dentro da pasta root e
possui as seguintes linhas:


Sempre q vc vai fazer backup é interessante parar o serviço que está
'backupeando' p/ que vc não corra o risco de backup ficar
inconsistente0

 echo
 echo Copiando arquivos de /var/www/moodle/ para /media/sdb1/var/www/
 cp -ap /var/www/moodle/ /media/sdb1/var/www/
 echo
 echo Arquivos copiados com sucesso

Aqui não está dando uma resposta precisa - isso é um dos grandes
problemas da computação hj em dia - mensagens inúteis, que dizem algo
mas fazem outra coisa. No caso do cp, tirei isso da infopage:

  An exit status of zero indicates success, and a nonzero value
indicates failure.

Então o correto seria fazer algo como:

cp pasta1 pasta2  && echo copiado com sucesso

Mais correto ainda (essa foi boa hein hehe), seguindo os principios
unix, seria não falar nada exceto se houvesse algo p/ falar (um erro):

cp pasta1 pasta2  || echo problemas com backup

De quebra, isso já ajuda vc a saber se o backup foi completado com sucesso!
No caso, se vc não tem um programa tipo logcheck E alguém que lê os
e-mails dele, seria interessante mandar um e-mail também, p/ não ter
desculpa:

cp pasta1 pasta2  || (echo problemas com backup; comando_que_manda_e-mail; ...)

 echo
 echo Copiando arquivos de /var/www/moodledata/ para /media/sdb1/var/www/
 cp -ap /var/www/moodledata/ /media/sdb1/var/www/
 echo
 echo Arquivos copiados com sucesso
 echo

Aqui vale a mesma coisa...


 Parei o crontab e adicionei uma linha apontando para o script e ficou da
seguinte forma:

 # /etc/crontab: system-wide crontab
 # Unlike any other crontab you don't have to run the `crontab'
 # command to install the new version when you edit this file.
 # This file also has a username field, that none of the other crontabs do.

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

 # m h dom mon dow user  command
 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
 20 9    * * *   root    ./root/backup_diario
 #

Uma pergunta: p/ fazer o backup do moodle precisa ser o root??

--
Marcos



Reply to: