Eu uso OnUnitActiveSec = 12h para renovar a cada 12 horas. Aqui está o meu certbot-renewal.timer completo:
[Unit]
Description=Timer for Certbot Renewal
[Timer]
OnBootSec=300
OnUnitActiveSec=12h
[Install]
WantedBy=multi-user.target
em uma máquina Arch linux hospedando um nginx Eu quero renovar automaticamente seus certificados LetsEncrypt. Eu escrevi um .service e .timer para isso:
#letsencrypt-update.service
[Unit]
Description=LetsEncrypt Update Service
[Service]
Type=oneshot
ExecStart=/usr/bin/letsencrypt renew --quiet
#letsencrypt-update.timer
[Unit]
Description=LetsEncrypt Update Timer
[Timer]
OnCalendar=03,21:22
Persistent=true
[Install]
WantedBy=basic.target
Por documentação do certbot , a atualização do LetsEncrypt deve ser executada duas vezes por dia, por systemd.time documentation deve ser possível executar o serviço às 03:22 e 21:22 separando as horas por vírgula, mas quando reativar o temporizador, a próxima execução em systemctl list-timers
é em 03:22 e não em 21:22 (são 10 horas aqui).
Por que isso? O systemd precisa executar o timer 03:22 antes de executar o 21:22?
Eu uso OnUnitActiveSec = 12h para renovar a cada 12 horas. Aqui está o meu certbot-renewal.timer completo:
[Unit]
Description=Timer for Certbot Renewal
[Timer]
OnBootSec=300
OnUnitActiveSec=12h
[Install]
WantedBy=multi-user.target
A configuração original do Meilon parece estar ok. Mas eu usaria isso como configuração do timer:
#letsencrypt-update.timer
[Unit]
Description=LetsEncrypt Update Timer
PartOf=%p.service
[Timer]
OnCalendar=03,21:22
RandomizedDelaySec=600
Persistent=true
[Install]
WantedBy=basic.target
PartOf =% p.service - vincule as duas unidades juntas
RandomizedDelaySec = 600 - use um atraso de início aleatório (por exemplo, 10 minutos ou mais) para aplicar "select um minuto aleatório dentro de uma hora para suas tarefas de renovação "