Автоматическое обновление пакетов

Я заставил это работать с setsid. Моя часть ВЫПОЛНЕНИЯ правила udev:

RUN+="/bin/bash script.sh"

затем в сценарии:

#!/bin/bash
if [ "$1" != "fo_real" ]; then
  /usr/bin/setsid $(/usr/bin/dirname $0)/$(/usr/bin/basename $0) fo_real &
  exit
fi

Rest of script is here....

Первый вызов к возвратам сценария со статусом выхода 0, но второй вызов к сценарию продолжает бежать с PPID = 1.

5
06.01.2019, 23:41
2 ответа

sudo apt-get dist-upgrade очень безопасно работать, так как он ничего не сделает с системой, вместо того, чтобы остановиться, чтобы попросить вашего подтверждения;) Вы должны добавить переключатель -y, который предназначен для автоматического обновления и заставляет apt предположить, что вы всегда отвечаете "да" на вопросы: sudo apt-get -y dist-upgrade. В man-странице указано, что

Если возникает нежелательная ситуация, например, смена удерживаемого пакета, попытка для установки неаутентифицированного пакета или удаления необходимого пакета происходит, когда apt-get прерывает

но запуск без метки всегда рискованно, так что вы можете захотеть избежать этого.

Вы всегда можете проверить, что apt сделает, добавив переключатель -s, например: sudo apt-get -s dist-upgrade. Это переключает apt в режим имитации, в котором не происходит никаких изменений, и вы можете безопасно просмотреть все изменения, которые apt сделает в системе.

Существует также более консервативный режим работы apt, а именно apt-get апгрейд. В man-странице apt-get очень понятно, что она делает:

Получены пакеты, установленные в настоящее время, с новыми доступными версиями. и модернизированы; в настоящее время ни при каких обстоятельствах не устанавливаются пакеты удалены, или пакеты, которые еще не установлены, извлечены и установлены. Новые версии установленных в настоящее время пакетов, которые не могут быть обновлены без изменения статуса установки другого пакета будет оставлено на их текущую версию.

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

Не рекомендуется запускать sudo apt-get -y dist-upgrade через cron, особенно если ваши apt-источники случайно укажут на тестовую ветку (что, как правило, не должно происходить на серверах, особенно на производстве), так как вы можете оказаться с непригодной для работы системой. Вы в относительной безопасности, если используете стабильную ветку Debian, но я бы всё равно порекомендовал присутствовать при обновлении.

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

7
27.01.2020, 20:32

Для этого есть пакет ;-).

Помимо cron-apt, который можно настроить на автоматическое выполнение определённых обновлений, ещё одним полезным пакетом является unattended-upgrades , который разработан для безопасного автоматического применения обновлений безопасности.

Кроме того, поскольку Erathiel говорит, что автоматически запускать dist-upgrade небезопасно, но достаточно безопасно запускать его вручную каждый раз, когда есть что обновлять, при условии, что вы не ответите вслепую "Да".

8
27.01.2020, 20:32

Теги

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