erro em execucao de script no crontab

Iniciado por fcandrade, 30 de Julho de 2008, 07:18

tópico anterior - próximo tópico

fcandrade

Ola a todos, estou com serios problemas como ubuntu 8.04 server, eu o utilizo com o mysql, instalei tudo sem problemas, o mysql esta rodando normalmente, porem eu tenho 1 script que funciona corretamente qdo eu me logo no servidor, mas se eu o coloco no crontab ele nao executa normalmente. Acontece que o script me gera 1 arquivo hoje de 144 mb qdo estou logado, e pelo crontab ele nao nao chega a 20mb ja descompactei os 2 arquivos e tem muita diferenca.
#crontab -e
30  14  *   *   *  /home/copias/diaria

diaria
#!/bin/bash
DIA="bkdados"$(date +%d%m%Y%H%M)".tar.gz"
cd /var/lib/mysq/dadosacao
tar czvf $DIA *
mv $DIA /home/copias/$DIA

onde esta o erro, e pq do erro, se alguem puder me orientar fico grato

clcampos

fcandrade estava lendo seu tópico desde cedo e não achei nada que pudesse causar problemas.

É bom sempre que for usar uma rotina em segundo plano usar as variáveis com uma barra invertida (\), pois assim a variável só é resolvida (ou substituida) na hora em que a linha é executada, caso contrário assim que a rotina começa a ser executada as variáveis já são resolvidas (ao menos era assim enquanto eu usava Unix). Assim sua rotina ficaria assim:

Citar#!/bin/bash
DIA="bkdados"\$(date +%d%m%Y%H%M)".tar.gz"
cd /var/lib/mysq/dadosacao
tar czvf \$DIA *
mv \$DIA /home/copias/$DIA

Porém isto não faz nenhuma diferença na sua rotina, em particular, então o que me vem a mente é o seguinte... Como esta colocando a rotina no cron? Porque você pode estar com problemas de permissão.
Cristiano/Timóteo - MG
.: Como Fazer Perguntas de Forma Inteligente :.                
Com dúvida? pesquise!

fcandrade

no crontab, como usuario
# crontaba -e

00  22  0  0  0  /home/copias/diaria


gollvea

experimente:
chmod + x /home/copias/diaria

fcandrade

o script diaria esta com propriedades chmod +x
se o problema for de permissao, como eu resolvo isso ?
gostaria de uma melhor explicacao, pois usava o slackware e ainda uso em 2 outras maquinas e nao tenho esse tipo de problema.
Se o problema for permissao, porque quando estou logado o script executa normalmente sem problemas ? nao estou entendendo.

gollvea

Se voce estiver no crontab do usuário root, experimente logar em um usuário normal, e colocar o script para rodar no crontab do usuário normal. Lógico, que com as permissões no arquivo.

dudu_ubuntun

Boa tarde, tente assim:

00  22  0  0  0  root /home/copias/diaria

fcandrade

desculpe a demora, estava e ainda estou com problemas de saude. Em referencia ao que esta acontecendo, eu nao consegui resolver o problema. Tudo ocorre normal se eu estiver conectado e executar o comando " ./diaria ", porem se eu deixar que o crontab execute o procedimento ele nao executa normal. Algum dica de alguem, pode ser ate mesmo em pvt para franciscocarlos65@hotmail.com ou franciscoacao@hotmail.com, estou com prazo final para resolver esse problema, se nao conseguir resolver ate o dia 15 de Novembro vou ter que instalar outra versao Linux ( o Slackware ). Agradeco a todos pela ajuda que puderem me dar

dudu_ubuntun

bom, tive um problema semelhante, quando coloco o comando no crontab nao executa, mas se rodar a partir de um terminal funciona, resolvi de uma maneira bem louca:

1) criei um par de chaves rsa, me loguei na propria maquina na conta root, importei a chave publica e coloquei a seguinte linha no crontab:


01 01 * * *  root ssh user_q_tem_o_script@ip_da_maquina /caminho/completo/para/o/script


bom, nao nem de longe a melhor maneira, mas enfim fucnonou pra mim

abs

fcandrade

amigos funcionou da seguinte forma:
no crontab -e
00 04 * * * /home/copias/diaria >> /dev/tty1

Valeu pelas dicas de todos, fico realmente agradecido