O que são temporizadores do systemd?
O temporizador do systemd é um substituto moderno e poderoso para os trabalhos cron tradicionais, projetado para agendar e acionar unidades de serviço do systemd. Ele simplifica a automação no Linux ao oferecer mais flexibilidade, registro e tratamento de dependências do que o sistema cron clássico.
Por que usar temporizadores do systemd em vez do cron?
Os temporizadores do systemd oferecem várias vantagens sobre o cron, o que os torna a escolha preferida para a automação de tarefas em ambientes Linux:
- Gerenciamento unificado: gerencie temporizadores junto com outras unidades do systemd (iniciar, parar, habilitar, desabilitar).
- Registro aprimorado: use
journalctlpara registros detalhados e monitoramento de status. - Agendamento flexível: suporta tanto a sintaxe baseada em calendário quanto temporizadores monotônicos (relativos).
- Tratamento de eventos perdidos: recupera automaticamente os eventos perdidos após uma reinicialização.
Exemplo rápido: executar um script todos os dias à meia-noite
Aqui está um guia passo a passo para criar um temporizador do systemd que executa um script diariamente à meia-noite:
1. Crie uma unidade de serviço
A unidade de serviço define a ação a ser executada — neste caso, executar um script.
Crie o arquivo /etc/systemd/system/daily-script.service:
[Unit]
Description=Run my daily script
[Service]
Type=oneshot
ExecStart=/usr/local/bin/myscript.sh
2. Crie uma unidade de temporizador
A unidade de temporizador agenda quando o serviço deve ser executado.
Crie o arquivo /etc/systemd/system/daily-script.timer:
[Unit]
Description=Run my daily script every day at midnight
[Timer]
OnCalendar=*-*-* 00:00:00
# The format is: YYYY-MM-DD HH:MM:SS
# The above line schedules the task to run once per day at midnight.
Persistent=true
[Install]
WantedBy=timers.target
3. Habilite e inicie o temporizador
Execute os comandos a seguir para recarregar o systemd, habilitar o temporizador e iniciá-lo imediatamente:
sudo systemctl daemon-reload
sudo systemctl enable --now daily-script.timer
Como verificar o status e os registros
Depois que o temporizador estiver configurado, você pode monitorar o status e os registros dele com os comandos a seguir:
- Verificar temporizadores ativos:
systemctl list-timers
- Ver detalhes do temporizador:
systemctl status daily-script.timer
- Verificar os registros da execução do script:
journalctl -u daily-script.service
Referências
- Documentação oficial do systemd:
https://www.freedesktop.org/software/systemd/man/systemd.timer.html
Esta é a documentação oficial dos temporizadores do systemd, com detalhes sobre sintaxe, opções e exemplos. - Arch Wiki sobre temporizadores do systemd:
https://wiki.archlinux.org/title/Systemd/Timers
Um guia mantido pela comunidade, com exemplos práticos e dicas de solução de problemas. - Documentação da Red Hat sobre temporizadores do systemd:
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/system_administrators_guide/chap-managing_services_with_systemd#sect-Managing_Timers
Uma explicação detalhada dos temporizadores do systemd para uso corporativo. - Wiki de ajuda da comunidade Ubuntu:
https://help.ubuntu.com/community/systemd
Esta página oferece uma visão geral do systemd e inclui informações sobre temporizadores.
Resumo
Os temporizadores do systemd são uma solução robusta e moderna para a automação de tarefas no Linux. Eles oferecem mais confiabilidade, controle e integração com o systemd do que os trabalhos cron. Ao criar uma unidade de serviço e uma unidade de temporizador simples, você pode automatizar tarefas como backups, sincronização, trabalhos de limpeza e muito mais. Quer você gerencie um servidor pessoal ou uma infraestrutura corporativa, os temporizadores do systemd são uma ferramenta essencial para uma automação eficiente no Linux.