Como criar e gerenciar tarefas Cron no Linux
Cron é uma das ferramentas mais úteis do Linux e uma das favoritas dos desenvolvedores porque permite executar comandos automatizados em períodos, datas e intervalos específicos usando scripts de uso geral e específicos de tarefas. Dada essa descrição, você pode imaginar como os administradores de sistema a utilizam para automatizar tarefas de backup, limpeza de diretórios, notificações, etc.
As tarefas Cron são executadas em segundo plano e verificam constantemente o arquivo /etc/crontab
e os arquivos /etc/cron.*/
e /var/spool/cron/
diretórios. Os arquivos cron não devem ser editados diretamente e cada usuário possui um crontab exclusivo.
Como então você deve criar e editar cron jobs? Com comandos crontab. O crontab é o método que você usa para criar, editar, instalar, desinstalar e listar tarefas cron.
O comando para criar e editar cron jobs é o mesmo e simples. E o que é ainda mais legal é que você não precisa reiniciar o cron depois de 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 você entende sua sintaxe e há 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 do cron acima:
- A: Intervalo de minutos: 0 – 59
- B: Faixa de horas: 0 – 23
- Intervalo C: Dias: 0 – 31
- D: Meses intervalo: 0 – 12
- E: intervalo de dias da semana: 0 – 7. A partir de segunda-feira, 0 ou 7 representa domingo
- NOME DE USUÁRIO: substitua pelo seu nome de usuário
- /path/to/command – O nome do script ou comando que você deseja agendar
Isso não é tudo. Cron usa 3 símbolos de operador que permitem especificar vários valores em um campo:
- Asterisco
(*)
: especifica todos os valores possíveis para um campo - A vírgula
(,)
: especifica uma lista de valores - Traç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
Execute /root/backup.sh
às 3h todos os dias:
0 3 * * * /root/backup.sh
Execute script.sh
às 16h30 no segundo dia de cada mês:
30 16 2 * * /path/to/script.sh
Execute /scripts/phpscript.php
às 22h durante a semana:
0 22 * * 1-5 /scripts/phpscript.php
Execute perlscript.pl
às 23 minutos depois da meia-noite, 2h e 4h, todos os dias:
23 0-23/2 * * * /path/to/perlscript.pl
Execute o comando Linux às 04:05 todos os domingos:
5 4 * * sun /path/to/linuxcommand
Opções do Cron
Listar tarefas cron.
crontab -l
OR
crontab -u username -l
Exclua todos os trabalhos crontab.
crontab -r
Exclua o trabalho Cron para um usuário específico.
crontab -r -u username
Cordas no Crontab
Strings estão entre as coisas favoritas do desenvolvedor porque ajudam a economizar tempo, eliminando a escrita repetitiva. O Cron possui strings específicas que você pode usar para criar comandos mais rapidamente:
@hourly
: Executa uma vez a cada hora, ou seja, “0 * * * *“@midnight
: Execute uma vez por dia, ou seja, “0 0 * * *“@diariamente
: igual à meia-noite@weekly
: Execute uma vez por semana, ou seja, “0 0 * * 0“@monthly
: executado uma vez por mês, ou seja, “0 0 1 * *“@anualmente
: executado uma vez por ano, ou seja, “0 0 1 1 *“@anual
: o mesmo que @anualmente@reboot
: Executa uma vez a cada inicialização
Por exemplo, é assim que você faz 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 o Cron. Agora você pode começar a configurar e manter vários ambientes usando comandos agendados.
Quanto você é usuário do Cron? E há algum detalhe com o qual você possa contribuir para o artigo? A caixa de discussão está abaixo.
Quando você entender o suficiente sobre como o Crontab funciona, você pode usar esses utilitários geradores de Crontab para gerar linhas de crontab gratuitamente.
Além disso, você pode ler o artigo do Ubuntu sobre como usar o Cron aqui. Possui recursos que você pode achar úteis.