Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ebotega

crontab -e... /etc/crontab... Como usar?

Recommended Posts

Pessoal, como usar o crontab? Seguem alguns testes que fiz, estou usando o Ubuntu 12.04.:

 

teste 1

 

- criado o arquivo script.sh com o conteúdo: echo "Criado na data: $(date)" > /home/ubuntu/testecron/"$(date).txt" em '/home/ubuntu'

- comando: 'crontab -l', não encontrei nenhuma tarefa (ok, não tinha criado nenhuma mesmo).

- comando: 'crontab -e', incluí no final do arquivos o agendamento "*/1 * * * * root /home/ubuntu/script.sh".

- comando: 'crontab -l', aparece a tarefa agendada.

- resultado: nada do script executar, se executado "./script.sh" manualmente aí o aquivo é criado, mas via crontab a coisa não vai.

- comando: 'crontab -r'.

- comando: 'crontab -l', não encontrei nenhuma tarefa.

 

 

teste 2

 

baseado no exemplo deste link, seguiu-se:

 

- criado o arquivo script.sh com o conteúdo: echo "Criado na data: $(date)" > /home/ubuntu/testecron/"$(date).txt" em '/home/ubuntu'

- comando: 'crontab -l', não encontrei nenhuma tarefa (ok, não tinha criado nenhuma mesmo).

- comando: 'nano /etc/crontab'.

- incluí no final do arquivos o agendamento "*/1 * * * * root /home/ubuntu/script.sh".

- comando: 'crontab -l', não encontrei nenhuma tarefa (?).

- resultado: script executado e arquivo txt criado com sucesso no diretório '/home/ubuntu/testecron'

 

 

Perguntas:

- existem diferenças entre incluir o agendamento usando 'crontab -e' e '/etc/crontab'? Se sim, qual a forma correta/melhor?

- por que o 'crontab -l' não mostrou o agendamento quando fiz pelo '/etc/crontab'?

- nessetópico aqui no fórum o cara diz que pode usar um ou outro, mas por que nos testes se mostraram diferentes?

 

 

Valeu pessoal.

Compartilhar este post


Link para o post
Compartilhar em outros sites

então... eu pesquisei onde encontrar o log do crontab e cheguei nesse arquivo.

 

Ele altera normalmente quando eu utilizo o teste 2 que citei (na verdade é a única forma que funciona). Mas parece que ele altera com outros processos no sistema, notei pois fiquei acompanhando o log com 'tail -f' enquanto o agendamento rodava e entravam outras informações depois que o cron era executado.

 

É que em 95% das pesquisas que fiz encontrei o 'crontab -e' e uma ou duas sobre o '/etc/crontab', por isso questionei suas diferenças.

 

A busca continua...

 

:)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos lá, considerações:

 

Quando você esta executando o comando crontab -e, você esta usando qual usuário?

Se você deseja que a tarefa seja executada pelo usuário root, use sudo crontab -e

 

Sua linha de comando não precisa ter o usuário, apenas se você editar o arquivo crontab do sistema (/etc/crontab). Isso é exibido quando você entra no modo de edição.

 

A sintaxe da linha usando crontab -e:

*/1 * * * * /home/ubuntu/script.sh

 

A sintaxe da linha editando o crontab do sistema:

*/1 * * * * root /home/ubuntu/script.sh

 

Toda vez que um comando é executando pelo cron, uma entrada é criada no log, como a seguir:

Jun 11 09:32:01 hostname CRON[3257]: (usuario) CMD (/home/ubuntu/script.sh)

 

Caso ainda não tenha entendido alguma coisa, volte a questionar e realize seus testes.

Compartilhar este post


Link para o post
Compartilhar em outros sites

estou executando com o 'root' mesmo, desde o início loguei como root, mas a sua explicação sobre usar o crontab do usuário e do sistema me faz entender bastante coisa que parecia 'desconectada', por que aqui aparece de uma forma e lá de outra...

 

beleza cara, já deu pra entender bastante coisa para o projeto andar.

 

Valeu!!!

:thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.