[Bash] Upgrade vers debian 12
Publié : 12 juin 2023, 11:05
Hello everybody,
Edit : Le script est valable sur DEBIAN, pas forcement sur RASPBIAN !
Voici un petit script pour upgrader votre distrib' facilement.
Vous pouvez entrer en paramètre d'appel minimal (pour un upgrade minimum) ou full (pour un upgrade total)
Première phase, mise à jour de votre distribution.
Deuxième phase, Upgrade.
Si vous avez oublié le paramètre d'appel, un prompt vous invitera à le renseigner.
Lors de l'upgrade
Faire Y ou oui à toutes les demandes.
Eventuellement faire un "q" si on vous demande un prompt qui commence par ":"
et à la fin, faire un 'reboute' des familles.
Point important le fichier /etc/sudoers sera modifié lors de l'upgrade, pensez à le remodifier, j'ai integré une sauvegarde dudit fichier (/etc/sudoers vers /etc/sudoers_old_debian)
Bonne journée !
Edit : Le script est valable sur DEBIAN, pas forcement sur RASPBIAN !
Voici un petit script pour upgrader votre distrib' facilement.
Vous pouvez entrer en paramètre d'appel minimal (pour un upgrade minimum) ou full (pour un upgrade total)
Première phase, mise à jour de votre distribution.
Deuxième phase, Upgrade.
Si vous avez oublié le paramètre d'appel, un prompt vous invitera à le renseigner.
Lors de l'upgrade
Faire Y ou oui à toutes les demandes.
Eventuellement faire un "q" si on vous demande un prompt qui commence par ":"
et à la fin, faire un 'reboute' des familles.
Point important le fichier /etc/sudoers sera modifié lors de l'upgrade, pensez à le remodifier, j'ai integré une sauvegarde dudit fichier (/etc/sudoers vers /etc/sudoers_old_debian)
Bonne journée !
Code : Tout sélectionner
#!/bin/bash
# Fonction pour vérifier le temps d'activité du système en secondes
check_uptime() {
# Récupérer le temps d'activité du système en secondes
uptime_seconds=$(cut -d. -f1 /proc/uptime)
# Retourner le temps d'activité en secondes
echo "$uptime_seconds"
}
# Fonction pour vérifier le timestamp du fichier srcpkgcache.bin
check_timestamp() {
# Récupérer le timestamp du fichier srcpkgcache.bin
file_timestamp=$(stat -c %Y /var/cache/apt/srcpkgcache.bin)
# Retourner le timestamp
echo "$file_timestamp"
}
# Vérifier le temps d'activité du système
system_uptime=$(check_uptime)
# Vérifier le timestamp du fichier srcpkgcache.bin
file_timestamp=$(check_timestamp)
# Si le temps d'activité est supérieur à 3600 secondes ET le timestamp du fichier est inférieur à 3600 secondes, passer à la suite du script
if [ "$system_uptime" -lt 3600 ] && [ "$file_timestamp" -gt "$(date +%s -d 'now - 3600 seconds')" ]; then
echo "Temps d'activité du système supérieur à 1 heure (3600 secondes) et le fichier srcpkgcache.bin a été modifié il y a plus d'une heure. Passage direct à la suite du script."
else
# Mettre à jour les packages existants et redémarrer le système Debian 11
sudo apt update
sudo apt upgrade -yy
sudo apt full-upgrade -yy
sudo apt autoremove -yy
sudo systemctl reboot
exit 0
fi
# Vérifier le paramètre d'entrée
if [ -z "$1" ]; then
echo "Veuillez spécifier 'full' ou 'minimale' comme paramètre d'entrée."
read -r -p "Choisissez 'full' ou 'minimale': " upgrade_option
else
upgrade_option="$1"
fi
# Valider le paramètre d'entrée
if [ "$upgrade_option" == "full" ] || [ "$upgrade_option" == "FULL" ]; then
# Préparer la mise à niveau complète du système d'exploitation
sudo apt upgrade -y
elif [ "$upgrade_option" == "minimale" ] || [ "$upgrade_option" == "minimal" ] || [ "$upgrade_option" == "MINIMALE" ] || [ "$upgrade_option" == "MINIMAL" ]; then
# Préparer la mise à niveau minimale du système d'exploitation
sudo apt upgrade --without-new-pkgs -y
else
echo "Paramètre d'entrée non valide. Veuillez spécifier 'full' ou 'minimale'."
exit 1
fi
# Sauvegarder le fichier sources.list existant
sudo cp /etc/apt/sources.list /etc/apt/old_debian_11_sources.list
# Créer un nouveau fichier sources.list
sudo tee /etc/apt/sources.list > /dev/null << EOF
deb http://deb.debian.org/debian/ bookworm main
deb-src http://deb.debian.org/debian/ bookworm main
deb http://security.debian.org/debian-security bookworm-security main
deb-src http://security.debian.org/debian-security bookworm-security main
deb http://deb.debian.org/debian/ bookworm-updates main
deb-src http://deb.debian.org/debian/ bookworm-updates main
deb http://deb.debian.org/debian bookworm non-free non-free-firmware
deb-src http://deb.debian.org/debian bookworm non-free non-free-firmware
deb http://deb.debian.org/debian-security bookworm-security non-free non-free-firmware
deb-src http://deb.debian.org/debian-security bookworm-security non-free non-free-firmware
deb http://deb.debian.org/debian bookworm-updates non-free non-free-firmware
deb-src http://deb.debian.org/debian bookworm-updates non-free non-free-firmware
EOF
# Sauvegarder le fichier sudoers qui sera effacé lors de l'upgrade
sudo cp /etc/sudoers /etc/sudoers_old_debian
# Mettre à jour l'index des packages sur Debian Linux
sudo apt update
# Mettre à niveau Debian 11 vers Debian 12 (bullseye)
sudo apt full-upgrade -y
