11 Exemplos de Comando Cron no Linux [Agendar Tarefas Cron]

Neste artigo, vamos revisar e ver como podemos agendar e executar tarefas do Linux em segundo plano automaticamente em intervalos regulares usando o comando Crontab.

Lidar com um trabalho frequente manualmente é uma tarefa assustadora para os administradores do sistema e tarefas assim podem ser agendadas e executadas automaticamente em segundo plano sem intervenção humana usando o daemon cron no sistema operacional Linux ou Unix-like.

Você pode automatizar o backup do sistema Linux, agendar atualizações, e sincronização de arquivos, e muito mais usando o daemon Cron, que é usado para executar tarefas agendadas a partir da linha de comando ou usar ferramentas online para gerar trabalhos cron.

Cron acorda a cada minuto e verifica tarefas agendadas de forma contável – Crontab (TABela de CRON) é uma tabela onde podemos agendar esse tipo de tarefas repetidas.

Dicas: Cada usuário pode ter seu próprio crontab para criar, modificar e excluir tarefas. Por padrão, cron está habilitado para usuários, no entanto, podemos restringir usuários adicionando uma entrada no arquivo /etc/cron.deny.

Crontab no Linux

O arquivo Crontab consiste em comandos por linha e possui seis campos na verdade e separados por espaço ou tabulação. Os cinco primeiros campos representam o horário para executar tarefas e o último campo é para o comando.

  • Minuto (valores entre 0-59)
  • Hora (valores entre 0-23)
  • Dia do Mês (valores entre 1-31)
  • O mês do ano (valores entre 1-12 ou Jan-Dec, você pode usar as três primeiras letras do nome de cada mês, ou seja, Jan ou Jun.)
  • Dia da semana (valores entre 0-6 ou Sun-Sat, aqui também você pode usar as três primeiras letras do nome de cada dia, ou seja, Sun ou Wed. )
  • Comando – O /caminho/para/comando ou script que deseja agendar.

1. Listar Entradas do Crontab

Liste ou gerencie a tarefa com o comando crontab com a opção -l para o usuário atual.

# crontab -l

00 10 * * * /bin/ls >/ls.txt

2. Editar Entradas do Crontab

Para editar a entrada do crontab, use a opção -e mostrada abaixo. O exemplo abaixo abrirá trabalhos agendados no editor VI. Faça as alterações necessárias e saia pressionando as teclas :wq que salvam as configurações automaticamente.

# crontab -e

3. Listar Cron Jobs Agendados do Usuário

Para listar trabalhos agendados de um usuário específico chamado tecmint usando a opção -u (Usuário) e -l (Listar).

# crontab -u tecmint -l

no crontab for tecmint

Observação: Apenas o usuário root tem privilégios completos para ver as entradas do crontab de outros usuários. Usuários normais não podem ver os de outros.

4. Remover Entrada do Crontab

Cuidado: O crontab com o parâmetro -r removerá trabalhos agendados completos sem confirmação do crontab. Use a opção -i antes de excluir o crontab do usuário.

# crontab -r

5. Solicitar Antes de Excluir o Crontab

crontab com a opção -i solicitará confirmação do usuário antes de excluir a crontab do usuário.

# crontab -i -r

crontab: really delete root's crontab?

6. Caracteres Especiais Permitidos (*, -, /, ?, #)

  • Asterisco(*) – Corresponde a todos os valores no campo ou qualquer valor possível.
  • Hífen(-) – Para definir um intervalo.
  • Barra (/) – 1º campo /10 significa a cada dez minutos ou incremento do intervalo.
  • A Vírgula (,) – Para separar itens.

7. Cronograma do Sistema Global

A system administrator can use the predefined cron directory as shown below.

  • /etc/cron.d
  • /etc/cron.daily
  • /etc/cron.hourly
  • /etc/cron.monthly
  • /etc/cron.weekly

8. Agendar uma Tarefa para um Horário Específico

As tarefas abaixo excluem arquivos e diretórios vazios de /tmp às 12h30 diariamente. Você precisa mencionar o nome de usuário para executar o comando crontab. No exemplo abaixo, o usuário root está realizando uma tarefa cron.

# crontab -e

30 0 * * *   root   find /tmp -type f -empty -delete

9. Strings Especiais para Cronograma Comum

Strings Meanings
@reboot The command will run when the system reboots.
@daily Once per day or may use @midnight.
@weekly Once per week.
@yearly Once per year. we can use the @annually keyword also.

É necessário substituir cinco campos do comando cron por palavras-chave se desejar usar o mesmo.

10. Múltiplos Comandos com Duplo E Comercial(&&)

No exemplo abaixo, o comando1 e o comando2 são executados diariamente.

# crontab -e

@daily <command1> && <command2>

11. Desativar Notificações por E-mail.

Por padrão, o cron envia e-mails para a conta de usuário que executa a tarefa cron. Se você deseja desativá-lo, adicione sua tarefa cron semelhante ao exemplo abaixo. Usar a opção >/dev/null 2>&1 no final do arquivo redirecionará toda a saída dos resultados do cron para /dev/null.

[root@tecmint ~]# crontab -e
* * * * * >/dev/null 2>&1

conclusão: A automação de tarefas pode nos ajudar a realizar nossas atividades de maneira mais eficiente e sem erros. Você pode consultar a página do manual do crontab para obter mais informações digitando o comando ‘man crontab‘ no seu terminal.

Source:
https://www.tecmint.com/11-cron-scheduling-task-examples-in-linux/