Notícias
NOVO: Acesso ao GPT via API a partir do Painel de Controle
Serverspace Black Friday
SS
June 17, 2024
Atualizado June 18, 2024

Como usar o CRON no Linux?

Linux Maintenance

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
check-installations
Screenshot №1 — Verificar o cron de instalação

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
Task for cron
Screenshot №2 — Tarefa para o cron

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.

Se esses comandos não lhe parecerem simples, substitua o editor pelo nano, onde os controles podem ser mais claros.

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
List of cron
Screenshot №3 — Lista de cron

Ó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:

 Result of cron task
Screenshot №4 — Resultado da tarefa cron

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:

Logs of cron
Screenshot №5 — Logs do cron

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.

1
Screenshot №6 — Criar servidor

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:

 Clean file
Screenshot №7 — Limpar arquivo

Depois de verificar se o utilitário executou o comando apropriado, podemos declarar o domínio bem-sucedido do CRON!

Avaliação:
5 fora de 5
Аverage rating : 5
Avaliado por: 1
CEP 01311-930 São Paulo Avenida Paulista, nº 1765, 7º andar, Cj. 72, CV 10172, Bela Vista
+ 55 11 5118-1047
ITGLOBAL.COM BR LTDA

Você também pode gostar...

Usamos cookies para melhorar sua experiência no Serverspace. Ao continuar a navegar em nosso site, você concorda com o Uso de Cookies e com a Política de Privacidade.