[Bash] Upgrade vers debian 12

Vous avez créé un script LUA dont vous êtes fier, un .sh génial, un programme Python hors du commun, un Tuto, c'est ici que vous pouvez les partager.
Guigui
Messages : 86
Inscription : 12 sept. 2015, 16:19

[Bash] Upgrade vers debian 12

Message par Guigui »

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 !

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

Dernière modification par Keros le 13 juin 2023, 21:05, modifié 1 fois.
Raison : Ajout edit
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: [Bash] Upgrade vers debian 12

Message par Keros »

Merci de ce partage.

:!: Rappelons qu'avant toute mise à jour, il est préférable de faire une sauvegarde complète de votre système.
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
mike913
Messages : 159
Inscription : 18 oct. 2014, 10:22
Localisation : Morsang / Orge - Essonne
Contact :

Re: [Bash] Upgrade vers debian 12

Message par mike913 »

Bonjour,
J' ai fait la mise à jour, pas avec le script car chez moi il y avait beaucoup d' erreurs (dues à la copie ?) sur une carte SD qui me sert pour les tests.
J' ai donc utilisé la méthode classique (changer /etc/apt/sources.list avec les nouveaux dépôts)
puis mise à jour du système et reboot.
Image
Erreur 502 sur le serveur WEB (NGinx) , du à la nouvelle version de PHP 8.2.5 au lieu de 7.3 après modification du fichier de configuration de NGinx tout est rentré dans l'ordre.
Je n' ai pas domoticz sur cette carte et je ne ferait pas l"essai.
DS718+ 2 x 3To(SHR) - Firmware: DSM 7.0.1-42218
DS712+ 2 x 4To (SHR) - Firmware: DSM 6.2.4-25556
Raspberry - RFXTRX433 - Aeon Labs ZStick V2 - Domoticz
FreeBox Delta
https://meteo.folcke.net
https://wiki.folcke.net
Guigui
Messages : 86
Inscription : 12 sept. 2015, 16:19

Re: [Bash] Upgrade vers debian 12

Message par Guigui »

ATTENTION

Le script est valable sur DEBIAN, pas forcement sur RASPBIAN !
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: [Bash] Upgrade vers debian 12

Message par Keros »

D'ailleurs, les ISO d'installation de Raspberry Pi OS ne sont pas encore passés à la nouvelle version : https://www.raspberrypi.com/software/operating-systems/
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
Répondre