Как узнать, когда systemd запланирует apt для автоматического обновления моих пакетов?

На днях я узнал, что мой контейнер Docker был убит, так как демон docker был автоматически обновлен на ящике AWS, на котором я работал.

journald показал эти сообщения в соответствующем временном интервале:

Aug 06 05:56:01 ip-192-168-3-117 systemd[1]: Starting Daily apt download activities...
Aug 06 05:56:11 ip-192-168-3-117 systemd[1]: Started Daily apt download activities.
Aug 06 06:06:39 ip-192-168-3-117 systemd[1]: Starting Daily apt upgrade and clean activities...
Aug 06 06:06:48 ip-192-168-3-117 systemd[1]: Reloading.
Aug 06 06:06:48 ip-192-168-3-117 systemd[1]: Starting Message of the Day...
Aug 06 06:06:48 ip-192-168-3-117 systemd[1]: Reloading.
Aug 06 06:06:49 ip-192-168-3-117 systemd[1]: Reloading.
Aug 06 06:06:49 ip-192-168-3-117 systemd[1]: Stopping Docker Application Container Engine...

Как я могу узнать, когда запланирован этот запуск? Я просмотрел различные задания cron в /etc и подумал, что /etc/cron.daily/apt-compat был задействован, поскольку он содержал это в конце:

# delay the job execution by a random amount of time
random_sleep

# ensure we don't do this on battery
check_power || exit 0

# run daily job
exec /usr/lib/apt/apt.systemd.daily

но оказалось, что он никогда не доходит до этого, поскольку на самом деле он просто использует systemd. Я пропустил это в начале cron.daily/apt-compat:

# Systemd systems use a systemd timer unit which is preferable to
# run. We want to randomize the apt update and unattended-upgrade
# runs as much as possible to avoid hitting the mirrors all at the
# same time. The systemd time is better at this than the fixed
# cron.daily time
if [ -d /run/systemd/system ]; then
    exit 0
fi

Поэтому каким-то образом systemd запланировал запуск этого файла.

Этот файл, /usr/lib/apt/apt/apt.systemd.daily, в основном похож на сценарий, отвечающий за это, хотя я не могу найти никаких строк выше, таких как "Starting .* activities".

Итак, systemd составляет расписание, но где оно хранится? Где сказано запускать /usr/lib/apt/apt/apt.systemd.daily?

1
задан 15 August 2021 в 09:34

1 ответ

Это системный таймер. Вы можете проверить состояние таймеров systemd, используя:

systemctl list-timers

Он должен указать apt-daily.timer . Вы можете проверить его спецификацию, используя:

systemctl show apt-daily.timer

Файл находится в /lib/systemd/system/apt-daily.timer . (Не редактируйте этот файл напрямую, если хотите изменить таймер. См. Как переопределить или настроить службы systemd? )

4
ответ дан 20 August 2021 в 10:26

Другие вопросы по тегам:

Похожие вопросы: