Ce guide devrait fonctionner pour les systèmes d'exploitation DragonFlyBSD, FreeBSD et HardenedBSD. Il couvre UNIQUEMENT les mises à jour/améliorations de paquets, et n'applique aucun autre correctif au système de base ou au noyau.

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.

NOTE: Toutes les étapes documentées sur cette page considèrent que votre serveur est dédié à la fourniture d'un service de relais Tor ( pont/garde/sortie). Veuillez noter que les services seront redémarrés pendant le processus de mise à jour automatique du logiciel documenté ici.

1. Créer le script de mise à jour

Utilisons /root/bin/pkg-upgrade.sh pour notre installation. Voici à quoi cela ressemble :

#!/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. Programmer une tâche 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 vous souhaitez modifier l'exécution programmée du script de mise à jour, configurez votre crontab settings avec une valeur que vous souhaitez utiliser.

3. Redémarrer cron

Enfin, redémarrez le démon cron pour que les changements de configuration soient utilisés.

# service cron restart