Como automatizar tarefas regulares com o Cron no CentOS 8
O Cron é um serviço que é executado em segundo plano e inicia tarefas configuradas em um cronograma. Isso o torna muito útil para a manutenção do servidor. Neste tutorial, daremos uma olhada em como automatizar tarefas comuns usando o cron no CentOS 8.
Instalando o cron no CentOS 8
O cron está presente no CentOS 8 por padrão. Se, por algum motivo, ele não estiver presente, você poderá instalá-lo com o comando:
Agora vamos executá-lo e adicioná-lo à inicialização:
Configurações básicas do cron
Para ajustar o tempo e a frequência de execução das tarefas, existe o comando crontab. Falaremos sobre ele mais tarde. Além disso, existem as seguintes pastas para facilitar a adição de tarefas:
- /etc/cron.hourly
- /etc/cron.daily
- /etc/cron.weekly
- /etc/cron.monthly
Os scripts localizados neles são executados com a frequência especificada. Para funcionar com êxito, os scripts devem ter direitos de execução e não devem conter pontos em seus nomes.
Por padrão, qualquer usuário pode criar tarefas. Para permitir a criação de tarefas para determinados usuários, adicione-os ao arquivo /etc/cron.allow. Para todos os outros, o acesso será negado.
Para restringir essa capacidade a um usuário específico, basta adicionar o login dele ao arquivo /etc/cron.deny.
O Cron grava os logs no seguinte arquivo: /var/log/cron.
Ajuste fino das tarefas do cron
Para gerenciar tarefas com a capacidade de especificar a hora exata e a frequência de execução, use o comando:
A configuração do agendador será aberta em seu editor de texto padrão (geralmente o vi). Para configurar outro editor de texto padrão, use o comando (insira seu editor de texto favorito em vez do "nano"):
Para exibir as configurações atuais do cron, execute:
Para exibir as configurações do cron de outro usuário, digite:
Para editar:
O uso do comando crontab fornece uma verificação de sintaxe ao salvar para evitar erros. É por isso que é melhor usar esse comando para configurar o cron. Para obter informações, o arquivo do agendador pode ser editado diretamente. Ele está localizado em /var/spool/cron/.
Também vale a pena observar que as tarefas atribuídas serão executadas em nome do usuário que as adicionou ao cron.
Os arquivos cron usam a seguinte sintaxe:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * command to be executed
O sinal * significa todos os valores válidos. Exemplo de trabalho do cron:
O script /opt/script.sh será executado no dia 15 de cada mês às 22:30.
Caracteres especiais e expressões do cron
Vírgula (,). No cronograma, você pode especificar vários valores separados por vírgulas para executar a mesma tarefa em horários diferentes:
Com esse registro, a tarefa será iniciada nos dias 10, 20 e 30 de cada mês.
Barra (/). A barra é usada para indicar uma etapa. Por exemplo, a execução de uma tarefa a cada 10 dias terá a seguinte aparência:
Hífen (-). Para especificar um intervalo de valores, há um hífen. Por exemplo, execução diária do dia 10 ao dia 20 do mês:
Variáveis especiais do cron:
- @reboot - executado na inicialização do sistema
- @yearly ou @annually - uma vez por ano
- @monthly - uma vez por mês
- @weekly - uma vez por semana
- @daily - uma vez por dia
- @hourly - a cada hora
- @midnight - à meia-noite
Exemplo: