Planifier et automatiser les mises à jour de votre distribution Linux

Sommaire
  1. Le script system_update.sh
  2. Définir la tâche cron

Bonjour à tous,

Aujourd’hui, je vais vous montrer comment actualiser automatiquement votre distribution préférée. Cela se passe en deux étapes. Nous allons tout d’abord rédiger un script Bash qui va actualiser les paquets avant d’installer les mises à jour. Puis, pour automatiser l’exécution de ce script, nous allons utiliser l’application cron. Nous allons définir la fréquence des mises à jour et démarrer le processus. Avant de commencer, veuillez s’il vous plaît, installer cron.

sudo apt update
sudo apt install cron
1. Le script system_update.sh

Voici le script que j’ai créé. Il s’appelle system_update.sh. Vous pouvez le télécharger à cette adresse et l’installer dans /usr/local/bin. N’oubliez pas également de le rendre exécutable.

# Titre et date
echo -e "\nMISE À JOUR DU SYSTÈME\n" > /home/$1/.result.txt 
date >> /home/$1/.result.txt

# Téléchargement des paquets
apt update -y >> /home/$1/.result.txt
 
# Mise à jour des paquets
apt full-upgrade -y >> /home/$1/.result.txt
 
# Nettoyage et suppression des paquets inutiles
apt autoremove -y >> /home/$1/.result.txt
 
# Changement de propriétaire pour le rapport de Màj
chown $1:$1 /home/$1/.result.txt

Il prend un argument qui est votre nom d’utilisateur, c’est-à-dire que si je veux lancer le script, je dois entrer la commande suivante EN ROOT:

/usr/local/bin/system_update.sh benoit

Tout le processus est envoyé dans le fichier caché ~/.result.txt. Cela commence par le titre MISE À JOUR DU SYSTÈME qui, grâce à l’unique chevron (>), crée ledit fichier ou efface tout le contenu issu d’une précédente mise à jour. Cela se poursuit avec la date et l’heure à laquelle le fichier est exécuté. Ici, il faut utiliser deux chevrons (>>) pour ne pas effacer le contenu du fichier.

Enfin, nous entrons dans le vif du sujet avec les commandes apt update -y, apt full-upgrade -y et apt autoremove -y. Le y permet d’exécuter la commande sans demander l’autorisation à l’utilisateur (sinon, ce ne serait plus une tâche automatique).

2. Définir la tâche cron

Il nous faut maintenant définir une tâche cron en ROOT. Elle va nous permettre de lancer le processus de mise à jour toutes les six heures, c’est-à-dire à 00:00, 06:00, 12:00 et 18:00. Pour ce faire, vous passez en root et vous entrez la commande crontab -e.

benoit@PC-Boudaud:~$ su
Mot de passe : ******
benoit@PC-Boudaud:/home/benoit # crontab -e

Un fichier va s’ouvrir. À la fin de celui-ci, vous entrez la ligne ci-dessous. Bien sûr, vous remplacez benoit par votre nom d’utilisateur:

00 */6 * * * /usr/local/bin/system_update.sh benoit

Si vous souhaitez mettre votre distribution à jour cinq minutes après le démarrage de votre ordinateur, c’est tout à fait possible. Voici le code.

@reboot sleep 300 && /usr/local/bin/system_update.sh benoit

Pour plus de détails sur le fonctionnement de cron, je vous invite à lire la documentation suivante. Vous pouvez aussi consulter la page du manuel directement dans le terminal:

man cron

Voilà! Dernière chose, si vous voulez que la tâche automatique s’exécute, n’oubliez pas de fermer votre éditeur de texte (nano ou autre). Si celui-ci reste ouvert, la tâche cron ne s’exécutera pas.

Votre commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Image Twitter

Vous commentez à l’aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s