Como usar a cron e crontab para agendar tarefas no linux

O que é Cron

 


O cron é um serviço do Linux que tem como objetivo programar a execução automática de tarefas no sistema operacional, uma ou várias vezes. Este serviço é carregado junto ao sistema operacional.

Como funciona

Para a execução das tarefas, o cron utiliza uma tabela conhecida como crontab, verificando a cada minuto se o arquivo de agendamento sofreu alguma alteração.
O administrador do sistema deve editar o arquivo de configuração da crontab e agendar uma tarefa conforme o formato abaixo:

[minutos] [horas] [dias do mês] [mês] [dias da semana] [usuário] [comando a ser executado] 

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 0 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;
- Comando a ser executado: a tarefa que a cron deve executar.
  
Como usar

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 informando 2-4, o comando relacionado será executado às 2, 3 e 4 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.

Exemplos de uso

Acesse a crontab com o comando crontab -e. Este arquivo será aberto com o seu editor de texto padrão. Agora basta adicionar o agendamento conforme a necessidade. Abaixo vão alguns exemplos. 

No exemplo abaixo a frase "isto é um teste" será inserida no arquivo teste.txt, dentro do diretório /home/carlos/, às 22 horas e 30 minutos, nos dias 3 e 14, em todos os meses e em todos os dias da semana.
30 22 3,14 * * echo "into é um teste" > /home/carlos/teste.txt

No exemplo abaixo, é executado todos os dias às 22:00 horas o script backup.sh (só será executado se o script existir).
0 22 * * * /root/scripts/backup.sh

Parâmetros do comando crontab

crontab -e: Serve para editar o arquivo atual do crontab;
crontab -l: Mostra o conteúdo atual do crontab;
crontab -r: Remove o arquivo atual do crontab
Share on Google Plus

Sobre Carlos Castro

Administrador e autor do blog hostconfig.
    Blogger Comment
    Facebook Comment

0 comentários:

Postar um comentário