Como Instalar o Crontab no Linux CentOS/RHEL?

Publicado 27 de agosto de 2024

Problema: Instalando o Crontab no CentOS/RHEL

O Crontab é uma ferramenta para agendar tarefas em sistemas Linux. Alguns usuários podem achar difícil instalar e configurar o Crontab nas distribuições CentOS ou RHEL. Isso pode impedi-los de automatizar tarefas rotineiras e gerenciar trabalhos agendados em seus servidores.

Instalando o Cron e o Crontab no CentOS/RHEL

Verificando se o Cron já está instalado

Para verificar se o Cron está instalado no seu sistema CentOS/RHEL, abra um terminal e execute este comando:

rpm -q cronie

Este comando consulta o gerenciador de pacotes RPM pelo pacote "cronie", que fornece o Cron nos sistemas CentOS/RHEL.

Se o Cron estiver instalado, você verá uma saída como:

cronie-1.4.11-23.el7.x86_64

Se o Cron não estiver instalado, você verá uma mensagem como:

package cronie is not installed

Instalando o Cron usando o gerenciador de pacotes YUM

Se o Cron não estiver instalado no seu sistema, você pode instalá-lo usando o gerenciador de pacotes YUM. Siga estes passos:

  1. Abra um terminal no seu sistema CentOS/RHEL.

  2. Execute este comando para instalar o Cron:

sudo yum install cronie
  1. Quando solicitado, digite 'y' e pressione Enter para confirmar a instalação.

  2. Após a instalação, inicie o serviço Cron:

sudo systemctl start crond
  1. Configure o Cron para iniciar automaticamente na inicialização do sistema:
sudo systemctl enable crond

Estes comandos irão instalar o Cron e configurá-lo para executar automaticamente quando seu sistema iniciar. Uma vez instalado, você pode usar o Crontab para agendar tarefas no seu sistema CentOS/RHEL.

Configurando e Usando o Crontab no CentOS

Acessando o editor do Crontab

Para abrir e editar o arquivo Crontab, use este comando:

crontab -e

Isso abre o arquivo Crontab para o usuário atual no editor de texto. Para editar o Crontab de um usuário diferente, use:

sudo crontab -u nome_do_usuario -e

Existem dois tipos de Crontabs:

  1. Crontabs específicos do usuário: Criados para usuários individuais e localizados em /var/spool/cron/.

  2. Crontabs do sistema: Armazenados em /etc/crontab e /etc/cron.d/ para tarefas do sistema.

Entendendo a sintaxe do Crontab

As expressões Cron seguem este formato:

* * * * * comando_a_executar

Os cinco asteriscos representam:

  1. Minuto (0-59)
  2. Hora (0-23)
  3. Dia do mês (1-31)
  4. Mês (1-12)
  5. Dia da semana (0-7, onde 0 e 7 são domingo)

Você pode usar números, asteriscos (*), vírgulas (,), hifens (-) e barras (/) nestes campos para especificar quando o comando deve ser executado.

Criando seu primeiro trabalho Cron

Aqui está um exemplo de uma entrada básica de trabalho Cron:

30 2 * * * /caminho/para/script_backup.sh

Este trabalho Cron executa um script de backup às 2:30 AM todos os dias.

Para agendar tarefas em intervalos específicos:

  • A cada 15 minutos: /15 * comando
  • A cada hora: 0 comando
  • Todos os dias à meia-noite: 0 0 * comando
  • Todas as segundas-feiras às 9 AM: 0 9 1 comando

Use caminhos absolutos para comandos e scripts em seus trabalhos Cron para evitar problemas com o ambiente Cron.

Gerenciando trabalhos Cron no CentOS

Listando trabalhos Cron existentes

Para visualizar as entradas atuais do Crontab, use este comando:

crontab -l

Este comando mostra todos os trabalhos Cron para o usuário atual. Para ver os trabalhos Cron de um usuário específico, use:

sudo crontab -u nome_do_usuario -l

A saída exibe cada trabalho Cron em uma linha separada. Por exemplo:

0 2 * * * /caminho/para/script_backup.sh
30 * * * * /usr/bin/php /var/www/html/script.php

Cada linha mostra uma tarefa agendada com seu tempo e comando.

Editando e excluindo trabalhos Cron

Para alterar trabalhos Cron existentes:

  1. Abra o editor do Crontab:

    crontab -e
  2. Encontre o trabalho que deseja alterar.

  3. Edite o tempo ou comando conforme necessário.

  4. Salve e saia do editor.

Para remover tarefas Cron:

  1. Abra o editor do Crontab como mostrado acima.

  2. Encontre a linha com o trabalho que deseja remover.

  3. Exclua a linha inteira.

  4. Salve e saia do editor.

Para excluir todos os trabalhos Cron do usuário atual:

crontab -r

Tenha cuidado com este comando, pois ele remove todas as tarefas agendadas para esse usuário.

Para remover um trabalho específico sem abrir o editor, você pode usar este método:

  1. Liste e salve os trabalhos atuais:

    crontab -l > meucron
  2. Edite o arquivo 'meucron' para remover o trabalho indesejado.

  3. Carregue o Crontab atualizado:

    crontab meucron
  4. Remova o arquivo temporário:

    rm meucron

Este processo ajuda você a gerenciar seus trabalhos Cron sem correr o risco de exclusões acidentais.

Solucionando problemas do Cron no CentOS/RHEL Linux

Problemas comuns do Crontab e soluções

Corrigindo problemas de permissão

Problemas de permissão podem impedir que os trabalhos cron sejam executados. Para corrigir isso:

  1. Verifique as permissões do arquivo:

    ls -l /caminho/para/seu/script

    Torne o script executável:

    chmod +x /caminho/para/seu/script
  2. Verifique a propriedade do trabalho cron:

    ls -l /var/spool/cron/

    Certifique-se de que o arquivo crontab pertence ao usuário correto.

  3. Verifique se o usuário pode executar o comando ou acessar os arquivos necessários.

Resolvendo problemas de variáveis de ambiente e caminho

O Cron é executado com um ambiente limitado, o que pode causar problemas de caminho:

  1. Use caminhos completos para comandos e scripts em seus trabalhos cron.

  2. Defina a variável PATH no início do seu crontab ou script:

    PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
  3. Use o perfil do usuário no trabalho cron:

    * * * * * . $HOME/.profile; /caminho/para/seu/script

Monitorando a execução de trabalhos Cron

Como registrar a saída do trabalho Cron

Para capturar a saída dos seus trabalhos cron:

  1. Envie a saída para um arquivo de log:

    * * * * * /caminho/para/seu/script >> /caminho/para/arquivo_log.log 2>&1
  2. Use mail para enviar a saída do trabalho por e-mail:

    MAILTO=seu@email.com
    * * * * * /caminho/para/seu/script
  3. Verifique os logs do sistema para mensagens do cron:

    grep CRON /var/log/syslog

Ferramentas para rastrear o desempenho dos trabalhos Cron

Para monitorar o desempenho dos trabalhos cron:

  1. Use time para medir quanto tempo os trabalhos levam:

    * * * * * /usr/bin/time -o /caminho/para/log_tempo.txt /caminho/para/seu/script
  2. Adicione registros aos seus scripts para acompanhar o progresso e a conclusão.

  3. Use ferramentas como top ou htop para ver o uso de recursos durante a execução dos trabalhos.

  4. Use serviços de monitoramento cron para obter mais detalhes e alertas.