O terminal Linux nos permite fazer coisas além de simplesmente digitar comandos. Neste caso falaremos sobre automatização de tarefas com o Cron. A automação nos permite não apenas evitar tarefas repetitivas, mas também fazer com que o computador as execute quando não estamos presentes. Isto é particularmente útil em servidores.
Cron é um daemon responsável por executar tarefas em um intervalo de tempo específico. Embora sua função seja lidar com tarefas regulares de manutenção do sistema, podemos adicionar outras que sejam do nosso interesse.
Quando falamos de demônios, não estamos nos referindo a um diabinho dentro do nosso computador. Na computação, um daemon é um aplicativo ou processo executado em segundo plano no sistema operacional sem exigir interação direta com o usuário. Suas responsabilidades incluem conexões de rede, impressão, servidores web e monitoramento de recursos.
Algumas de suas características principais
- Eles geralmente começam com a inicialização do sistema.
- Eles são executados em segundo plano, sem que o usuário precise saber da sua existência.
- Eles são projetados para executar tarefas permanentemente ou em reação a determinados eventos.
Automatizando tarefas com Cron
Se quisermos dizer ao Cron o que fazer, podemos fazer isso usando um arquivo crontab. É simplesmente um arquivo de texto que indica uma série de comandos que o cron deve executar em uma data especificada. Existem dois tipos de arquivos crontab: o arquivo crontab criado pelo sistema e o arquivo crontab criado pelo usuário.
Em nenhuma circunstância devemos tocar no arquivo crontab do sistema, que é usado pelo Linux para configuração e manutenção. É impossível modificá-lo por engano, pois este arquivo está localizado na pasta. /etc/crontab.
Criando nossos próprios crontabs
O Cron exige que as tarefas que atribuímos a ele tenham os parâmetros indicados nesta ordem:
h: Hora de início no intervalo de 0 a 23.
m: Minutos no intervalo 0-59.
d: Dia do mês entre o intervalo 1-31
mês: Especifica o mês do ano com um intervalo de 1 a 12
s: Dia da semana com intervalo de 0 a 6
Esses dados vão para dentro do arquivo crontab. Para criar este arquivo escrevemos o comando:
crontab –u nombre de usuario –e
Se o crontab for para o usuário padrão, podemos omitir o parâmetro -u
Quando o executarmos pela primeira vez, ele nos dirá que o arquivo não existe e sugerirá criar um e editá-lo com um dos editores instalados no computador.
Alguns pontos a serem lembrados ao editar o crontab são:
- Cada tarefa vai em uma linha
- Em todos os casos, deve ser indicada a data e a hora em que cada tarefa deve ser executada. Para indicar a periodicidade (por exemplo, terça-feira às 18h), asteriscos são escritos no lugar do restante dos parâmetros.(*)
- É possível atribuir mais de um valor a um parâmetro (Por exemplo terça e quinta às 18h) Separando ambos os valores por vírgulas.
- É necessário deixar espaços entre os parâmetros.
- Especifique o diretório onde o iniciador de comandos está localizado.
Para dar um exemplo, se quisermos reiniciar o computador todos os dias às 19h:
0 19 * * * /sbin/reboot
Para que o reinício seja apenas às quartas-feiras, a instrução seria:
0 20 * * 3 /sbin/reboot
.
Existem alguns atalhos que nos permitem evitar escrever todos os parâmetros:
@hourly:Se quisermos executar um comando no início de cada hora.
@diário: Para executar o comando no início de cada dia.
@semanalmente: Execute o comando no primeiro dia da semana.
@por mês: O comando é executado no primeiro minuto de cada mês.
@anual:O mesmo, mas no primeiro minuto de cada ano.
Alguns exemplos de uso deste comando:
@daily /bin/sh /ruta_al_script/nombre_del_script.sh
Execute instruções personalizadas em um script bash no início do dia.
@hourly /bin/python3 /ruta_al_script/nombre_del_script.py
Faz um script python ser executado a cada hora.
Devemos sempre garantir que os scripts tenham permissões de execução.