Esta guía tendría que funcionar para los sistemas operativos DragonFlyBSD, FreeBSD y HardenedBSD. Cubre ÚNICAMENTE actualizaciones/mejoras de paquetes, y no aplica ningún otro parche al sistema base o al kernel.

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.

NOTA: Todos los pasos documentados en esta página parten del hecho de que tu servidor suministra un servicio de relay de Tor (bridge/guard/exit). Ten en cuenta que los servicios se reiniciarán durante el proceso de actualización automática de software aquí documentado.

1. Crea el Script de Actualización

Usemos /root/bin/pkg-upgrade.sh para nuestra configuración. Es así como ha de verse:

#!/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. Programar un Trabajo 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
  • Si deseas cambiar la ejecución programada del script de actualización, configure tu crontab settings al valor que desee utilizar.

3. Reiniciar cron

Finalmente, reiniciar el demonio cron para hacer que los cambios de configuración sean usados.

# service cron restart