Это руководство должно работать для операционной системы DragonFlyBSD, FreeBSD и HardenedBSD. Оно охватывает ТОЛЬКО обновления пакетов и не применяет никаких других исправлений к базовой системе или ядру.
Если вы используете FreeBSD 15.0-RELEASE или выше, базовая система также будет обновляться через pkg. В противном случае вам по-прежнему потребуется использовать freebsd-update или сборку из исходного кода. Для получения дополнительной информации ознакомьтесь с официальной Wiki FreeBSD или Руководством.
ПРИМЕЧАНИЕ: Все шаги, описанные на этой странице, предполагают, что ваш сервер предназначен для функционирования узла Tor (моста/сторожевого/выходного). Обратите внимание, что службы будут перезапущены во время процесса автоматического обновления программного обеспечения, описанного здесь.
1. Создайте скрипт обновления
Давайте используем /root/bin/pkg-upgrade.sh для нашей настройки. Вот как это должно выглядеть:
#!/bin/sh
PATH="/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin"
RAND=$(jot -r 1 1980 5940)
ENV="BATCH=yes IGNORE_OSVERSION=yes"
sleep ${RAND}
env ${ENV} pkg update -q -f && \
env ${ENV} pkg upgrade -q -U -y --fetch-only && \
env ${ENV} HANDLE_RC_SCRIPTS=yes pkg upgrade -q -U -y
2. Задайте график обновления cron
Для этого конкретного расписания мы предпочитаем запускать скрипт ежедневно в 0:00 (в зависимости от вашего часового пояса) и запускаем сам процесс обновления пакетов в зависимости от значения, установленного для переменной $RAND - она настроена на создание спящего режима от 1980 до 5940 секунд (от 33 до 99 минут).
Дополнительную информацию об использовании jot можно найти здесь — спасибо нашим анонимным шифропанкам. Адаптируйте это под свои нужды, если такой вариант вам больше подходит.
# echo "0 0 * * * root /bin/sh /root/bin/pkg-upgrade.sh" > /etc/cron.d/pkg-upgrade
- Если вы хотите изменить запланированное выполнение скрипта обновления, настройте параметр crontab settings на значение, которое вы хотите использовать.
3. Перезапустите cron
Наконец, перезапустите демон cron, чтобы внесенные в конфигурацию изменения вступили в силу.
# service cron restart