crontab

1. crontab

Leonardo Malkes
malkes

(usa Debian)

Enviado em 04/05/2009 - 15:11h

Prezados,
Estou tendo um problema para rodar um script agendado pelo crontab.
Segue abaixo descrição:

1 - Cenário:
Distribuição Debian 5.1

2 - Script:
#!/bin/bash
/etc/init.d/stop samba

3 - Linha do crontab - testando para rodar de minuto em minuto
*/1 * * * * sh /home/scripts/stop_samba

4 - Detalhes que já foram checagos
O script esta com permissão de execução, a tarefa no cron foi agendada como root, ja testei outros agendamentos e scripts que funcionaram e por fim, se o script for executado manualmente roda perfeitamente, apenas pelo cron que não funciona.

Agradeço desde já qualquer dica.

Atensiosamente
Leo Malkes



  


2. Humm

Thierry
thierryvdb

(usa Fedora)

Enviado em 04/05/2009 - 15:39h

Pq vc quer parar o samba a cada 1 minuto ???

Não é seu comando que ta errado nâo ???
Não seria ...

/etc/init.d/smb stop
???


3. Re: crontab

Ricardo Levindo Alves de Moraes
tronbr

(usa Debian)

Enviado em 04/05/2009 - 15:53h

Boa tarde,

seu script está errado. Como o amigo ai de cima disse o correto é: "/etc/init.d/smb stop".

Dica:
Sempre que agendo uma tarefa pelo crontab -e no debian, eu coloco na última linha o caracter "#" se não ele não funciona.

Ex.:
55 17 * * 1-5 /usr/bin/backup.sh
10 8 * * * /usr/bin/acertahora.sh
*/1 * * * * faz/qualquer/coisa.sh
#

o cerquilha é o último caracter de tudo.

Agora o que tu quer fazer e meio estranho. Afinal se paro o serviço do samba neste minuto e não inicio ele novamente, não tem porque para-lo novamente no minuto seguinte.

Até.
Ricardo Levindo.
R2 Sistemas.



4. crontab

Leonardo Malkes
malkes

(usa Debian)

Enviado em 04/05/2009 - 16:30h

Pessoa, o lance de minuto em minuto é apenas para teste. O agendamento será apenas num determinado horário.

Com relação a trocar samba por smb. Aqui na minha distro não fuciona, da erro inclusive.

E o script funciona se executado manualmente sh /home/scripts/stop_samba

Agradeço a atenção e continuo na busca de uma solução

Atenciosamente
Leo Malkes


5. Re: crontab

Ricardo Levindo Alves de Moraes
tronbr

(usa Debian)

Enviado em 04/05/2009 - 17:09h

Blz então,

faz o seguinte na última linha do arquivo de agendamento coloque o "#"

pra ver se funfa!

Ex.:
55 17 * * 1-5 /usr/bin/backup.sh
10 8 * * * /usr/bin/acertahora.sh
*/1 * * * * faz/qualquer/coisa.sh
#

Ricardo Levindo
R2 Sistemas


6. crontab

Leonardo Malkes
malkes

(usa Debian)

Enviado em 04/05/2009 - 17:33h

Ricardo,

Nada feito por aqui. Já tentei de tudo e não sei porque esse danado não funciona.

Obrigado mais uma vez.

Leo Malkes


7. Re: crontab

Ricardo Levindo Alves de Moraes
tronbr

(usa Debian)

Enviado em 05/05/2009 - 08:52h

Outro script funciona com o agendamento ou apenas esse?


Ricardo Levindio
R2 Sistemas


8. problema parecido...

Perfil removido
removido

(usa Nenhuma)

Enviado em 07/06/2010 - 10:19h

Estou com esse mesmo problema, estranho que se eu colocar um ls –l /home >> /tmp/teste funciona, mas o script de backup já não funciona não...
Obs.: rodar ele manualmente funciona ok, uso o debian lenny


9. Resolvido, pelo menos para mim

Perfil removido
removido

(usa Nenhuma)

Enviado em 08/06/2010 - 15:45h

Consegui resolver o problema com o cron!

Já tinha lido em vários lugares da internet e no tambem vol que para o correto funcionamento do cron e tambem do fcron é necessário que o script em execução não tenha nenhum saída de dela, pois caso tenha uma única linha ele não ira executar o script...

No meu script continha essa linha
DIA=`date|cut -c1-3`

Essa linha você pode executar somente ela ou o script inteiro que não retornava nada a tela então fui verificando linha por linha e quando coloquei essa em comentário o script foi executado, Então o que eu precisei fazer simplesmente direcionar a saída dessa linha para qualquer lugar, já que não vou usar a saída mesmo.

Ficou desse jeito
DIA=`date|cut -c1-3`>> /tmp/temporario

Como pode ver mesmo o comando não retornando nada na tela é interessante direcionar a saída dele para um arquivo qualquer para ter certeza que não é a linha
Pronto cron funcionando e executando o script de backup!

Dica rápida, antes de falar que o cron não esta funcionando faça um teste simples
Digite: crontab –e
E adiciona essa linha

* * * * * ls –l /home >> /tmp/teste

Espere um minuto e depois acesse o arquivo teste dentro de tmp, se o arquivo estiver mostrando o conteúdo do seu diretório /home, quer dizer que o cron esta ok, e o problema é em alguma coisa do seu script, possivelmente teve ter alguma saída na tela!

Espero ter ajudado
t+







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts