O cron é um recurso presente no Linux que permite a execução automática de tarefas em datas e horários pré-determinados. O objetivo deste texto é mostrar como utilizá-lo.
O primeiro passo é abrir o crontab. Para isso, você pode
usar editores de textos como vi e o emacs. Também é
possível digitar o comando "crontab -e" para editar o arquivo
exclusivo de seu usuário. Neste caso, a edição é feita como se
você estivesse usando o vi.
O crontab tem o seguinte formato:
[minutos] [horas] [dias do mês] [mês] [dias da semana] [usuário] [comando]
O preenchimento de cada campo é feito da seguinte maneira:
Minutos: informe números de 0 a 59;
Horas: informe números de 0 a 23;
Dias do mês: informe números de 1 a 31;
Mês: informe números de 1 a 12;
Dias da semana: informe números de 0 a 7;
Usuário: é o usuário que vai executar o comando (não é necessário especificá-lo se o arquivo do próprio usuário for usado);
Comando: a tarefa que deve ser executada.
Repare que a ordem desses valores indica o nome correspondente
do campo. Por exemplo, no campo mês, 1 a 12 quer dizer de
"Janeiro a Dezembro". No caso de dias da semana, 0 a 6 quer
dizer de "Domingo a Sábado". Note que o número 7 também pode ser
usado. Neste caso, assim como o número 0, o 7 equivale ao dia
de "Domingo".
No lugar desses valores, você pode informar * (asterisco) para
especificar uma execução constante. Por exemplo, se o campo dias
do mês conter *, o comando relacionado será executado todos os dias.
Você também pode informar intervalos no preenchimento, separando os
números de início e fim através de - (hífen). Por exemplo, se no
campo horas for informado 2-5, o comando relacionado será executado
às 2, 3, 4 e 5 horas. E se o comando tiver que ser executado às 2
horas, entre 15 e 18 horas e às 22 horas? Basta informar 2,15-18,22. Nestes casos, você separa os parâmetros por vírgula.
Vamos a um exemplo:
# tarefa 1
30 22 2,10 * * echo "Porque nós amamos a liberdade"
Neste exemplo, a frase "Porque nós amamos a liberdade" é exibida
às 22 horas e 30 minutos, nos dias 2 e 10, em todos os meses e
em todos os dias da semana. Repare na linha "#tarefa 1". Trata-se
de um comentário. Digite # e tudo o que for digitado na linha não
será considerado pelo cron. É um recurso útil para inserir
descrições quando se tem várias tarefas a serem executadas.
Finalizando
Os recursos do cron não se limitam aos mostrados anteriormente.
Você pode ainda agendar tarefas mais complexas e poupar muito
trabalho nessas execuções automáticas. É possível, por exemplo,
configurar o cron para emitir-lhe um aviso de quando uma tarefa
é executada. A dica para lidar com o cron é testá-lo.
Experimente-o bastante. Mesmo que você seja apenas um usuário
doméstico, certamente encontrará alguma utilidade para o cron.
[6] Comentário enviado por lero em 31/01/2007 - 18:17h
Pessoal podem me ajudar?
* 1 * * * /usr/sbin/sarg.daily
* 1 * * 7 /usr/sbin/sarg.weekly
* 1 1 * * /usr/sbin/sarg.monthly
sendo q daily eu acho q configureipra todos os dias a 1hr da manha
weekly eu acho q configurei pra todos os domingo 1hr da manhã
monthly eu acho q configurei pra todo dia 1º 1hr da manhã
[14] Comentário enviado por wryel em 08/07/2009 - 11:42h
excelente!
fica a minha pequena, duvida, eu peguei um script com * no minuto, o que significa ? deu-se a entender que é a todo minuto o.O [embora eu acredito que não seja haha, mas não tenho tanta certeza assim :P]
[18] Comentário enviado por Antonio_Bispo.Jr em 10/06/2011 - 01:01h
Gostei muito do atrigo, mas não conseguitirar minha duvida ainda, se eu tiver que agendar uma tarefa, tipo /bin/acertar_hora no periodo dos dias entre 16/10/2011 ao dia 19/02/2012 como eu faria?
[21] Comentário enviado por demissonsantos em 31/08/2014 - 23:55h
Olá
Eu fiz passo a passo como no artigo porém sem sucesso, descobrir o cron quando fui instalar o DDNS no linux Ubuntu, onde o tutorial pediu para adicionar a seguinte linha no crontab */1 * * * * /usr/local/sbin/ddns.sh, em seguida digitar no terminal o comando crontab -e mas da a seguinte mensagem - demisson@servidor:~$ crontab -e no crontab for demisson - using an empty one
888 daí não sei o que fazer.. podem me ajudar ?