Как запускать скрипт каждую субботу при загрузке с помощью systemd?

Как запускать скрипт каждую субботу при загрузке с помощью systemd?
[Unit] 
Description=run test service

[Timer]
OnCalendar=Sat *-*-* 00:00:01
Unit=test.service
Persistent=true

[Install]
WantedBy=timers.target

В примере выше все работает отлично. Но мне нужно загрузить свою систему Linux до 10 часов утра.

Моя цель —: Я хочу загружать Debian 10 в любое время каждую субботу, а затем запускать скрипт во время загрузки. Если я перезагружу свою машину Linux два или три раза в субботу (в один и тот же день), я не хочу запускать скрипт снова, только один раз. Возможно ли сделать это с помощью systemd?

Моя ОС Gnu-Linux — этоDebian GNU/Linux 10 (уничтожитель)и systemctl --version этосистемный 241 (241)

решение1

«Linux os» — слишком общее названиечтобы иметь возможность диагностировать вашу конкретную систему. Пожалуйста, выполните следующие четыре команды и сообщите результаты (включая ошибки, если команда недоступна). Отчет покажет, какая разновидность "linux os" установлена ​​и какая версия systemd запущена:

lsb_release -a
systemctl --version
/sbin/init --version
busctl --system get-property org.freedesktop.systemd1 \
                           /org/freedesktop/systemd1 \
                           org.freedesktop.systemd1.Manager \
                           Version

В текущей (по состоянию на август 2019 г.) версии systemd

Установите таймер реального времени на любое время в субботу.

OnCalendar=Sat *-*-* 00:00:01

И удали монолитный таймер.

OnBootSec=2

Эффект

Persistent=true

заключается в том, что система будет пытаться выполнить скрипт один раз в неделю после 00:00:01 каждую субботу. Скрипт будет запускаться только один раз каждую субботу, и обычно это будет первый раз, когда он будет загружен. Он будет запущен в любой другой день недели, если система не была включена в субботу, и он запустится в 00:00:01, если система была оставлена ​​на ночь в пятницу.

Постоянный=

Принимает логический аргумент. Если true, время последнего срабатывания сервисного блока сохраняется на диске. Когда таймер активируется, сервисный блок запускается немедленно, если он должен был сработать хотя бы один раз в то время, когда таймер был неактивен. Это полезно для наверстывания пропущенных запусков сервиса, когда машина была выключена. Обратите внимание, что этот параметр влияет только на таймеры, настроенные с помощью OnCalendar=. По умолчанию false.

Связанный контент