script enrichi avec cas erreurs
This commit is contained in:
1 parent
998cb690eb
commit
8df84bf19b
1 file changed
+73
-40
Executable → Regular
+73
-40
@@ -1,47 +1,80 @@
|
|||||||
#! /bin/bash
|
#!/bin/sh
|
||||||
set -e
|
# ------------------------------------------------------------
|
||||||
|
# Mise à jour système – version POSIX sh
|
||||||
|
# ------------------------------------------------------------
|
||||||
|
|
||||||
#@(#)##############################################################
|
# -e : quitter dès la première erreur
|
||||||
#@(#) name: MAJ.ksh
|
# -u : erreur lorsqu'une variable n'est pas définie
|
||||||
#@(#) Description : Automatise les mises a jours Paquets + OS
|
set -eu
|
||||||
#@(#)
|
|
||||||
#@(#)---------------------------------------------------------------------------
|
|
||||||
#@(#)
|
|
||||||
#@(#) Auteur : Kevin GRANDFOND
|
|
||||||
#@(#)
|
|
||||||
#@(#) Date de création : 19/04/2023
|
|
||||||
#@(#)
|
|
||||||
#@(#)---------------------------------------------------------------------------
|
|
||||||
#@(#) Modifications
|
|
||||||
#@(#)
|
|
||||||
#@(#) 19/04/2023 - Création du script.
|
|
||||||
#@(#)
|
|
||||||
#@(#) A FAIRE : N/A
|
|
||||||
#@(#)
|
|
||||||
#@(#)##############################################################
|
|
||||||
|
|
||||||
# Mettre à jour la liste des paquets
|
# ---------- Couleurs (facultatives) ----------
|
||||||
echo " ### Mise à jour de la liste des paquets ### "
|
# Certaines consoles ne supportent pas tput, on prévoit un fallback vide.
|
||||||
apt-get update -y
|
RED=$(tput setaf 1 2>/dev/null || printf '')
|
||||||
echo " Mise à jour -OK- "
|
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
|
# ---------- Fonction de journalisation ----------
|
||||||
echo " ### Mise à jour de la liste des paquets installés ### "
|
log() {
|
||||||
apt-get upgrade -y
|
# $1 = niveau (INFO|OK|ERR)
|
||||||
echo " Mise à jour -OK- "
|
# $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
|
# ---------- Wrapper d’exécution de commande ----------
|
||||||
echo " ### Montee de version de l'OS ### "
|
run_cmd() {
|
||||||
apt-get dist-upgrade -y
|
# On exécute la commande passée en arguments séparés
|
||||||
echo " Mise à jour -OK- "
|
# "$@" 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
|
# ---------- Étapes de mise à jour ----------
|
||||||
echo " ### Suppression des paquets Obsolètes ### "
|
update_pkg_list() {
|
||||||
apt-get autoremove -y
|
log INFO "Mise à jour de la liste des paquets…"
|
||||||
echo " Mise à jour -OK- "
|
run_cmd apt-get update -y
|
||||||
|
}
|
||||||
|
|
||||||
# Nettoyer les caches de paquets
|
upgrade_installed() {
|
||||||
echo " ### nettoyage des caches des paquets ### "
|
log INFO "Mise à jour des paquets déjà installés…"
|
||||||
apt-get clean -y
|
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 "$@"
|
||||||
Reference in new issue
Block a user