Estamos fazendo uma lista de softwares e ferramentas para Linux usados como guia para a lista dos sete pecados capitais. Como nos artigos anteriores, usamos a preguiça como desculpa para falar sobre ferramentas de automação no Linux. Um deles em anacron. Neste artigo veremos como é a configuração do anacrontab. o anacrontab é aquele que diz ao anacron o que fazer e quando fazer.
No anacron a data das tarefas é fixada em dias e, caso o computador não esteja em execução no momento da execução de uma tarefa, ele inicializa ao inicializar.
A configuração do anacrontab
Inicialmente o anacron procura a lista de tarefas a executar no diretório /etc/anacrontab
. As tarefas devem ser escritas no seguinte formato:
período retraso identificador del trabajo comando donde:
- período: Frequência com que o trabalho deve ser realizado. Pode ser expresso em dias (sua abreviação em inglês) período ( @daily, @weekly, ou @monthly para dia, semana ou mês) ou com números (1 para dia, 7 para semana, 30 para mês e qualquer número para período arbitrário de dias.
- atraso: A quantidade de tempo a esperar antes de iniciar o trabalho. Por exemplo 360 para executar uma tarefa às 6 da manhã.
- identificador de trabalho: Nome atribuído ao trabalho para distingui-lo de outros em relatórios de erros e resultados
- Comando: É a instrução que o anacron deve executar no momento indicado.
.
Como nossa intenção é usar o anacron para tarefas que não tenham a ver com administração do sistema, vamos replicar os diretórios usados pelo cron em nossa pasta de usuário local. nós fazemos isso com
mkdir -p ~/.local/etc/anacrontab: ~/.local/etc/cron.daily ~/.local/etc/cron.weekly ~/.local/etc/cron.daily ~/.var/spool/anacron
Com isso criamos os diretórios para salvar os diferentes scripts diários, semanais e mensais, bem como o local onde será salvo o relatório da última execução do anacron.
Finalmente, dizemos ao anacron para usar nossas pastas de usuários locais em vez das do sistema.
anacron -fn -t ~/.local/etc/anacrontab -S ~/.var/spool/anacron
Agora vamos editar um arquivo de configuração. Fazemos isso a partir do terminal com:
nano ~/.local/etc/anacrontab:
No documento que se abre adicionamos estas linhas:
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
Essas linhas cumprem as mesmas funções que já explicamos para o crontab. Indique que você deve usar o Bash como um interpretador de comandos e em quais diretórios encontrar os executáveis. Salvamos o documento com Maio + 0 e fechamos com Deslocamento + X.
O nome e a localização das pastas cron que criamos é uma escolha arbitrária. Optei por manter os padrões para não confundir os leitores que necessitam de informações adicionais de outras fontes. Desde que o caminho para o script seja indicado no acrontab, você pode usar a pasta e o caminho de armazenamento preferidos. O mesmo vale para o identificador de trabalho.
Existem duas outras variáveis que podemos configurar:
- START_HOURS_RANGE
- RANDOM_DELAY
: define o intervalo de tempo em que os trabalhos serão iniciados (ou seja, executa trabalhos apenas durante as seguintes horas).
: Isso define o atraso aleatório máximo adicionado ao atraso definido pelo usuário de um trabalho (o padrão é 45).
Qual é a diferença entre cron e anacron?
cron é o que em sistemas e derivativos é conhecido como demônio ou seja, um programa que roda em segundo plano e sem intervenção do usuário. Destina-se a servidores, ou seja, um equipamento que funciona quase permanentemente sem a necessidade de atenção de ninguém, mas requer tarefas de manutenção frequentes.
anacron é um programa normal mais adequado para desktops Eles não estão continuamente ligados. Por isso, ao contrário do cron, onde a menor unidade de tempo é o minuto, ele funciona com uma frequência mínima de um dia.
Pela mesma razão, o cron não inclui alternativas caso o computador não esteja ligado.ou enquanto o anacron passa pelas tarefas pendentes no login. Quando encontrar um trabalho não iniciado no horário definido, ele executará o comando especificado no campo de comando após aguardar o número de minutos especificado no campo de atraso. Em seguida, ele registrará a data em um arquivo de carimbo de data/hora.