Ao trabalhar com o Linux ou com outras distribuições diariamente, há uma lista de tarefas que precisam ser feitas de hora em hora, diariamente ou mensalmente. No entanto, ninguém cancela o fator humano e é muito fácil esquecer de executar uma tarefa simples ou uma lista rotineira delas. Para automatizar esse tipo de coisa, existe um agendador de tarefas - CRON! Ele permite que você execute os comandos necessários em uma determinada programação ou intervalo.
O que é o Cron e como posso encontrá-lo?
O Cron é um utilitário de sistema para automatizar a execução de tarefas, scripts, comandos de utilitários e serviços com uma programação predefinida de horários ou intervalos precisos. Essa solução permite que você execute tarefas rotineiras e constantes sem a participação do usuário. O Cron é composto de várias partes:
- arquivos de configuração crontab com comandos a serem executados, quando e qual comando deve ser executado. Um arquivo separado pode ser criado para cada usuário, geralmente armazenado no diretório /etc/cron.d;
- serviço crond, que verifica periodicamente os arquivos com trabalhos para executá-los.
Vamos verificar se o utilitário está instalado em seu sistema e onde encontrá-lo. Para gerenciadores de pacotes do tipo RPM, use o comando:
dnf info crontabs
Se você estiver usando o gerenciador apt, use apt list para pesquisar:
apt list | grep ‘.*cron.*\binstalled\b.*’
Isso exibirá uma lista de utilitários instalados mencionando o cron, a partir da qual você pode inferir o software instalado!
Instalação do cron
Se você descobrir que os pacotes não estão presentes em seu dispositivo, será necessário instalá-los por meio do comando para distribuições do tipo apt. Como o Debian e o Ubuntu:
apt update && apt upgrade && apt install cron
Para sistemas do tipo RPM, o comando para instalar um pacote com suas dependências pode ter a seguinte aparência:
dnf update && dnf upgrade && dnf install crontabs
Depois de nos certificarmos de que todas as dependências do pacote estão instaladas por meio do comando crontab, podemos passar para sua sintaxe!
Sintaxe e princípio de funcionamento do cron
Há alguns blocos básicos usados para criar uma tarefa no cron:
minutes hours hours days days months days_weeks username /path/to/command
O primeiro bloco com valores de tempo que, em ordem, indicam o momento em que a tarefa deve ser executada. Em seguida, vem o nome do usuário a partir do qual ela deve ser executada, bem como o caminho completo para o comando. Se o nome não for especificado, a tarefa será atribuída ao usuário pelo qual foi criada.
Por exemplo, precisamos exibir um texto na hora exata mais próxima e gravá-lo em um arquivo. Para fazer isso, vamos escrever o comando:
crontab -e
Uma janela com campos vazios será aberta no terminal, esse é o nosso arquivo de tarefas, no qual podemos escrever um deles. Para fazer isso, vamos acessar o modo de edição por meio do botão i e escrever a seguinte linha:
27 7 * * * * * echo ‘Good morning $USER!’ >> /tmp/hello.txt
Isso significa que todos os dias, às 7 horas e 27 minutos, o comando write to file será executado! Em seguida, pressione Esc para sair do modo de edição e digite :wq para salvar e sair do editor.
Para fazer isso, digite o seguinte comando; se não for difícil, pule esta etapa:
apt update && apt upgrade && apt install nano \
EDITOR=nano
Vamos voltar ao nosso gerenciador de tarefas! Depois que uma tarefa for adicionada, o cron emitirá um alerta sobre ela e, para verificar a lista de tarefas atuais, você precisará escrever:
crontab -l
Ótimo! A tarefa foi criada e agora precisamos verificar sua operacionalidade. Para isso, podemos aguardar o tempo para o qual a tarefa foi definida ou executar o arquivo à força por meio do comando:
run-parts /etc/cron.d/
Depois disso, corrigiremos o resultado:
O Cron trabalhou em uma tarefa e gravou dados em um arquivo, mas e se a tarefa não for concluída? Como posso saber quais ações o cron executou?
Logging de cron
Para visualizar as ações do utilitário, é necessário abrir um arquivo de texto com os registros por meio do seguinte comando:
tail /var/log/cron
Ou use outro caminho:
tail /var/syslog | grep ‘cron’
O que abrirá uma lista de atividades recentes:
Nas últimas linhas, você pode ver que o serviço CROND cronometrou o tempo limite do comando e depois foi encerrado. Se a lista de tarefas no cron estiver desatualizada, você poderá excluir todas as tarefas por meio do comando:
crontab -r
Todas as etapas do tutorial podem ser executadas em poderosos servidores em nuvem. O Serverspace fornece servidores VPS isolados para uso comum e virtualizado.
Levará algum tempo para implementar a capacidade do servidor. Depois disso, você poderá se conectar de qualquer uma das formas convenientes!
Exemplo de uso do cron
Se considerarmos tarefas reais, o cron ajuda a rotacionar arquivos e registros temporários, limpar diretórios temporários e criar backups. Tanto para bancos de dados quanto para outros sistemas. Por exemplo, vamos considerar a limpeza de diretórios, todos os dias em intervalos de 2 horas e 0 minutos com o comando cleanup com base no armazenamento de mais de um dia:
0 */2 * * * /usr/bin/find /tmp -type f -mtime +1 -exec rm {} \
Vamos verificar se ele funciona usando os utilitários e métodos descritos acima:
Depois de verificar se o utilitário executou o comando apropriado, podemos declarar o domínio bem-sucedido do CRON!