87 lines
2.2 KiB
Bash
87 lines
2.2 KiB
Bash
#!/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 "$@"
|