script enrichi avec cas erreurs

This commit is contained in:
lebartal committed 2025-11-11 13:47:11 +01:00
1 parent 998cb690eb
commit 8df84bf19b
1 file changed
+73 -40
Executable → Regular
+73 -40
View File
@@ -1,47 +1,80 @@
#! /bin/bash
set -e
#!/bin/sh
# ------------------------------------------------------------
# Mise à jour système – version POSIX sh
# ------------------------------------------------------------
#@(#)##############################################################
#@(#) name: MAJ.ksh
#@(#) Description : Automatise les mises a jours Paquets + OS
#@(#)
#@(#)---------------------------------------------------------------------------
#@(#)
#@(#) Auteur : Kevin GRANDFOND
#@(#)
#@(#) Date de création : 19/04/2023
#@(#)
#@(#)---------------------------------------------------------------------------
#@(#) Modifications
#@(#)
#@(#) 19/04/2023 - Création du script.
#@(#)
#@(#) A FAIRE : N/A
#@(#)
#@(#)##############################################################
# -e : quitter dès la première erreur
# -u : erreur lorsqu'une variable n'est pas définie
set -eu
# Mettre à jour la liste des paquets
echo " ### Mise à jour de la liste des paquets ### "
apt-get update -y
echo " Mise à jour -OK- "
# ---------- Couleurs (facultatives) ----------
# Certaines consoles ne supportent pas tput, on prévoit un fallback vide.
RED=$(tput setaf 1 2>/dev/null || printf '')
GREEN=$(tput setaf 2 2>/dev/null || printf '')
YELLOW=$(tput setaf 3 2>/dev/null || printf '')
RESET=$(tput sgr0 2>/dev/null || printf '')
# Mettre à jour les paquets installés
echo " ### Mise à jour de la liste des paquets installés ### "
apt-get upgrade -y
echo " Mise à jour -OK- "
# ---------- Fonction de journalisation ----------
log() {
# $1 = niveau (INFO|OK|ERR)
# $2 = message
case "$1" in
INFO) printf '%b[INFO] %s%b\n' "$YELLOW" "$2" "$RESET" ;;
OK) printf '%b[OK] %s%b\n' "$GREEN" "$2" "$RESET" ;;
ERR) printf '%b[ERROR] %s%b\n' "$RED" "$2" "$RESET" ;;
*) printf '[%s] %s\n' "$1" "$2" ;;
esac
}
# MAJ de l'OS
echo " ### Montee de version de l'OS ### "
apt-get dist-upgrade -y
echo " Mise à jour -OK- "
# ---------- Wrapper d’exécution de commande ----------
run_cmd() {
# On exécute la commande passée en arguments séparés
# "$@" préserve les espaces éventuels dans chaque argument.
"$@"
rc=$?
if [ $rc -ne 0 ]; then
log ERR "Commande \"$*\" échouée (code $rc)"
exit $rc
else
log OK "Commande \"$*\" réussie"
fi
}
# Nettoyer les paquets obsolètes
echo " ### Suppression des paquets Obsolètes ### "
apt-get autoremove -y
echo " Mise à jour -OK- "
# ---------- Étapes de mise à jour ----------
update_pkg_list() {
log INFO "Mise à jour de la liste des paquets…"
run_cmd apt-get update -y
}
# Nettoyer les caches de paquets
echo " ### nettoyage des caches des paquets ### "
apt-get clean -y
upgrade_installed() {
log INFO "Mise à jour des paquets déjà installés…"
run_cmd apt-get upgrade -y
}
echo "Mise à jour terminée avec succès."
dist_upgrade_os() {
log INFO "Dist‑upgrade de l’OS…"
run_cmd apt-get dist-upgrade -y
}
autoremove_obsolete() {
log INFO "Suppression des paquets obsolètes…"
run_cmd apt-get autoremove -y
}
clean_cache() {
log INFO "Nettoyage du cache des paquets…"
run_cmd apt-get clean -y
}
# ---------- Point d’entrée ----------
main() {
update_pkg_list
upgrade_installed
dist_upgrade_os
autoremove_obsolete
clean_cache
log OK "Mise à jour terminée avec succès."
}
# Lancer le script
main "$@"