Pesquisa de site

11 Exemplos de tarefas de agendamento Cron no Linux


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

Lidar manualmente com um trabalho frequente é uma tarefa difícil para administradores de sistema e tais tarefas podem ser agendadas e executadas automaticamente em segundo plano, sem intervenção humana, usando o daemon cron no Linux ou sistema operacional semelhante ao Unix.

Por exemplo, você pode automatizar o backup do sistema Linux, agendar atualizações, sincronizar arquivos e muito mais usando o daemon Cron, que é usado para executar tarefas agendadas a partir da linha de comando. ou use ferramentas online para gerar cron jobs.

Cron acorda a cada minuto e verifica as tarefas agendadas em contáveis – Crontab (CRON TABle) é uma tabela onde podemos agendar esses tipos 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 separados por espaço ou tabulação. Os cinco campos iniciais representam o tempo para executar tarefas e o último campo é para comando.

  • Minuto (manter valores entre 0-59)
  • Hora (manter valores entre 0-23)
  • Dia do mês (mantenha valores entre 1-31)
  • O mês do ano (mantenha valores entre 1-12 ou janeiro-dezembro, você pode usar as três primeiras letras do nome de cada mês, ou seja, janeiro ou junho.)
  • Dia da semana (mantenha valores entre 0-6 ou Dom-Sábado. Aqui você também pode usar as três primeiras letras do nome de cada dia, ou seja, Dom ou Quarta.)
  • Comando – O /caminho/para/comando ou script que você 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 -e a opção mostrada abaixo. O exemplo abaixo abrirá trabalhos agendados no editor VI. Faça as alterações necessárias e pare de pressionar as teclas :wq que salvam a configuração automaticamente.

crontab -e

3. Listar Cron Jobs agendados do usuário

Para listar jobs agendados de um determinado usuário chamado tecmint usando a opção como -u (Usuário) e -l (Lista).

crontab -u tecmint -l

no crontab for tecmint

Nota: apenas o usuário root tem privilégios completos para ver as entradas crontab de outros usuários. Usuários normais não podem ver outros.

4. Remover entrada do Crontab

Cuidado: Crontab com -r o parâmetro 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. Avisar antes de excluir o Crontab

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

crontab -i -r

crontab: really delete root's crontab?

6. Caracteres especiais permitidos (*, -, /, ?, #)

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

7. Cronograma Cron em todo o sistema

Um administrador do sistema pode usar o diretório cron predefinido conforme mostrado abaixo.

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

8. Agende um trabalho 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á executando um cron job.

crontab -e

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

9. Strings Especiais para Programação Comum

@reboot

O comando será executado quando o sistema for reinicializado.

@daily

Uma vez por dia ou pode usar @midnight.

@weekly

Uma vez por semana.

@yearly

Uma vez ao ano. também podemos usar a palavra-chave @annually.

É necessário substituir cinco campos do comando cron por palavras-chave se quiser usar os mesmos.

10. Vários comandos com E comercial duplo (&&)

No exemplo abaixo, command1 e command2 são executados diariamente.

crontab -e

@daily <command1> && <command2>

11. Desative as notificações por e-mail.

Por padrão, o cron envia mensagens para a conta do usuário que executa o cronjob. Se você deseja desativá-lo, adicione seu cron job 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 executá-las de maneira melhor, livre de erros e eficiente. Você pode consultar uma página de manual do crontab para obter mais informações digitando o comando ‘man crontab’ em seu terminal.