Рейтинг:0

Что обеспечит надежную работу автоматических обновлений на ноутбуке?

флаг cn

Я боролся с различными формами, год за годом. Видеть здесь и здесь. Либо я что-то неправильно настраиваю (маловероятно), либо я использую свой компьютер странным образом (я этого не вижу).

Мой компьютер - ноутбук:

  1. Раньше выключал на ночь - в результате автоматическое обновление часто не мог подключиться к Интернету, когда хотел. Результат: мой компьютер месяцами оставался без обновлений и небезопасным.
  2. В эти дни я в основном остаюсь в системе, но ночью подключение к точке доступа недоступно. Итак, теперь автоматическое обновление запускается, но не находит ничего для обновления, видимо, потому, что удачное обновление не удалось успешно запустить. Результат: мой компьютер месяцами не обновлялся и не был защищен.

Как я могу обеспечить системад таймер для удачное обновление не проходит недели и месяцы между запусками?

Типичный вывод /var/журнал/автоматических обновлений/автоматических обновлений.журнал

2022-02-09 06:30:27,331 ИНФОРМАЦИЯ Запуск сценария автоматического обновления
2022-02-09 06:30:27,334 INFO Допустимые источники: o=Ubuntu,a=focal, o=Ubuntu,a=focal-security, o=UbuntuESMApps,a=focal-apps-security, o=UbuntuESM,a =focal-infra-security, o=UbuntuESM,a=focal-security
2022-02-09 06:30:27,335 INFO Исходный черный список: 
2022-02-09 06:30:27,336 INFO Исходный белый список (не строгий): 
2022-02-09 06:30:40,279 ИНФОРМАЦИЯ Не найдены пакеты, которые можно обновить без присмотра, и нет ожидающих автоматического удаления

sudo systemctl статус apt-ежедневно:

* apt-daily.service - Ежедневная загрузка apt
     Загружено: загружено (/lib/systemd/system/apt-daily.service; статично; предустановка поставщика: включена)
     Активный: неактивный (мертвый)
TriggeredBy: * apt-daily.timer
  Условие: условие запуска не выполнено в среду 2022-02-09 20:42:17 EET; 4ч 17мин назад
             ââ ConditionACPower=true не было выполнено
       Документы: man:apt(8)

09 февраля, 20:42:17 tbox systemd[1]: проверка условий привела к пропуску действий по загрузке Daily apt>
строки 1-9/9 (КОНЕЦ)

sudo systemctl list-timers apt-daily:

СЛЕДУЮЩИЙ СЛЕВА ПОСЛЕДНИЙ ПРОЙДЕННЫЙ БЛОК АКТИВИРУЕТ>
Чт 2022-02-10 16:15:14 EET 15ч осталось Ср 2022-02-09 20:42:17 EET 4ч 22мин назад apt-daily.timer apt-daily>

1 таймер в списке.
Передайте --all, чтобы увидеть загруженные, но неактивные таймеры.
строки 1-5/5 (КОНЕЦ)

NB: несколько часов назад произошла перезагрузка. Не подключен, но был подключен к сети.

ЗАКЛЮЧИТЕЛЬНЫЙ ВЫВОД. Переходя к версии принятого решения ниже, сдвигая apt-daily.timer до времени, когда подключение к Интернету, скорее всего, будет доступно. Спасибо тем, кто помог. Конец.

Organic Marble avatar
флаг us
Почему бы просто не запускать обновления вручную раз в неделю?
Nmath avatar
флаг ng
Я не уверен, в чем проблема. Ваше устройство не может обновляться, если оно приостановлено или не подключено к Интернету иным образом. Кроме того, автоматические обновления обновляются только для безопасности и критических ошибок. Вам по-прежнему необходимо выполнять регулярное обслуживание, поэтому тот факт, что ваша система не обновляется месяцами, не является ошибкой автоматических обновлений.
флаг us
Как вы можете говорить, что отключение ноутбука во время запланированного запуска обновлений или отключение интернет-соединения - это проблема ОС? Может ли Canonical знать, когда ваш интернет активен? Измените таймер systemd, чтобы он выравнивался, когда вы знаете, что сетевое подключение установлено, или запускайте обновления вручную.
Sqerstet avatar
флаг cn
@OrganicMarble Потому что «просто» присматривать за персональным компьютером для получения обновлений безопасности кажется неоптимальным, или вы не согласны?
Organic Marble avatar
флаг us
Я не согласен с тем, что 30 минут раз в неделю — это «присмотр за детьми». По крайней мере, для моих малышек.
Sqerstet avatar
флаг cn
@Nmath Эти три вопроса связаны, но разные: здесь я сосредоточен конкретно на том, как исправить корень проблемы, которая, кажется, является таймером «подходящего обновления» - я считаю, что UU должен сделать это, отсюда и название. Если вы действительно не видите, что все это проблема, ну я не знаю, что сказать. С каких это пор пользователь Joe Ubuntu также должен «выполнять регулярное обслуживание» своего ноутбука, когда включены обновления безопасности? Я что-то пропустил? Я знаю, что UU отлично работает на серверах, но я думаю, что установил, что это не так на ноутбуке конечного пользователя.
Sqerstet avatar
флаг cn
@ doneal24 Очевидно, мы не согласны с тем, что должна делать потребительская ОС. Я считаю, что это должно обеспечить безопасность ноутбука. Ноутбуки по определению не всегда подключены к Интернету. Это абсолютно банальный и обыденный сценарий, и Ubuntu с ним не справится. Кстати, на трекере Canonical есть сообщение об ошибке - их линия, грубо говоря, заключается в том, что они изучают ее, но между тем это «вина apt». Если бы вы могли расширить свой последний совет до действенного ответа, это могло бы быть очень полезным.
флаг us
Я бы также сказал, что Windows или Mac OS не могут обрабатывать прерывистые и, возможно, короткие интернет-соединения для обновлений, поэтому проблема не ограничивается Ubuntu. Потребительские ОС не обеспечивают безопасность ноутбуков, если вы не можете поддерживать их подключение к серверам обновлений. У меня нет удобной системы Ubuntu, поэтому я не могу сказать, как изменить таймер systemd — достаточно просто для исследования. Еженедельное ручное обновление не является сложной задачей.
Sqerstet avatar
флаг cn
@ doneal24 Что ж, мы продолжим не соглашаться. Просить обычных пользователей не забывать устанавливать обновления безопасности на потребительском ПК — это катастрофическая дыра в безопасности уровня Windows-98. Mac OS не может этого сделать? Если ты так говоришь. Как ни странно, мой клиент синхронизации *может* это сделать. Какими бы несанкционированными ни были привычки моего ноутбука — подключение и отключение, Wi-Fi и отсутствие Wi-Fi, все виды сумасшествия! - мои фотографии всегда есть на следующий день. Это просто работает. Автоматических обновлений нет.
Sqerstet avatar
флаг cn
@Nmath И все же на самом деле есть вопрос. Это имеет больше смысла, чем многие другие на сайте. У вас есть ответ?
user535733 avatar
флаг cn
Где вывод журнала автоматических обновлений? Где выводится временная метка? Где находится статус systemctl для apt-daily-upgrade? Мы можем решить множество проблем, но мы не экстрасенсы — нам нужны данные для работы.
Sqerstet avatar
флаг cn
@user535733 user535733 Добавлен типичный вывод журнала UU. Где журнал ежедневного обновления?
user535733 avatar
флаг cn
Ваш журнал показывает, что автоматические обновления выполнялись правильно в 06:30. Сегодня не было найдено обновлений безопасности для загрузки. Это похоже на нормальное поведение. Что заставляет вас думать, что происходит что-то другое? Вы просматривали оставшуюся часть этого месяца? Вы тоже просматривали прошлый месяц? Это займет всего минуту.У меня было большое обновление безопасности примерно 21 января (libreoffice 21.10), и до и после было довольно тихо. Вы используете 20.04, так что у вас может быть по-другому... и тише.
Sqerstet avatar
флаг cn
@user535733 user535733 Ну да, конечно, видел, отсюда и разговор о «месяцах». Он ничего не находит - как показано - снова и снова, потому что исходники не обновляются. Когда я запускаю «apt update» вручную, он работает в следующий раз. Проблема в том, что UU и `apt` недостаточно умны, чтобы прослушивать событие подключения к Интернету или, возможно, переназначать его в случайное время и все чаще, пока оно не будет получено. И, видимо, они не разговаривают друг с другом. Я не понимаю деталей, я не настолько технарь. Не могли бы вы сказать мне, где найти журнал apt-daily-upgrade?
user535733 avatar
флаг cn
Вы уже видели это: «apt-daily-upgrade» — это автоматические обновления. Теперь вы говорите, что проблема заключается в apt-daily (не в apt-daily-upgrade, а не в автоматических обновлениях). Хорошо, покажите нам полный вывод `systemctl status apt-daily` и `systemctl list-timers apt-daily` Это широкие выходные данные, поэтому убедитесь, что ваш терминал достаточно широкий, чтобы уловить весь вывод.
Sqerstet avatar
флаг cn
@ user535733 Готово. Терминал был максимально широк, кажется тесным.
user535733 avatar
флаг cn
Ваш вывод показывает, что apt-daily пытался запуститься в 20:42 и повторит попытку завтра в 16:15. В этом нет ничего плохого. Причина, по которой он не подключался к сети, заключалась в том, что система работала от батареи: «Условие ACPower=true не было выполнено». Вы можете изменить этот параметр, если хотите, закомментировав соответствующую строку в `/lib/systemd/system/apt-daily.service`
Sqerstet avatar
флаг cn
@user535733 user535733 Хорошо, это очень полезно, спасибо.
Рейтинг:1
флаг jp

Проверка стандартной установки Ubuntu Server 20.04 выглядит так: автоматическое обновление пробеги вызываются apt-ежедневно-upgrade.timer. Это срабатывает ежедневно в 6 утра со случайной задержкой до часа.

root@ubuntu:~# systemctl cat apt-daily-upgrade.timer
# /lib/systemd/system/apt-daily-upgrade.timer
[Ед. изм]
Description=Ежедневное обновление и чистка
После=apt-daily.timer

[Таймер]
OnCalendar=*-*-* 6:00
RandomizedDelaySec=60м
Постоянный = истина

[Установить]
WantedBy=timers.target

Потенциально простым решением является переопределение в календаре настроить так, чтобы таймер срабатывал в то время, когда с большей вероятностью он будет в сети. Например

mkdir /etc/systemd/system/apt-daily-upgrade.timer.d
кошка <<EOF >/etc/systemd/system/apt-daily-upgrade.timer.d/override.conf
[Таймер]
ВКалендаре=
OnCalendar=*-*-* 12:00
EOF
systemctl демон-перезагрузка

Это запустит таймер в полдень вместо этого. автоматическое обновление должен запускаться только один раз в день по умолчанию. Это из-за настройки для APT:: Periodic:: Автоматическое обновление. Cherry выбирает комментарий от /usr/lib/apt/apt.systemd.daily

# APT::Periodic::Unattended-Upgrade "0";
# - запустить сценарий обновления безопасности "автоматическое обновление"
# каждые n дней (0=отключено)

Стандартное значение конфигурации для этого 1 день.

root@ubuntu:~# дамп apt-config APT::Periodic::Unattended-Upgrade
APT::Periodic::Unattended-Upgrade "1";

Вы можете настроить таймер чаще, чем один раз в день, добавив подходящую конфигурацию. Ссылка с комментариями https://unix.stackexchange.com/a/541426/147262 имеет несколько предложений. Вот простой пример добавления подходящей конфигурации

кот <<EOF > /etc/apt/apt.conf.d/90myuu
> APT::Periodic::Unattended-Upgrade "всегда";
> EOF

Если вы переопределите apt-ежедневно-upgrade.timer то вы можете сделать то же самое переопределение для apt-daily.timer. Это также имеет соответствующее значение конфигурации apt APT::Periodic::Update-Package-Lists.

РЕДАКТИРОВАТЬ Я изменил предложение с запуска ежечасно на запуск один раз в день в то время, которое с большей вероятностью будет в сети. Я понял, что настройка по умолчанию запуска один раз в день не зависит от того, автоматическое обновление на самом деле были какие-либо пакеты для обновления. Следовательно, автоматическое обновление может продолжать работать только тогда, когда он не в сети.

Комментарии

Есть ли потенциальные недостатки в таком разгоне ежедневного таймера?

По умолчанию обновления запускаются в одночасье, чтобы не мешать активности пользователей. У вас больше не будет такого удобства.

ConditionACPower=true не выполнено. Вы можете изменить эту настройку

Вы должны изменить этот параметр с помощью файла переопределения, а не путем изменения файла службы, установленного пакетом.

mkdir /etc/systemd/system/apt-daily-upgrade.service.d
кошка <<EOF > /etc/systemd/system/apt-daily-upgrade.service.d/override.conf
[Ед. изм]
ConditionACPower=false
EOF
systemctl демон-перезагрузка

В чем причина или недостатки переопределения apt-daily.timer?

apt-daily.timer запускает команды apt для обновления информации о пакете и загрузки доступных обновлений. Если эти команды продолжают выполняться, когда сеть недоступна, тогда автоматическое обновление может ничего не обновлять, потому что может не знать о доступных обновлениях.

Sqerstet avatar
флаг cn
Это очень полезно. Спасибо. Есть ли потенциальные недостатки в таком разгоне ежедневного таймера?
Sqerstet avatar
флаг cn
Связано: https://unix.stackexchange.com/a/541426/147262
Sqerstet avatar
флаг cn
Также необходимо следовать совету @user535733, верно?: «Причина, по которой он не подключился к сети, заключалась в том, что система работала от батареи: ConditionACPower=true не было выполнено. Вы можете изменить этот параметр, если хотите, закомментировав соответствующую строку в /lib/systemd/system/apt-daily.service"
Sqerstet avatar
флаг cn
В чем причина или недостатки переопределения apt-daily.timer?
Andrew Lowther avatar
флаг jp
@Sqerstet Я отредактировал сообщение, чтобы изменить свое предложение и ответить на ваши комментарии.
Sqerstet avatar
флаг cn
Теперь все становится намного яснее. Только одна последняя вещь, которую я не понимаю.Как вы говорите, фактическое обновление может выполняться в автономном режиме, если исходные коды уже обновлены. Так почему бы просто не сдвинуть apt-daily.timer на полдень и оставить apt-daily-upgrade.timer в покое?
Andrew Lowther avatar
флаг jp
@Sqerstet Мне нравится эта идея просто обновить `apt-daily.timer`. Я не рассматривал это, но теоретически я думаю, что это должно сработать для вашей ситуации. Все это требует реальной проверки.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.