Como Visualizar e Listar Cron Jobs Usando Crontab
A ferramenta cron em sistemas operacionais semelhantes ao Unix permite que os usuários agendem tarefas (comandos ou scripts) para serem executadas automaticamente em horários ou intervalos específicos. Quer você esteja mantendo um servidor ou gerenciando tarefas automatizadas em uma máquina local, o cron é uma ferramenta essencial para administradores de sistema e desenvolvedores.
Este artigo explica como visualizar e listar jobs do cron usando o comando
crontabO que é o comando Crontab?
Crontab (abreviação de “cron table”) é um arquivo que define tarefas agendadas para o daemon cron. Cada usuário em um sistema, incluindo o usuário
rootUma entrada de crontab segue esta sintaxe:
* * * * * command_to_be_executed
| | | | |
| | | | +----- day of the week (0–7) (Sunday = 0 or 7)
| | | +---------- month (1–12)
| | +--------------- day of the month (1–31)
| +-------------------- hour (0–23)
+------------------------- minute (0–59)
Esta estrutura permite controle preciso sobre quando as tarefas são executadas, tornando o cron uma poderosa ferramenta de automação.
Como listar jobs do cron usando Crontab
O comando
crontab1. Visualizar seus próprios jobs do cron
Para exibir jobs do cron para o usuário atualmente logado, execute:
crontab -lEste comando lista todos os jobs do cron agendados para o usuário atual. Se não houver jobs do cron, pode retornar uma saída vazia ou uma mensagem indicando que nenhum crontab está definido.
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 diariamente à meia-noite.
- Um script de limpeza é executado todo domingo às 2:30 AM.
2. Listar jobs do cron para outro usuário
Se você tiver
sudo-usudo crontab -l -u usernameSubstitua
usernamesudo crontab -l -u johnIsso exibe todos os jobs do cron agendados para o usuário especificado.
3. Listar jobs do cron em todo o sistema
Além dos jobs do cron específicos do usuário, existem tarefas do cron em todo o sistema agendadas pelo sistema ou pelo usuário root. Estes são tipicamente armazenados em:
/etc/crontab/etc/cron.d//var/spool/cron/crontabs/
Para visualizar o arquivo crontab principal do sistema, execute:
cat /etc/crontabExemplo de saída:
SHELL=/bin/sh
PATH=/usr/bin:/usr/sbin
# m h dom mon dow user command
17 * * * * 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 )
Esta configuração agenda tarefas de manutenção do sistema a cada hora, diariamente, semanalmente e mensalmente.
Para listar arquivos de cron adicionais do sistema, execute:
ls /etc/cron.d/Cada arquivo neste diretório pode definir tarefas agendadas adicionais para serviços do sistema.
4. Visualizar jobs do cron em /var/spool/cron
Os arquivos crontab específicos do usuário geralmente são armazenados em
/var/spool/cron/crontabsls /var/spool/cron/crontabsPara visualizar o conteúdo do arquivo crontab de um usuário específico:
cat /var/spool/cron/crontabs/usernameIsso fornece a mesma saída que
crontab -l -u usernameEditando jobs do cron
Para editar ou adicionar jobs do cron para o usuário atual, execute:
crontab -eIsso abre o arquivo crontab no editor de texto padrão. Após salvar e sair, as alterações entram em vigor imediatamente.
Exemplo: executar um script todos os dias às 3:00 AM:
0 3 * * * /home/user/script.shComandos comuns de listagem do Crontab
- Listar jobs do cron do usuário atual:
crontab -l - Listar jobs do cron de outro usuário (sudo necessário):
sudo crontab -l -u username - Visualizar crontab do sistema:
cat /etc/crontab - Listar arquivos de cron em /etc/cron.d/:
ls /etc/cron.d/ - Listar crontabs de usuários:
ls /var/spool/cron/crontabs
Conclusão
Visualizar e listar jobs do cron usando
crontabDominando o cron, você pode automatizar tarefas repetitivas, gerenciar backups e manter a execução consistente de scripts em seu ambiente.
