cron é um agendador de tarefas para sistemas operacionais Linux e semelhantes ao Unix. Ele vem pré-instalado em todas as distribuições Linux e é mais adequado para automatizar tarefas repetitivas.
Para que o cron funcione corretamente, você deve verificar periodicamente se o utilitário está funcionando bem em seu sistema. Você pode fazer isso de quatro maneiras diferentes, incluindo verificar o status do serviço cron, examinar os logs do cron, executar um cron job de teste e listar os processos em execução no seu sistema.
O que é cron?
O manipulador de tarefas silencioso, cron, automatiza e agenda tarefas do sistema. Os usuários que configuram e mantêm ambientes de software usam o cron para agendar trabalhos como comandos ou scripts de shell – também chamados de cron jobs – para serem executados periodicamente em horários ou intervalos fixos.
O cron automatiza tarefas de manutenção ou administração do sistema que você pode precisar realizar com frequência.
Existem várias implementações disponíveis no Linux. A versão que você terá depende da sua distribuição. “Vixie cron”, em homenagem ao seu desenvolvedor original, Paul Vixie, é comum e padrão no Debian e no Ubuntu. Arch não possui nenhuma versão do cron em favor dos temporizadores do systemd.
cronie é um fork do Vixie cron que está disponível como um pacote padrão do Arch. Para instalá-lo, use pacman:
sudo pacman -S cronie
Em seguida, inicie e ative-o com:
sudo systemctl start cronie.service
sudo systemctl enable cronie.service
Você pode ver qual versão do cron está instalada em seu sistema consultando sua página de manual:
man cron
Como verificar se o cron está funcionando no Linux
Aqui estão algumas maneiras de verificar se o cron está funcionando corretamente:
1. Verifique o status do serviço cron no Linux
Uma maneira de verificar se o cron está funcionando é verificar o status do serviço cron executando um comando básico do Linux. Abra o terminal Linux pressionando Ctrl+Alt+T e use o comando systemctl para verificar o status do cron:
sudo systemctl status cron
Se você vir a seguinte saída, isso significa que o cron está ativo e funcionando bem em seu sistema.
Mas e se o cron estiver em um estado inativo, conforme mostrado abaixo?
Você pode iniciar o serviço assim:
sudo systemctl start cron.service
Após iniciar o serviço cron, habilite-o para que ele seja iniciado sempre que o sistema for reinicializado:
sudo systemctl enable cron.service
2. Verifique os registros do cron no Linux
Outra maneira de verificar se o cron está funcionando corretamente é examinar os arquivos de log. os logs do cron são armazenados no /var/log/syslog diretório no Linux.
syslog é um protocolo que os sistemas Linux usam para centralizar logs de dados de eventos. Os logs são então acessados para realizar auditorias, monitoramento, solução de problemas, relatórios e outras tarefas operacionais de TI necessárias.
Você pode ver os logs do cron job no arquivo syslog executando o seguinte comando:
grep 'cron' /var/log/syslog
Você verá uma saída semelhante indicando que o cron está funcionando bem e seus logs estão sendo armazenados no arquivo de log:
Como a pasta syslog contém outros logs do sistema junto com os logs do cron, pode ser um pouco complicado examinar apenas os logs relacionados ao cron no arquivo. Você pode resolver isso criando um arquivo de log separado que armazena apenas entradas cron que aparecem no arquivo syslog.
Neste exemplo, usaremos o editor nano, mas você pode usar qualquer editor com o qual se sinta confortável.
Abra o seguinte arquivo usando nano:
nano /etc/rsyslog.d/50-default.conf
Localize a linha que começa com:
#cron.*
Remova o comentário desta linha removendo o hash (#) sinal. Em seguida, salve e saia do arquivo pressionando Ctrl + Xentão aperte S e bateu Digitar.
Reinicie o serviço rsyslog emitindo este comando:
sudo service rsyslog restart
Agora você receberá logs no cron.log arquivo localizado no /var/log diretório.
Se o seu terminal não conseguir buscar nenhum log, isso pode significar que o cron não está em execução. Nesse caso, confirme se o cron está funcionando ou não usando outros métodos.
3. Executando um cron Job no Linux
Você também pode verificar se o cron está funcionando simplesmente criando um cron job de teste e executando-o. Se o trabalho conseguir executar a tarefa, isso significa que está funcionando bem.
Primeiro você precisa criar um script Bash. O script Bash permite automatizar tarefas diárias no Linux.
Vamos criar um script Bash que irá imprimir “meu cronjob está funcionando!” em um arquivo TXT. Para criar o arquivo, primeiro descubra seu diretório de trabalho atual usando este comando:
pwd
Crie um arquivo no diretório atual usando o comando touch:
touch file.txt
Depois disso, crie um arquivo Bash usando nano:
nano script.sh
Adicione o seguinte conteúdo ao arquivo:
#! /usr/bin/bash
echo "my cronjob is working!" >> /home/username/file.txt
Certifique-se de fornecer o local correto do arquivo de texto que você criou. Salve e saia do arquivo pressionando Ctrl + Xentão Se bateu Digitar.
Dê permissões de execução ao script Bash:
chmod +x script.sh
Agora crie um cron job para executar o script. Para fazer isso, abra o arquivo crontab com:
crontab -e
Digite a seguinte linha no final do arquivo.
* * * * * /path/to/script.sh
Os cinco asteriscos correspondem ao horário de execução, em que o primeiro asterisco representa os minutos (0-59), o segundo representa as horas (no formato 24 horas, então 13h é 13, meia-noite começa em 0), o o terceiro asterisco significa o dia (0-7, 0 e 7 são domingo), o quarto indica o mês e o último asterisco indica o ano.
O nome do arquivo executável e seu caminho também são mencionados no arquivo.
Depois de salvar e fechar o arquivo, você verá um “crontab: instalando o novo crontab”Mensagem no terminal.
Para verificar se o cron job funcionou ou não, vá para o diretório de arquivo.txt e imprima seu conteúdo no terminal usando cat:
cat file.txt
Isso indica que o cron está funcionando bem.
4. Verifique os processos em execução no Linux
Outra maneira de verificar se o daemon cron está funcionando é listando os processos em execução no seu sistema. Você pode conseguir isso usando o comando ps. O daemon cron aparecerá na saída como crond.
ps aux | grep cron
Isso confirma que o processo cron está em execução no seu sistema Linux.
Automatize e agende tarefas do sistema com cron
cron é um dos utilitários mais vitais do Linux que permite que o sistema funcione com eficiência. Às vezes você precisa verificar se o cron está funcionando enquanto soluciona problemas do sistema.
Você pode conseguir isso verificando os logs do cron ou vendo os processos em execução no seu sistema. Você também pode verificar o status do cron usando o utilitário systemctl. Além disso, executar um cron job de teste também pode informar se o serviço está em execução ou não.
O bom funcionamento do cron permite automatizar e agendar tarefas diárias do sistema. A maioria dos cron jobs são criados automaticamente por aplicativos instalados. Automatizar e agendar tarefas melhora o desempenho geral do sistema e o mantém saudável.