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.