Linux Ubuntu 10.10 Maverick Meerkat : script de sauvegarde et script d'installation automatisé
Par François Lasselin le jeudi, octobre 7 2010, 07:30 - Linux-Ubuntu - Lien permanent

Ce billet est une actualisation d'un billet consacré au même thème Linux Ubuntu 10.4 Lucid Lynx : script de sauvegarde et script d'installation idempotent. L'effort a porté sur la simplification et l'épuration des scripts dont les nouvelles versions sont proposées au téléchargement.
Concernant Ubuntu, il semble que cette distribution ait hissé Linux à un certain niveau de maturité dans le confort d'utilisation. La qualité a fortement augmenté mais augmente moins vite. Si des évolutions dans les logiciels présent par défaut et pleins de petites améliorations accompagne cette distribution, rien de révolutionnaire.
Le premier contact avec le processus d'installation est une expérience utilisateur encore plus fluide. C'est très simple.
Le partitionnement/formatage se fait en tache de fond pendant que l'on fini d'indiquer le fuseau horaire, le type de clavier et l'identification.
Voir la barre de progression sous la partie principal des écrans ci dessous.
![]() |
![]() |
|
On ne sait toujours pas qui (combien) utilise Ubuntu. Mais c'est sans doute très sous-estimé !
Mise à jour ou instalation ?
On a déjà présenté la méthode précédemment, il est toutefois bon d'apporter une précision: Faut-il mettre /home sur une partition à part ? Finalement, la réponse à cette question conditionne grandement le choix entre la mise à jour ou l'installation.Le pour :
- On peut formater le système sans bouger les données.
- On récupère plus facilement en cas de crash
Le contre :
- Toutes les préférences applicatives sont conservées dans /home/ (dans des répertoires cachés). L'intérêt d'une réinstallation complète s'est aussi de faire le ménage.
- Une partition est figée. Déterminer l'espace précis nécessaire aux programmes à installer versus les données n'est jamais facile. Cela engendre nécessairement une marge d'espace inutilisé sur la partition système et donc perdu inutilement
- En cas de crash, on récupère tout aussi bien à partir d'un autre OS ou d'un live cd/usb
La sauvegarde des données avec rsync
Le script initiale continuera de satisfaire ses utilisateurs. Pour ceux qui font du développement web, une sauvegarde de toutes les bases sql est un complément nécessaire :for i in `mysqlshow -h localhost --user=${USERDB} --password=$mysql_pwd | awk -F "^| " '{print $2}' | grep -v '^$'`
do
mysqldump -h localhost --user=${USERDB} --password=${PASSDB} --add-locks --add-drop-table $i | gzip > ${CHEMIN}"/sql/"$i.sql.gz | grep '^$'
done;
Le mysqlshow permet de récupérer la liste des bases sur le serveur. le awk retire les | (pipe) et le grep supprime les lignes vides.
Ensuite on fait un dump de chacune des bases.
Installation automatisée
Dans cette nouvelle version du script, un soin particulier a été apporté à la séparation des paquets du dépôt officiel des paquets issus d'autres dépôts.En tête du script on trouve la fonction addifabsent qui permet d'ajouter une ligne dans le fichier de dépôt sans créer de doublon.
#!/bin/shEnsuite, on recueille le nom de la distribution:
# Usage : addifabsent 'line' 'file'
addifabsent() {
if ! grep -qFx "$1" "$2" 2>/dev/null
then
echo "$1" >>"$2"
fi
}
while [ ! $DISTRIBUTION ]
do echo "Entrez le nom de la distribution dans les depots (lucid, maverick, natty...) : "
read DISTRIBUTION
done
Les paquets standards se trouvent dans les dépôts officiels. En théorie, pas besoin de les ajouter. Pour rappel (ou par sécurité) :
# Ajout des dépôts standards (normalement pas besoin)
addifabsent "deb http://security.ubuntu.com/ubuntu ${DISTRIBUTION}-security main restricted" /etc/apt/sources.list
addifabsent "deb http://security.ubuntu.com/ubuntu ${DISTRIBUTION}-security universe" /etc/apt/sources.list
addifabsent "deb http://security.ubuntu.com/ubuntu ${DISTRIBUTION}-security multiverse" /etc/apt/sources.list
Pour que les nouveaux dépôts (ou ceux retirer) soient pris ne compte, il faut rafraîchir:
echo "- Mise a jour des depots"
aptitude update
Aptitude est absent dans l'installation d'Ubuntu depuis Maverick. On l'installe donc avec apt-get:
sudo apt-get install aptitude -y
Pourquoi aptitude ?
Bien qu'aptitude et apt-get aient la même syntaxe, ils ne font pas les choses de la même façon.
Par exemple, aptitude permet l'installation d'une version spécifique d'un paquet, log son activité. Il est communément admis qu'il gère mieux les dépendances et les conflits. Ainsi, lors de la désinstallation d'un paquet aptitude supprimera les paquets inutiles.
# admin
aptitude install -yq emacs rsync nfs-common bzip2 less ssh manpages-fr
aptitude install -yq ttf-mscorefonts-installer ffmpeg unrar unace compizconfig-settings-manager compiz-fusion-plugins-extra gmountiso
aptitude install -yq thunderbird enigmail filezilla flashplugin-nonfree
aptitude install -yq ntfs-config ntfsprogs gparted
# Image son video
aptitude install -yq gimp gimp-help-fr imagemagick inkscape cups-pdf audacity mplayer smplayer gstreamer0.10-plugins-ugly gstreamer0.10-ffmpeg gtk-recordMyDesktop vlc kdenlive subtitleeditor avidemux
# Depot Ubuntu commercial/partenaire : nécessaire pour le plug-in java sun, Skype
addifabsent "deb http://archive.canonical.com/ubuntu ${DISTRIBUTION} partner" /etc/apt/sources.list
# pidgin avec les updates (pidgin n'est pas updaté dans les depots ubuntu):
apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 67265eb522bdd6b1c69e66ed7fb8bee0a1f196a8
addifabsent "deb http://ppa.launchpad.net/pidgin-developers/ppa/ubuntu `lsb_release --short --codename` main" /etc/apt/sources.list.d/pidgin-ppa.list
# Opera
wget -O - http://deb.opera.com/archive.key | sudo apt-key add -
addifabsent "deb http://deb.opera.com/opera/ stable non-free" /etc/apt/sources.list
echo "- Mise a jour des depots"
aptitude update
# Java demandera l'acceptation de la licence (dans un ecran tout bleu)
aptitude install -yq sun-java6-plugin pidgin skype opera chromium-browser chromium-browser-l10n
aptitude clean
Pour cups-dpf, il faut aller dans Système->Administration->Impression pour ajouter une imprimante de type "Generic-CPS-PDF-Printer".
Pour les développeurs Web, voici un ajout optionnel qui installe un serveur LAMP:
# lamp
aptitude install -yq apache2 mysql-server-5.0 php5-mysql php5-cgi php5-cli php5-xdebug php5-dev php5-curl php5-gd php-pear phpmyadmin phpunit libmysqlclient15-dev libapache2-mod-php5
a2enmod php5
a2enmod rewrite
/etc/init.d/apache2 force-reload
chgrp www-data /var/www/
chown www-data /var/www/
chmod -R 777 /var/www
pear install PHP_CodeSniffer
Les scripts sont disponibles en téléchargement (à vos risques et périls, ... ) dans les ressources de ce blog.
Vous êtes encouragés à employer le principe décrit dans ce billet pour adapter à vos propres besoins.
La discussion continue ailleurs
URL de rétrolien : http://blog.nalis.fr/index.php?trackback/102
Commentaires
Bonsoir : à mon avis, vous devriez vous pencher de plus près sur ce que sont les fondements des distributions GNU/Linux... Pour faire rapide, à la différence de Microsoft, 2 exemples :
a) le cloisonnement entre partitions, notamment système (accès root) et "utilisateur" (home) qu'on peut aussi protéger en la cryptant, essentiellement pour des raisons de droits (read,write,execute) sur les fichiers et les dossiers liés aux groupes et aux utilisateurs... voire même une partition boot séparée pour ceux qui utilisent différents OS et en changent parfois
b) la possibilité de modifier, mettre à jour sans avoir à formater et tout réinstaller (d'autant que la fragmentation c'est une maladie windaubienne) ; pour ma part, je mets à jour depuis 2007... et j'ai même changé, en cours de route, de système de fichier (passage de etx3 à ext4), de carte mère/processeur sans avoir ni à formater ni à tout réinstaller... (ubuntu 11.04 64 bits)
Bonjour Speleovar,
Tu as tout à fait raison mais ce débat n'est pas nouveau et je ne l'ai pas repris dans ce billet (pas plus que le script de sauvegarde que j’accolais systématiquement au même sujet). En effet, tu le trouveras sur les billets précédents qui traite du sujet.
Toutefois, je peux témoigner avoir fait un upgrade 10.10 vers 11.04 bêta. A l'issu duquel l'installeur m'a annoncé n'avoir pas réussi à mettre à jour certain logiciel qui ne sont donc plus utilisable .... sans dire lesquels. C'est le genre de mauvaise surprise qu'une réinstallation permet d'éviter.
bonne continuation !
Salut François,
Et voilà, j'allais me poser pour faire un script similaire et je tombe sur le tien que je n'ai plus qu'à adapter. Trop cool :-) Merci ;-)
Une petite modif permettant d'automatiser un peu plus ton script : définir ainsi la variable DISTRIBUTION :
DISTRIBUTION=`lsb_release -sc`
Bonjour,
bon tutoriel sur lequel on peut se baser. Je propose quand même, plutôt que d'utiliser "mysqlshow", la ligne suivante pour ne pas se fatiguer à enlever les pipes :
echo "show databases"| mysql -uroot --raw