systemd timer a cada X dias às 04:00

1

Eu tenho lido em

OnCalendar=

Infelizmente, não encontrei nenhuma informação sobre como agendar um evento em outro dia além de definir um dia da semana, o que faria com que ele acontecesse semanalmente.

Eu preciso disso para rodar a cada 14 dias. E em uma hora especificada (digamos, 4am). Isso é possível com o systemd?

    
por lockheed 19.03.2015 / 18:53

1 resposta

2

I need it to run every, say, 14 days. And at a specified hour (say, 4am). Is this possible with systemd?

A maneira mais fácil de obter aproximadamente a cada 14 dias é fazer isso duas vezes por mês.

[Install]
WantedBy=default.target

[Unit]
Description=Every fortnight.

[Timer]
OnCalendar=*-*-1,15 4:00:00
Unit=whatever.service

Essa sintaxe é explicada em man systemd.timer ; *-*-1,15 é o primeiro e o décimo quinto dia de todos os meses de cada ano.

Se você quisesse experimentar exatamente a cada 14 dias a partir do início do serviço:

[Timer]
OnActiveSec=14d

Mas há uma pegadinha aqui: acho que você teria que ter o sistema o tempo todo. Existe uma opção Persistent para ter "a hora em que a unidade de serviço foi ativada pela última vez ... armazenada no disco", mas de acordo com a página man "essa configuração só afeta os timers configurados com OnCalendar".

    
por 19.03.2015 / 19:48