report des paquets mis à jour

This commit is contained in:
2025-05-29 09:35:24 +02:00
parent 8a1a871bfc
commit a73b5d13d2

View File

@@ -32,14 +32,42 @@ run_scp() {
# Fonction pour mettre à jour avec apt # Fonction pour mettre à jour avec apt
update_with_apt() { update_with_apt() {
echo -e " - Mise à jour avec apt sur $1 \n" local machine="$1"
run_ssh "$1" ' local tmpfile="/tmp/update_${machine}_$(date +%s).log"
sudo DEBIAN_FRONTEND=noninteractive apt-get -y -q clean &&
sudo DEBIAN_FRONTEND=noninteractive apt-get -y -q update && echo -e " - Mise à jour avec apt-get sur $machine \n"
sudo DEBIAN_FRONTEND=noninteractive apt-get -y -q full-upgrade &&
sudo DEBIAN_FRONTEND=noninteractive apt-get -y -q autoremove # Exécution distante avec apt-get uniquement, log récupéré localement
' run_ssh "$machine" '
echo -e "\n" set -e
export DEBIAN_FRONTEND=noninteractive
LOGFILE=$(mktemp)
sudo apt-get -y -q clean
sudo apt-get -y -q update
sudo apt-get -y -q --with-new-pkgs full-upgrade >> "$LOGFILE" 2>&1
sudo apt-get -y -q autoremove >> "$LOGFILE" 2>&1
cat "$LOGFILE"
rm -f "$LOGFILE"
' > "$tmpfile"
# Analyse locale du log pour extraire les lignes intéressantes
updates=$(grep "^Les paquets suivants seront mis à jour" "$tmpfile" | wc -w)
installs=$(grep "^Les NOUVEAUX paquets suivants seront installés" "$tmpfile" | wc -w)
removes=$(grep "^Les paquets suivants seront ENLEVÉS" "$tmpfile" | wc -w)
# Retirer le nombre de mots fixes den-tête pour chaque ligne
updates=$(( updates > 6 ? updates - 6 : 0 ))
installs=$(( installs > 8 ? installs - 8 : 0 ))
removes=$(( removes > 6 ? removes - 6 : 0 ))
if [ "$updates" -gt 0 ] || [ "$installs" -gt 0 ] || [ "$removes" -gt 0 ]; then
echo -e "📦 ${GREEN}$machine${NC} : $updates mis à jour, $installs installés, $removes supprimés"
fi
rm -f "$tmpfile"
echo
} }
# Fonction pour mettre à jour avec dnf # Fonction pour mettre à jour avec dnf