Como usar Timers Systemd como alternativa ao Cron

Como um usuário Linux, você provavelmente conhece o cron. Ele funcionou como um agendador de tarefas baseado no tempo por muitos anos. Agora, muitos usuários estão vendo os temporizadores de execução do Systemd começando a substituir o domínio do cron.

Como usar Systemd Timers como alternativa ao Cron - Linux

 Este artigo discutirá os fundamentos de como configurar o cronômetro e verificar se ele funciona corretamente no sistema.

Instalação?

Se você já estiver usando o sistema de implementação Systemd como o sistema init - muitas distribuições populares do Linux o executam por padrão, incluindo Arch, Debian, Fedora, Red Hat e Ubuntu - você verá cronômetros já em uso. Não há nada a fazer além de usar esse recurso já instalado.

Lista de temporizadores existentes

A maneira mais fácil de verificar se há um cronômetro em seu computador é com o comando:

systemctl list-timers

Você não precisa executar este cartão.

systemctl list-timers --all

A opção –all aqui também exibe temporizadores inativos. Atualmente não há timers inativos neste sistema.

Você deve encontrar uma saída semelhante à seguinte imagem:

Como usar Systemd Timers como alternativa ao Cron - Linux

Você pode ver a data e a hora em que cada cronômetro estará ativo, a contagem regressiva até aquele ponto, a quantidade de tempo decorrido desde que começou a funcionar, o nome da própria unidade do cronômetro e o serviço que cada unidade do cronômetro ativa.

Todos os temporizadores devem ser emparelhados com o serviço correspondente. Na próxima seção, você verá como criar um arquivo “.timer” que ativa um arquivo “.service”.

Crie um novo cronômetro

Você pode criar um novo cronômetro configurando um arquivo.cronômetro Personalizado em "/ etc / systemd / system /." Ao criar um novo cronômetro para Arquivo de serviço dinâmico de DNS para DuckDNS , Acabei com este texto:

[Unit]

Description=Update duckdns dynamic DNS

[Timer]

OnCalendar=*-*-* 11:43:00

Persistent=true

[Install]

WantedBy=timers.target

1. Seção [Unidade]

A opção “Descrição =…” no arquivo informa o nome / descrição do próprio cronômetro. Nesse caso, “duckdns.timer” atualizará meu dns dizendo ao arquivo “duckdns.service” para executar uma série de comandos.

Você pode alterar a sintaxe após "Description =" para dizer o que quiser.

2. Seção [Timer]

"OnCalendar =…" Aqui está uma maneira de informar o cronômetro quando ativado. * - * - * denota “ano - mês - dia, e os asteriscos significam que funcionará todos os dias de cada mês de cada ano a partir de agora. A hora após os asteriscos mostra a que hora do dia o cronômetro deve estar funcionando.

"Persistent = true" significa apenas que o cronômetro será ativado automaticamente se não tiver ocorrido o horário de início anterior. Isso pode acontecer porque o computador foi desligado antes da ocorrência do evento. Isso é opcional, mas recomendado.

3. Seção [Instalar]

Finalmente, parece "WantedBy = timers.target" Que cronômetros systemd Ele vai usar este arquivo .cronômetro. Esta linha no arquivo exibe a string de dependência de um arquivo para outro. Você não deve excluir ou alterar esta linha.

outras opções

Você pode encontrar muitos outros recursos examinando a página homem mando مع man systemd. timer. Vá para a seção "OPÇÕES" para descobrir as opções de Precisão, Tenacidade e Pós-corrida.

Timer ligado

Ative qualquer cronômetro que você criou com a sintaxe systemctl habilitar و SystemCTL Iniciar.

sudo systemctl enable duckdns.timer

sudo systemctl start duckdns.timer

Olhe novamente para os timers da lista systemctl para ver o seu cronômetro em ação.

Como usar Systemd Timers como alternativa ao Cron - Linux

Você pode descobrir se o seu cronômetro está funcionando conforme o esperado, verificando seu arquivo de serviço com status systemctl. Nesse caso, você pode ver que no meu caso ele funciona às 11:43:00 como deveria ser.

Como usar Systemd Timers como alternativa ao Cron - Linux

Conclusão

Embora muitos programas de terceiros, incluindo DuckDNS , Vem com scripts que permitem que eles atualizem conforme necessário, criando temporizadores em Systemd Essa é uma habilidade útil de se conhecer. Foi criado um cronômetro para DuckDNS Aqui não é necessário, mas ilustra como outros tipos de temporizadores funcionarão Systemd.

Este conhecimento será útil, por exemplo, para criar e executar scripts Bater Seu próprio. Você pode até mesmo usá-lo para alterar o cronômetro atual para se adequar melhor às suas preferências. Além disso, é sempre uma boa ideia saber como seu computador funciona, e como Systemd Ele controla muitas funções básicas, esta peça do quebra-cabeça pode ajudá-lo a entender melhor como os eventos são acionados a cada dia.

Obrigado por acompanhar o artigo. Boa sorte ao criar seus próprios temporizadores.

Ir para o botão superior