Cron é uma das ferramentas mais úteis do Linux e favorita dos desenvolvedores, pois permite executar comandos automatizados em períodos específicos, datas e intervalos usando scripts genéricos e específicos de tarefas. Dada essa descrição, você pode imaginar como os administradores de sistema o utilizam para automatizar tarefas de backup, limpeza de diretórios, notificações, etc.
Trabalhos cron são executados em segundo plano e verificam constantemente o arquivo /etc/crontab
, e os diretórios /etc/cron.*/
e /var/spool/cron/
. Os arquivos cron não devem ser editados diretamente e cada usuário possui um crontab único.
Então, como você deve criar e editar trabalhos cron? Com os comandos crontab. O crontab é o método que você usa para criar, editar, instalar, desinstalar e listar trabalhos cron.
O comando para criar e editar trabalhos cron é o mesmo e simples. E o que é ainda melhor é que você não precisa reiniciar o cron após criar novos arquivos ou editar os existentes.
$ crontab -e
Sintaxe Cron
Assim como acontece com qualquer linguagem, trabalhar com cron é muito mais fácil quando se entende sua sintaxe e existem 2 formatos que você deve conhecer:
A B C D E USERNAME /path/to/command arg1 arg2 OR A B C D E USERNAME /root/backup.sh
Explicação da sintaxe cron acima:
- A: Minutes range: 0 – 59
- B: Hours range: 0 – 23
- C: Days range: 0 – 31
- D: Months range: 0 – 12
- E: Days of the week range: 0 – 7. Starting from Monday, 0 or 7 represents Sunday
- NOME_DE_USUÁRIO: substitua isso pelo seu nome de usuário
- /caminho/para/comando – O nome do script ou comando que você deseja agendar
Isso não é tudo. Cron usa 3 símbolos de operador que permitem que você especifique múltiplos valores em um campo:
- Asterisco
(*)
: especifica todos os valores possíveis para um campo - A vírgula
(,)
: especifica uma lista de valores - Travessão
(-)
: especifica um intervalo de valores - Separador
(/)
: especifica um valor de passo
Agora que você conhece a sintaxe e os operadores do Cron, vamos ver alguns exemplos de cron.
Exemplos de Tarefas Cron
O primeiro passo para executar comandos cron é instalar seu crontab com o comando:
# crontab -e
Executar /root/backup.sh
às 3 da manhã todos os dias:
0 3 * * * /root/backup.sh
Executar script.sh
às 4:30 da tarde no segundo dia de todo mês:
30 16 2 * * /path/to/script.sh
Executar /scripts/phpscript.php
às 10 da noite durante a semana:
0 22 * * 1-5 /scripts/phpscript.php
Executar perlscript.pl
às 23 minutos após meia-noite, 2h e 4h, todos os dias:
23 0-23/2 * * * /path/to/perlscript.pl
Executar comando Linux às 04:05 todo domingo:
5 4 * * sun /path/to/linuxcommand
Opções do Cron
Listar tarefas cron.
# crontab -l OR # crontab -u username -l
Excluir todos os trabalhos do crontab.
# crontab -r
Excluir o trabalho Cron para um usuário específico.
# crontab -r -u username
Strings no Crontab
Strings estão entre as coisas favoritas do desenvolvedor porque ajudam a economizar tempo eliminando a escrita repetitiva. Cron possui strings específicas que você pode usar para criar comandos mais rapidamente:
@hourly
: Executar uma vez a cada hora, ou seja, “0 * * * *“@midnight
: Executar uma vez por dia, ou seja, “0 0 * * *“@daily
: mesmo que meia-noite@weekly
: Executar uma vez por semana, ou seja, “0 0 * * 0“@monthly
: Executar uma vez por mês, ou seja, “0 0 1 * *“@annually
: Executar uma vez por ano, ou seja, “0 0 1 1 *“@yearly
: mesmo que @annually@reboot
: Executar uma vez a cada inicialização
Por exemplo, assim é como fazer backup do seu sistema todos os dias:
@daily /path/to/backup/script.sh
Neste ponto, você tem tudo o que precisa para criar e gerenciar tarefas do sistema usando Cron. Agora você pode começar a configurar e manter vários ambientes usando comandos agendados.
Quão familiarizado você está com o Cron? E há algum detalhe que você possa contribuir para o artigo? A caixa de discussão está abaixo.
Quando entender o suficiente sobre como o Crontab funciona, você pode usar essas práticas utilidades geradoras de Crontab para gerar linhas de crontab gratuitamente.
Também, você pode ler o artigo do Ubuntu sobre como usar o Cron aqui. Ele possui recursos que você pode achar úteis.
Source:
https://www.tecmint.com/create-and-manage-cron-jobs-on-linux/