Mise à jour serveur Ubuntu

BUT : simplifier la mise à jour d’un serveur ubuntu

Vous en avez marre de faire des sudo apt update puis sudo apt upgrade à tour de bras ?
Simplifiez vous la vie avec ce petit script qui va vous permettre d’accélérer le processus.
Attention, ce script doit être lancé manuellement et non pas depuis un ‘cron’ (tache automatisée), car il utilise ‘apt upgrade’ qui ne doit pas être lancé ‘en aveugle’. En effet certaines mises à jour nécessitent une action de votre part, par exemple pour les fichiers de configuration qui sont modifiés par le gestionnaire de mise à jour, apt vous demande si vous voulez conserver votre fichier de configuration ou le remplacer par le nouveau.

Créons notre script avec l’éditeur nano :

#!/bin/bash
#
#    Mise à Jour OS
#

# Relance automatiquement ce script en mode root si user standard
  [ ! $UID -eq 0 ] && echo "Lancement en mode ROOT" && sudo $0 "$@" && exit

echo "Mise à jour du système d'exploitation"

# test si besoin de faire une mise à jour
if [ $(cat /var/lib/update-notifier/updates-available | grep -Ev '^$' | grep -E '^[0-9]' | cut -d ' ' -f 1 | head -n 1) -eq 0 ]
then
  echo "system à jour"
else
  apt update && sudo apt upgrade -y && sudo apt autoremove -y
fi

# test si besoin d'un reboot
if [ ! "$(/usr/lib/update-notifier/update-motd-reboot-required)" ]
then
  echo "pas besoin de reboot"
else
  echo "--- ATTENTION REBOOT ---"
  # option -f pour forcer le reboot si besoin
  [ "$1" = "-f" ] && reboot || echo "sudo reboot"
fi
Enregistrez le fichier avec CTRL + O (la touche o pas zéro)

Sortir de l’éditeur nano avec CTRL + X

Rendre exécutable le script :

Lancez le script :

S’il n’y a pas de mise à jour ni besoin de reboot voici ce qui s’affiche

Lancement en mode ROOT
[sudo] password for bzg:
Mise à jour du système d'exploitation
system à jour
pas besoin de reboot

Vous pouvez aussi lancer ce script directement avec le privilège ‘sudo’ :

Mise à jour du système d'exploitation
system à jour
pas besoin de reboot

Si le système a besoin d’une mise à jour elle sera lancée automatiquement
Et s’il y a besoin d’un reboot le message suivant s’affichera :

Mise à jour du système d'exploitation
system à jour
--- ATTENTION REBOOT ---
sudo reboot

Lancez alors un sudo reboot
Pour simplifier la manipulation : triple cliquez sur la ligne où s’affiche ‘sudo reboot’ pour que la ligne entière apparaisse en surbrillance

Faite ensuite soit :

MAJ + INSER

soit :

MAJ + CTRL + V

dans les deux cas la ligne en surbrillance sera collée et donc lancera automatiquement le ‘sudo reboot’

Vous pouvez aussi lancer le script avec l’option -f pour forcer le reboot s’il est nécessaire, mais attention à ne pas forcer le mode reboot si vous avez un tache importante qui tourne déjà :