ebotega 2 Denunciar post Postado Junho 10, 2012 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
Prog 183 Denunciar post Postado Junho 10, 2012 Verificou o conteúdo do arquivo /var/log/syslog ? Compartilhar este post Link para o post Compartilhar em outros sites
ebotega 2 Denunciar post Postado Junho 11, 2012 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
Prog 183 Denunciar post Postado Junho 11, 2012 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
ebotega 2 Denunciar post Postado Junho 11, 2012 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