Restaurer la sauvegarde des sources et des paquets

$ cat restauration.sh
#!/bin/bash
 
####### restauration - Script de restauration APT #######
 
echo
echo "Script de restauration APT"
echo "Une connexion Internet fonctionnelle est requise pour le bon fonctionnement de ce script."
echo
 
##### DEBUT GESTION DES ERREURS #####
 
ls -1 | grep '^[[:digit:]]\{4\}\-[[:digit:]]\{2\}\-[[:digit:]]\{2\}$' > /dev/null
 
if test $? -ne 0
then
    echo "Il n'y a rien à restaurer !"
    exit 2
elif [ ! `whoami` = "root" ]
then
    echo "Il faut être root ... Executez \"sudo !!\"."
    exit 2
elif test $# -ne 1
then
    echo "Il faut un seul paramètre. Tapez \"./restauration sources\" pour restaurer le sources.list ou \"./restauration paquets\" pour restaurer les paquets."
    exit 2
fi
 
##### FIN GESTION DES ERREURS #####
 
##### DEBUT SELECTION D'UNE DATE #####
 
echo
echo "Par défaut le script restaure votre sauvegarde la plus récente. Voulez-vous en restaurer une autre ? [o/n]"
read choix
 
if [ $choix = "n" ] # Si il veut la plus récente, on prend la plus récente en fonction du nom des dossiers de sauvegarde
then
    DATE=`ls -1 | grep '^[[:digit:]]\{4\}\-[[:digit:]]\{2\}\-[[:digit:]]\{2\}$' | tail -n 1`
    echo "La date choisie est $DATE."
elif [ $choix = "o" ] # Sinon on lui demande de rentrer une date
then
    echo "Veuillez entrer la date souhaitée, sous la forme AAAA-MM-JJ : "
    read DATE
    
    if test -d $DATE
    then
        echo "La date choisie est $DATE."
    else
        echo "La date demandée n'existe pas dans les sauvegardes !"
        exit 2
    fi
else
    echo "Veuillez entrer \"o\" ou \"n\"."
    exit 2
fi
 
echo
echo "Est-ce bien ce que vous voulez ? [o/n]" # Confirmation
read choix2
 
if [ $choix2 = "o" ]
then
    echo "Continuons donc !"
    sleep 2 # On dort 2 secondes pour la lisiblité
elif [ $choix2 = "n" ]
then
    echo "Abandon."
    exit 2
else
    echo "Veuillez entrer \"o\" ou \"n\"."
    exit 2
fi
 
echo
 
##### FIN SELECTION D'UNE DATE #####
 
##### DEBUT RESTAURATION #####
 
if test $1 = "sources" # Si on veut restaurer le sources.list
then
    cp /etc/apt/sources.list /etc/apt/sources.list.svgorig.$DATE
    ( cp $DATE/sources.$DATE.list /etc/apt/sources.list && apt-get update ) \
    && (echo ; echo "Restauration du sources.list terminée avec succès.") \
    || (echo ; echo "Restauration du sources.list échouée... Vous n'avez probablement pas les droits d'écriture dans /etc/apt/" ; \
    cp /etc/apt.sources.list.svgorig.$DATE /etc/apt/sources.list && echo "Votre sources.list original a été restauré." ; exit 2)
    
elif test $1 = "paquets" # Si on veut restaurer les paquets
then
    ( dpkg --set-selections < $DATE/paquets.$DATE.list && apt-get update ; apt-get dselect-upgrade ) \
    && (echo ; echo "Restauration des paquets terminée avec succès") \
    || (echo ; echo "Restauration des paquets échouée... Votre connexion Internet est peut-être défaillante." ; exit 2)
    
else
    echo "Paramètre inconnu"
    exit 2
fi
 
exit 0
 
##### FIN RESTAURATION #####

Etiquettes: 

Ajouter un commentaire

Filtered HTML

  • Les adresses de pages web et de messagerie électronique sont transformées en liens automatiquement.
  • Tags HTML autorisés : <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Les lignes et les paragraphes vont à la ligne automatiquement.

Plain text

  • Aucune balise HTML autorisée.
  • Les adresses de pages web et de messagerie électronique sont transformées en liens automatiquement.
  • Les lignes et les paragraphes vont à la ligne automatiquement.
CAPTCHA
Cette question permet de s'assurer que vous êtes un utilisateur humain et non un logiciel automatisé de pollupostage.
CAPTCHA visuel
Entrez les caractères (sans espace) affichés dans l'image.