Sauver restaurer une debian
De TcWeb.
Cet article est une sorte de mémo pour facilement sauver et donc restaurer une debian, et ça fonctionne aussi très bien pour une ubuntu. Très utile dans le cadre d'un changement de machine. En effet, il est facile de copier la machine source sur la machine cible.
Sauver
Sur l'ancienne Debian, la machine source, il faut sauvegarder un certain nombre de dossier :
- /etc : pour sauver la configuration de la machine exclure :
- /etc/fstab : Si les disques changent
- /etc/network/interface : Si les cartes réseau changent
- /etc/lvm : Si la configuration lvm à changé
- /etc/lilo.conf : si des éléments touchant au bootloader ont changé (disques, partitions, etc.)
- /var : pour sauver les fichiers de travail des démons mais exclure :
- /var/lib/dpkg : dpkg sera réinstallé
- /var/lib/apt : apt sera réinstallé
- /var/cache/apt : apt sera réinstallé
- /var/backups : les backups automatique debian
- /var/lib/aptitude : aptitude sera réinstallé
- /var/run : les pid des processus en cours
- /home : pour les données utilisateurs
- /usr/local : pour sauver ce qui a été installé à la main
- /root : pour les données root
Comme pour toutes sauvegarde, il faut faire attention aux fichiers en cours d'utilisation. La solution la plus simple est de stopper tous les démons avant de la réaliser.
Pour sauver la liste des paquets installés, il existe 2 solutions qui dépendent des outils que vous utilisez. Si c'est apt :
dpkg --get-selections > selections.txt
Si c'est aptitude :
aptitude search -F%p ~i\!~M > selections.txt
Voilà, maintenant que le backup est près, nous allons pouvoir remonter la machine.
Transférer
Pour garder les droits des fichiers, les données de l'ancienne debian vers la nouvelle, peuvent être transférées en utilisant ssh et tar.
Pour chaque répertoire, on va écrire sur le nouveau serveur une commande de ce type:
cd / ssh ancien_serveur "cd /; tar -czvf - rep/à/déplacer " | tar -xzvf -
ssh root@ancien_serveur "cd /; tar -czvf - /etc --exclude=/etc/fstab --exclude=/etc/network/interface \ --exclude=/etc/lvm" | tar -xzvf - ssh root@ancien_serveur "cd /; tar -czvf - /var --exclude=/var/lib/dpkg --exclude=/var/lib/apt \ --exclude=/var/cache/apt --exclude=/var/backups --exclude=/var/lib/aptitude --exclude=/var/run" | tar -xzvf - ssh root@ancien_serveur "cd /; tar -czvf - /root " | tar -xzvf - ssh root@ancien_serveur "cd /; tar -czvf - /usr/local " | tar -xzvf - ssh root@ancien_serveur "cd /; tar -czvf - /home" | tar -xzvf -
Restaurer
La restauration va se passer en 4 temps,
- installation d'une debian minimale
- réinstallation des paquets (s'il demande de configurer les services : vous mettez les options par défaut)
- restauration de la configuration et des données
- réinstallation des paquets
J'attire votre attention sur les points suivant
- le fichier /etc/fstab est peut-être à modifier, si vous avez par exemple changé la disposition des disques
- les fichiers de configurations du boot loader ne sont normalement pas à restaurer, si c'est lilo, /etc/lilo.conf est donc à traiter à part.
- /etc/lvm ne doit probablement pas être restauré, tout a été normalement créé à l'installation.
- si la machine change de nom, il ne faudra pas restaurer le fichier /etc/hostname, dans ce même cas, je vous conseille aussi de faire un grep -R ancien_nom /sauvegarde/etc et de traiter au cas par cas toutes les entrées
Pour réinstaller les paquets, encore 2 technique, avec apt :
dpkg --set-selections < selections.txt apt-get update apt-get dselect-upgrade apt-get dist-upgrade
avec aptitude :
<liste-paquets.txt xargs aptitude install
Pour copier les fichiers (et garder les droits) :
cp –ra /dossier/de/sauvegarde/* /
dans le cas où le serveur n'est pas mis en production tout de suite (juste avant sa mise en production, on récupère incrémentalement les changements qu'il y a pu avoir) :
rsync -avz root@machine_destination:/var/lib /var/ --exclude ....
voilà la migration de machine est terminé.





