Como exibir e listar trabalhos do Cron usando o Crontab
Neste artigo, explicaremos como exibir e listar os trabalhos cron usando o comando crontab, o que o ajudará a gerenciar as tarefas agendadas com eficiência.
O que é o Crontab?
Crontab (abreviação de “cron table”, tabela cron) é um arquivo que define as tarefas agendadas no sistema cron. Cada usuário em um sistema, inclusive o usuário root, pode ter seu próprio crontab, que especifica os trabalhos que deseja automatizar.
O arquivo crontab consiste em tarefas cron na seguinte sintaxe:
* * * * * * comando_a_ser_executado
| | | | |
| | | | | ----- dia da semana (0 - 7) (domingo=0 ou 7)
| | | ---------- mês (1 - 12)
| --------------- dia do mês (1 - 31)
| -------------------- hora (0 - 23)
------------------------- minuto (0 - 59)
Essa estrutura permite um controle preciso sobre quando os trabalhos são executados, tornando o cron uma poderosa ferramenta de automação.
Como listar os trabalhos do Cron usando o Crontab
Para gerenciar os trabalhos cron, o comando crontab é o seu utilitário de referência. Veja a seguir como exibir os trabalhos cron para um usuário específico ou para o sistema.
1. Exibição de seus próprios trabalhos do cron
Para exibir os trabalhos cron do seu usuário atual, execute o seguinte comando no terminal:
crontab -l
Isso listará todas as tarefas agendadas para o usuário atualmente conectado ao sistema. Se não houver trabalhos cron, o comando retornará uma lista vazia ou uma mensagem informando que não há crontab para o usuário.
Exemplo de saída:
# m h dom mon dow command
0 0 * * * * /home/user/backup.sh
30 2 * * * 7 /home/user/scripts/cleanup.sh
Neste exemplo:
- Um script de backup) é executado todos os dias à meia-noite.
(backup.sh
- Um script de limpeza) é executado todos os domingos às 2:30 AM.
(cleanup.sh
2. Listagem de trabalhos Cron para outro usuário
Se você tiver privilégios de root ou sudo, poderá visualizar os trabalhos cron de qualquer usuário usando o sinalizador
-u
sudo crontab -l -u nome de usuário
Substitua nome de usuário pelo nome de usuário real do usuário cujos trabalhos do cron você deseja ver.
Por exemplo, para listar os trabalhos do cron de um usuário chamado john, execute:
sudo crontab -l -u john
Isso exibirá todos os trabalhos agendados do cron para esse usuário.
3. Listagem de trabalhos Cron em todo o sistema
Além dos cron jobs específicos do usuário, há cron jobs para todo o sistema que são agendados pelo sistema ou pelo usuário root. Eles são armazenados em diretórios como /etc/crontab, /etc/cron.d/ e no diretório /var/spool/cron/crontabs.
Para listar os trabalhos cron de todo o sistema, você pode abrir e visualizar o arquivo /etc/crontab:
cat /etc/crontab
A saída pode ser semelhante a esta:
SHELL=/bin/sh
PATH=/usr/bin:/usr/sbin#
m h dom mon dow comando do usuário17 * * * * * root cd / && run-parts –report /etc/cron.hourly
25 6 * * * * root test -x /usr/sbin/anacron || ( cd / && run-parts –report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts –report /etc/cron.weekly )
52 6 1 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts –report /etc/cron.monthly )
Neste exemplo:
- os trabalhossão executados no 17º minuto de cada hora.
do arquivo /etc/cron.hourly
- os trabalhos dosão executados todos os dias às 6h25.
arquivo /etc/cron.daily
- os trabalhossão executados todos os domingos às 6h47.
do arquivo /etc/cron.weekly
- os trabalhos dosão executados no primeiro dia de cada mês, às 6h52.
arquivo /etc/cron.monthly
Você também pode visualizar os trabalhos em /etc/cron.d/ executando:
ls /etc/cron.d/
Cada arquivo nesse diretório pode conter trabalhos cron adicionais para serviços do sistema.
4. Listagem de trabalhos do Cron no diretório /var/spool/cron/
Os cron jobs específicos do usuário geralmente são armazenados no diretório /var/spool/cron/crontabs. Você pode navegar até esse diretório e listar todos os arquivos de trabalho cron:
ls /var/spool/cron/crontabs
Isso mostrará os arquivos crontab de cada usuário. Para visualizar o conteúdo do crontab de um usuário específico, execute:
cat /var/spool/cron/crontabs/username
Isso fornece a mesma saída que a execução de crontab -l -u nome de usuário.
Edição de trabalhos do Cron
Se precisar modificar ou adicionar novos cron jobs, você pode editar o crontab executando:
crontab -e
Isso abre seu crontab no editor de texto padrão, permitindo que você adicione ou modifique os trabalhos existentes.
Por exemplo, para adicionar um novo trabalho que executa um script todos os dias às 3:00 AM, você adicionaria esta linha:
0 3 * * * * /home/user/script.sh
Depois de salvar e sair do arquivo, o trabalho será agendado imediatamente.
Comandos comuns de listagem do Crontab
Aqui está uma referência rápida para listar os trabalhos do cron em diferentes cenários:
- Listar os trabalhos cron do usuário atual:
crontab -l
- Listar os trabalhos do cron de outro usuário (requer sudo):
sudo crontab -l -u nome de usuário
- Listar os trabalhos cron de todo o sistema:
cat /etc/crontab
- Listar todos os trabalhos do cron em:
/etc/cron.d/
ls /etc/cron.d/
- Exibir os trabalhos do cron armazenados em:
/var/spool/cron/crontabs/
ls /var/spool/cron/crontabs
Conclusão
Listar e exibir os trabalhos do cron usando o crontab é uma maneira simples, porém poderosa, de gerenciar as tarefas agendadas em um sistema do tipo Unix. Quer esteja gerenciando seus próprios trabalhos cron específicos de usuário ou tarefas automatizadas em todo o sistema, a compreensão desses comandos ajuda a garantir que seus trabalhos sejam executados sem problemas e dentro do prazo.
Ao dominar o cron, você pode automatizar tarefas repetitivas, manter backups e garantir que seus scripts sejam executados de forma consistente em todo o ambiente.