Это руководство должно работать для операционной системы DragonFlyBSD, FreeBSD и HardenedBSD. Оно охватывает ТОЛЬКО обновления пакетов и не применяет никаких других исправлений к базовой системе или ядру.

If you are running FreeBSD 15.0-RELEASE or above, the base system will be updated via pkg as well. Otherwise you would still need to rely on freebsd-update or building it from source. For more information, please see the official FreeBSD Wiki or the Handbook.

ПРИМЕЧАНИЕ: Все шаги, описанные на этой странице, предполагают, что ваш сервер предназначен для функционирования узла 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

For this particular schedule we opt to run the script every 0h00 (depending on your timezone), and will trigger the packages updates process itself depending on the value set to the $RAND variable - it's configured to produce a sleep between 1980 and 5940 seconds (or: 33 and 99 minutes).

More information about the use of jot in there can be found here - thanks to our anonymous cypherpunks. Adapt that to your needs should it be more suited to you.

# echo "0 0 * * * root /bin/sh /root/bin/pkg-upgrade.sh" > /etc/cron.d/pkg-upgrade
  • Если вы хотите изменить запланированное выполнение скрипта обновления, настройте параметр crontab settings на значение, которое вы хотите использовать.

3. Перезапустите cron

Наконец, перезапустите демон cron, чтобы внесенные в конфигурацию изменения вступили в силу.

# service cron restart