Como verificar se uma tarefa cron está agendada no Linux

LinuxBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como verificar tarefas cron agendadas em um sistema Linux. Começará visualizando as tarefas cron específicas do usuário usando o comando crontab -l.

Em seguida, explorará as configurações cron em todo o sistema, inspecionando o arquivo /etc/crontab e examinando os agendamentos definidos nos diretórios /etc/cron.*. Esta experiência prática o equipará com as habilidades essenciais para identificar e entender como as tarefas são agendadas para serem executadas automaticamente em um sistema Linux.

Visualizar tarefas cron do usuário com crontab -l

Nesta etapa, você aprenderá como visualizar as tarefas agendadas para o usuário atual usando o comando crontab.

Cron é um agendador de tarefas baseado em tempo em sistemas operacionais semelhantes ao Unix. Ele permite que os usuários agendem comandos ou scripts para serem executados automaticamente em um horário ou data especificados. Essas tarefas agendadas são frequentemente referidas como "tarefas cron" (cron jobs).

Cada usuário no sistema pode ter seu próprio conjunto de tarefas cron. Elas são armazenadas em um arquivo especial chamado "crontab" (tabela cron).

Para visualizar as tarefas cron para o usuário atual (labex), você usará o comando crontab com a opção -l. O -l significa "listar" (list).

Abra o terminal, caso ainda não o tenha feito. Lembre-se, você pode encontrar o ícone do Xfce Terminal no lado esquerdo da sua área de trabalho.

Digite o seguinte comando no terminal e pressione Enter:

crontab -l

Se você ainda não configurou nenhuma tarefa cron para o usuário labex, provavelmente verá uma mensagem indicando que não há entradas no crontab. Isso é esperado para um ambiente de usuário recém-criado.

no crontab for labex

Esta saída confirma que o usuário labex atualmente não tem tarefas cron pessoais agendadas.

Se houvesse alguma tarefa agendada para o usuário labex, elas seriam listadas aqui, mostrando o agendamento e o comando a ser executado.

Entender como visualizar as tarefas cron existentes é o primeiro passo para gerenciar tarefas agendadas em um sistema Linux. Nas próximas etapas, você explorará as configurações cron em todo o sistema.

Clique em Continuar para prosseguir para a próxima etapa.

Verificar o crontab do sistema em /etc/crontab

Na etapa anterior, você aprendeu como visualizar as tarefas cron para um usuário específico. Agora, vamos explorar as tarefas cron em todo o sistema, que são tipicamente configuradas no arquivo /etc/crontab.

Ao contrário dos crontabs de usuário gerenciados pelo comando crontab, o arquivo /etc/crontab é um arquivo de configuração em todo o sistema que pode ser editado diretamente pelo administrador do sistema (ou um usuário com privilégios sudo). Este arquivo geralmente contém tarefas cron que são essenciais para a operação do sistema.

Para visualizar o conteúdo do arquivo /etc/crontab, você pode usar um visualizador de texto de linha de comando como cat ou less. Como /etc/crontab é um arquivo do sistema, você pode precisar de sudo para lê-lo, embora neste ambiente LabEx, você geralmente possa lê-lo sem sudo. Vamos usar cat para exibir o conteúdo diretamente no terminal.

Digite o seguinte comando e pressione Enter:

cat /etc/crontab

Você verá o conteúdo do arquivo crontab do sistema. Ele pode ter uma aparência semelhante a esta:

## /etc/crontab: crontab em todo o sistema
## Ao contrário de qualquer outro crontab sobre o qual você possa aprender, este arquivo tem um quinto campo
## que é o usuário sob o qual o comando será executado.
#
## min hora dia mês dia_da_semana usuário comando
## ---- ---- --- ----- ---- ---- -------
#
## Exemplo de execução de tarefa:
## .---------------- minuto (0 - 59)
## |  .------------- hora (0 - 23)
## |  |  .---------- dia do mês (1 - 31)
## |  |  |  .------- mês (1 - 12) OU jan,fev,mar,abr ...
## |  |  |  |  .---- dia da semana (0 - 6) (Domingo=0 ou 7) OU dom,seg,ter,qua,qui,sex,sab
## |  |  |  |  |  .- usuário para executar a tarefa como
## |  |  |  |  |  |  . comando a ser executado
## |  |  |  |  |  |  |
## *  *  *  *  *  usuário comando
#
... (outras entradas)

Observe a estrutura deste arquivo. Ele inclui comentários explicando o formato, e cada linha que representa uma tarefa cron tem um campo extra em comparação com os crontabs de usuário: o campo usuário. Este campo especifica qual usuário deve executar o comando.

Os crontabs do sistema são frequentemente usados para tarefas como atualizações do sistema, rotação de logs e outras atividades de manutenção que precisam ser executadas com privilégios elevados ou como um usuário específico do sistema.

Ao examinar /etc/crontab, você obtém informações sobre as tarefas automatizadas agendadas no nível do sistema.

Clique em Continuar para passar para a próxima etapa, onde você explorará outros locais para tarefas cron do sistema.

Inspecionar agendamentos cron em /etc/cron.*

Além do arquivo principal /etc/crontab, muitas distribuições Linux usam diretórios como /etc/cron.d/, /etc/cron.hourly/, /etc/cron.daily/, /etc/cron.weekly/ e /etc/cron.monthly/ para organizar tarefas cron em todo o sistema.

Esses diretórios fornecem uma maneira mais estruturada de gerenciar tarefas agendadas. Scripts colocados em /etc/cron.hourly/ são executados a cada hora, aqueles em /etc/cron.daily/ são executados diariamente e assim por diante. O tempo exato é geralmente controlado por um script em /etc/crontab que executa esses diretórios periodicamente.

Vamos inspecionar o conteúdo desses diretórios para ver quais tarefas do sistema estão agendadas.

Primeiro, vamos listar o conteúdo do diretório /etc/cron.d/. Este diretório geralmente contém arquivos colocados por pacotes instalados que definem tarefas cron específicas.

Digite o seguinte comando e pressione Enter:

ls /etc/cron.d/

Você pode ver uma saída semelhante a esta, listando arquivos dentro do diretório:

anacron  e2scrub_all  phpsessionclean

Esses arquivos contêm definições de tarefas cron, semelhantes em formato a /etc/crontab (incluindo o campo do usuário). Você pode visualizar o conteúdo de qualquer um desses arquivos usando cat. Por exemplo, para visualizar o arquivo anacron:

cat /etc/cron.d/anacron

Em seguida, vamos olhar para os diretórios para tarefas horárias, diárias, semanais e mensais. Podemos listar o conteúdo desses diretórios usando ls.

Digite os seguintes comandos um por um e pressione Enter após cada um:

ls /etc/cron.hourly/
ls /etc/cron.daily/
ls /etc/cron.weekly/
ls /etc/cron.monthly/

Você pode ver vários scripts ou arquivos listados nesses diretórios. Por exemplo, /etc/cron.daily/ geralmente contém scripts para tarefas como atualizar a lista de pacotes, limpar arquivos temporários ou rotacionar logs.

ls /etc/cron.daily/
apt-compat  dpkg  google-chrome  man-db  mlocate  passwd  update-notifier-common

Esses scripts são executados automaticamente pelo sistema cron nos intervalos especificados (horário, diário, semanal, mensal).

Ao examinar os arquivos em /etc/crontab e os diretórios em /etc/cron.*, você pode obter uma visão abrangente das tarefas automatizadas em execução no sistema. Isso é crucial para a administração e solução de problemas do sistema.

Você agora explorou os principais locais para visualizar tarefas cron de usuário e em todo o sistema.

Clique em Continuar para concluir este laboratório.

Resumo

Neste laboratório, você aprendeu como verificar tarefas cron agendadas no Linux. Você começou visualizando tarefas cron específicas do usuário usando o comando crontab -l, entendendo que cada usuário pode ter seu próprio conjunto de tarefas agendadas armazenadas em seu arquivo crontab. Você viu como interpretar a saída, incluindo a mensagem indicando que não há tarefas cron existentes para o usuário atual.

Em seguida, você começou a explorar as configurações cron em todo o sistema, focando especificamente no arquivo /etc/crontab. Este arquivo é usado para tarefas cron em nível de sistema e é gerenciado diretamente pelo administrador do sistema, em contraste com os crontabs de usuário. Compreender os locais das tarefas cron de usuário e em todo o sistema é crucial para verificar de forma abrangente as tarefas agendadas em um sistema Linux.