Files
Linux/modules/AutoMaj/MAJ.ksh
T

94 lines
2.2 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
###############################################################
# name: MAJ.ksh
# Description : Automatise les mises a jours Paquets + OS
#
#---------------------------------------------------------------------------
#
# Auteur : LeBartal
#
# Date de création : 19/04/2023
#
###############################################################
# ---------- 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 '')
# ---------- 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
}
# ---------- 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
}
# ---------- Étapes de mise à jour ----------
update_pkg_list()
{
log INFO "Mise à jour de la liste des paquets…"
run_cmd apt-get update -y
}
upgrade_installed()
{
log INFO "Mise à jour des paquets déjà installés…"
run_cmd apt-get upgrade -y
}
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 "$@"