Autor Tópico: Crontab não executa ShellScript de backup  (Lida 12472 vezes)

Offline fino

  • Usuário Ubuntu
  • *
  • Mensagens: 22
    • Ver perfil
Crontab não executa ShellScript de backup
« Online: 30 de MAR?O de 2007, 21:07 »
Pessoal,

Estou com problemas no Crontab do UBUNTU 6.10, agendei para ele fazer o script de Backup e não executa, mais se eu executar o shellscript na mão funciona certinho.
Pior de tudo não retorna erro nenhum, nos logs.

Se alguém pode ajudar !!!

Fino
Fino

Offline clcampos

  • Administrador
  • Usuário Ubuntu
  • *****
  • Mensagens: 10.790
  • .:: User Linux #439596 ::.
    • Ver perfil
Re: Crontab não executa ShellScript de backup
« Resposta #1 Online: 30 de MAR?O de 2007, 23:01 »
Rode seu shell em batch e veja se ele vai executar sem problemas.

De qualquer forma, tentando adiantar um provável problema para a rotina não rodar usando-se o cron, mas rodar normalmente... vou dar um chute aqui e passar um dos possíveis problemas. O tratamento de variáveis quando se executa um shell script é diferente de se rodar o shell direto no prompt (ao menos era assim no UNIX, e tenho feito da mesma forma e não tem dado problema). Talvez seja isto, então com o teste você tira a dúvida.

De qualquer forma, até onde sei (na versão do UNIX que eu usava até 1999), as variáveis que devem ser compostas durante a execução devem ser precedidas de uma "\".

Tipo assim, se você precisa de uma variável com a data, e ela não vai mudar, ou depender de outra coisa basta colocar $DATA (por exemplo).

Já se você esta compondo uma variável com os dados de outra... vou exemplificar:

Código: [Selecionar]
SALARIO=`expr $BRUTO - $DESC`
Você deve compor a variável assim:

Código: [Selecionar]
SALARIO=\`expr \$BRUTO - \$DESC\`
Isto porque senão, assim que o shell começa a ser executado (em batch) ele pega todas as variáveis sem a "\" e já a substitui pelos seus valores naquele momento.

Portanto uma composição de DATA (exemplo de novo) não teria problema pq a informação já viria do sistema, mas uma formula como a de cima teria as variáveis $BRUTO e $LIQ ainda não preenchidas, o que poderia causar um erro....

Olha, desculpe se não consegui explicar direito e se me enrolei,  me complico com as palavras um pouco, e também me desculpe se no Linux não for assim, pois como te disse aprendi a mexer com shell em 1989, e era no UNIX.

Espero que seu problema seja resolvido, caso contrário tentamos de novo... quem sabe não é algo simples e o cron simplesmente não "startou" a rotina.

« Última modificação: 30 de MAR?O de 2007, 23:07 por clcampos »
Cristiano/Timóteo - MG
.: Como Fazer Perguntas de Forma Inteligente :.                
Com dúvida? pesquise!

Offline zmangabeira

  • Usuário Ubuntu
  • *
  • Mensagens: 26
    • Ver perfil
Re: Crontab não executa ShellScript de backup
« Resposta #2 Online: 05 de Abril de 2007, 11:05 »

 Olá, aproveito a dúvida anterior pra reiterar que comigo ocorre a mesma coisa. to tentando um script simples de backup que funciona quando eu executo na linha de comando, como usuário normal do ubuntu edgy

O curioso é que quando adiciono ao crontab (crontab -e)

Ele também executa, mas para religiosamente quando ating 272,6 MB. Já conferi que o arquivo tem mais de 750 MB. Tanto que quando executo sem o cron, ele atinge esse valor.

segui a dica da variável que o amigo disse, mas o problema continua. É realmente curioso, porque ele para na metade do caminho.

Já tentei como root também e acontece a mesma coisa.

A pasta que estou fazendo backup tem permissão (mas acho que esse não é o problema, pois consigo fazer o backup total sem o cron, usando usuário normal do ubuntu)

Se alguém puder me ajudar, ou demonstrar algum vacilo de principiante que estou cometendo, agradeço:

SCRIPT:

DATA=`date +%Y-%m-%d-%H.%M`
  cd home/andre/
  tar -zcvf backupdocumentos-"$DATA".tar.gz /media/sda1/'Documents and Settings'/andre/'Meus documentos'

crontab:

andre@andre:~$ crontab -l
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# m h  dom mon dow   command
56 10 * * 4 /home/andre/backupdocumentos.sh



Offline rafael###

  • Usuário Ubuntu
  • *
  • Mensagens: 154
    • Ver perfil
Re: Crontab não executa ShellScript de backup
« Resposta #3 Online: 05 de Abril de 2007, 12:15 »
Gente não sei c tem a ver mas eu a um tempo atrás tive este problema também, hoje em dia no crontab eu sempre redireciono a saída do script pra algum terminal, exemplo:

Citar
root@zion:/home/rafael# cat /etc/crontab

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

# m h dom mon dow user  command
*/1 * * * *     rafael  /home/rafael/wv.sh
#0  4   * * *   root    /home/rafael/despertador.sh >> /dev/pts/3
#0 3    * * *   root    halt

Agora tem scripts que não preciso redirecionar a saída que vai normal que é o caso do wv.sh como vocês podem ver acima! Não sei c tem algo a ver mas não custa tentar ajudar!!

Espero que ajude flwwss

*lembrando que está é a "agenda" do sistema diferente da agenda do usuário (crontab -e)
« Última modificação: 05 de Abril de 2007, 12:16 por rafael### »



GNU/Linux e SL um novo estilo de vida!!!!!!!!!!

Offline zmangabeira

  • Usuário Ubuntu
  • *
  • Mensagens: 26
    • Ver perfil
Re: Crontab não executa ShellScript de backup
« Resposta #4 Online: 06 de Abril de 2007, 08:47 »
Matou a pau amigo.

Era isso mesmo, quando redireciono pra algum terminal, vejo o script rodar por inteiro. E ele não para. Vai até o final, concluindo a compactação. (diferentemente da outra forma que só ia até a metade).

OBRIGADO pela ajuda.

grande abraço.


Offline rafael###

  • Usuário Ubuntu
  • *
  • Mensagens: 154
    • Ver perfil
Re: Crontab não executa ShellScript de backup
« Resposta #5 Online: 09 de Abril de 2007, 11:11 »
Blz cara!! Sempre que precisar estamos ae!!  ;)



GNU/Linux e SL um novo estilo de vida!!!!!!!!!!

Offline fino

  • Usuário Ubuntu
  • *
  • Mensagens: 22
    • Ver perfil
Re: Crontab não executa ShellScript de backup
« Resposta #6 Online: 09 de Abril de 2007, 20:59 »
Rafael,

 Fiz como tu disse, direcionei para um terminal e funfou blzinha !!!

Valeu !!

 :D
Fino

fabioandre.bc

  • Visitante
Re: Crontab não executa ShellScript de backup
« Resposta #7 Online: 17 de Agosto de 2007, 14:13 »
Gente não sei c tem a ver mas eu a um tempo atrás tive este problema também, hoje em dia no crontab eu sempre redireciono a saída do script pra algum terminal, exemplo:

Citar
root@zion:/home/rafael# cat /etc/crontab

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

# m h dom mon dow user  command
*/1 * * * *     rafael  /home/rafael/wv.sh
#0  4   * * *   root    /home/rafael/despertador.sh >> /dev/pts/3
#0 3    * * *   root    halt



Realmente isso funciona.. mas no caso do ubuntu /dev/pts/x soh eh criado depois que vc loga...
tem alguma maneira de fazer isso funcionar ? sem que ter que deixar o servidor logado para ele criar o /dev/pts/0 Ex



fabioandre.bc

  • Visitante
Re: Crontab não executa ShellScript de backup
« Resposta #8 Online: 20 de Agosto de 2007, 10:21 »
para quem tiver esse problema.. do /dev/pts/x
podem usar o terminal "fisico" do ubuntu ae a saida ficaria como /dev/tty1
funcionou normal.. mas o meu problema eh com outro script que usa rsync

esse tah literalmente de rosca.... se alguem quiser ajudar fico grato

Offline fcandrade

  • Usuário Ubuntu
  • *
  • Mensagens: 9
    • Ver perfil
Re: Crontab não executa ShellScript de backup
« Resposta #9 Online: 27 de Outubro de 2008, 15:47 »
amigo funcionou que foi uma BELEZA
crontab -e
00 04 * * * /home/copias/diaria >> /dev/tty1

MUITO OBRIGADO MESMO