Como criar e gerenciar tarefas de cron no Linux


O Cron é uma das ferramentas mais úteis do Linux e uma das favoritas do desenvolvedor, pois permite que você execute comandos automatizados em períodos, datas e intervalos específicos usando scripts gerais e de tarefas específicas. Com essa descrição, você pode imaginar como os administradores do sistema a utilizam para automatizar tarefas de backup, limpeza de diretório, notificações etc.

As tarefas do Cron são executadas em segundo plano e constantemente verificam o arquivo /etc/crontab , e o /etc/cron. */ e o /var/spool/cron/diretórios . Os arquivos cron não devem ser editados diretamente e cada usuário tem um crontab exclusivo.

Como então você deve criar e editar tarefas cron? Com comandos crontab. O crontab é o método que você usa para criar, editar, instalar, desinstalar e listar tarefas agendadas.

O comando para criar e editar tarefas agendadas é 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 é com qualquer idioma, trabalhar com o cron é muito mais fácil quando você entende sua sintaxe e existem 2 formatos que você deve saber:

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
  • USERNAME: replace this with your username
  • /path/to/command – The name of the script or command you want to schedule

Isso não é tudo. O Cron usa 3 símbolos do operador que permitem especificar vários valores em um campo:

  1. Asterisk (*): specifies all possible values for a field
  2. The comma (,): specifies a list of values
  3. Dash (-): specifies a range of values
  4. Separator (/): specifies a step value

Agora que você conhece a sintaxe e os operadores do Cron, vamos ver alguns exemplos do cron.

Exemplos de trabalho Cron

O primeiro passo para executar os comandos do cron é instalar o seu crontab com o comando:

# crontab -e

Execute /root/backup.sh em 3 am todos os dias:

0 3 * * * /root/backup.sh

Execute script.sh em 16:30 no segundo dia de cada mês:

30 16 2 * * /path/to/script.sh

Execute /scripts/phpscript.php em 22h durante a semana:

0 22 * * 1-5 /scripts/phpscript.php

Execute perlscript.pl em 23 minutos após a meia-noite, 2:00 e 4:00 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 Cron

Listar trabalhos cron.

# crontab -l
OR
# crontab -u username -l

Exclua todos os trabalhos do crontab.

# crontab -r

Exclua o trabalho Cron para um usuário específico.

# crontab -r -u username

Cordas em Crontab

As cordas estão entre as coisas favoritas do desenvolvedor porque ajudam a economizar tempo, eliminando a escrita repetitiva. Cron tem strings específicas que você pode usar para criar comandos mais rapidamente:

  1. @hourly: Run once every hour i.e. “0 * * * *
  2. @midnight: Run once every day i.e. “0 0 * * *
  3. @daily: same as midnight
  4. @weekly: Run once every week, i.e. “0 0 * * 0
  5. @monthly: Run once every month i.e. “0 0 1 * *
  6. @annually: Run once every year i.e. “0 0 1 1 *
  7. @yearly: same as @annually
  8. @reboot: Run once at every startup

Por exemplo, é como fazer backup do 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.

Quanto de usuário Cron você é? E há algum detalhe que você possa contribuir para o artigo? A caixa de discussão está abaixo.

Quando você entende o suficiente sobre como o Crontab funciona, você pode usar esses utilitários de gerador Crontab para gerar linhas crontab gratuitamente.

Além disso, você pode ler o artigo do Ubuntu sobre como usar o Cron aqui. Tem recursos que você pode achar úteis.