Plan du KiWi
Si vous n'avez pas trouvé votre bonheur dans les liens plus haut, le plan vous montrera les quelques pages “cachées” de ce kiwi !
Si vous vous posez la question, il y'a déjà un soucis. On fait des sauvegardes pour éviter de se retrouver face à un joli repertoire vide où à une config qu'on avait faîtes aux petits oignons et qui nous a pris une soirée. Bref, c'est juste indispensable.
Il y'a plein de méthodes qui existent. Des logiciels, on peut faire une image complète de son système afin de tout réinstaller. Je trouve ça long et trop volumineux à transporter. De plus ça n'exclus pas des corruptions du fichiers, des soucis de compatibilités, etc..
Il y'a également l'emploi de Backup Manager qui permet de créer des fichiers .tar.gz et de les pousser sur un serveur, de les graver sur un CD, bref ça semblait la solution la plus adaptée. Seulement, le temps que cela m'aurait pris à configurer ce logiciel, j'avais aussi vite fait de me faire un script maison et c'est ce que j'ai fait. En plus, je suis sûr de ce qui se passe et puis…c'est fun :).
Bah… ouais ? Allez on y va, je vais copier/coller mon script ici et ajoutez quelque commentaire (les commandes étant plutôt évidentes, ça vous donnera une idée pour faire le votre, sachez que ça ne m'a pris qu'une heure pour faire tout cela)
#!/bin/sh DATE=$(date +%d-%m-%Y-%H-%M) DATEJ=$(date +%d-%m-%Y) num_month=$(date +%e) num_weekday=$(date +%u) num_week=$(date +%W) mkdir /var/www/geekboy.fr/www/stuff/backup/data/config/ mkdir /var/www/geekboy.fr/www/stuff/backup/data/config/apache mkdir /var/www/geekboy.fr/www/stuff/backup/data/config/irssi # Ce script doit être executer avec les droits de superutilisateur test -w /root; if [ ! "$?" -eq "0" ]; then echo "Vous devez executer ce script en tant que superutilisateur." exit 0 fi echo -en "Backup $HOSTNAME : \E[47;31m\033[1mSTART\033[0m \n"
echo -en "--> Saving Apache config files : \E[47;31m\033[1mstart\033[0m \n" cp -R /etc/apache2/conf.d/ /var/www/geekboy.fr/www/stuff/backup/data/config/apache/ cp -R /etc/apache2/apache2.conf /var/www/geekboy.fr/www/stuff/backup/data/config/apache/ cp -R /usr/share/apache2/icons/ /var/www/geekboy.fr/www/stuff/backup/data/config/apache/ cp -R /etc/apache2/mods-available/autoindex.conf /var/www/geekboy.fr/www/stuff/backup/data/config/apache/ cp -R /etc/apache2/sites-available/ /var/www/geekboy.fr/www/stuff/backup/data/config/apache/ echo -en "--> Saving Apache config files : \E[47;32m\033[1mdone\033[0m \n"
echo -en "--> Saving sshd config files : \E[47;31m\033[1mstart\033[0m \n" cp -R /etc/ssh/sshd_config /var/www/geekboy.fr/www/stuff/backup/data/config/ cp -R /etc/ssh/banniere /var/www/geekboy.fr/www/stuff/backup/data/config/ cp -R /var/run/motd /var/www/geekboy.fr/www/stuff/backup/data/config/ echo -en "--> Saving sshd config files : \E[47;32m\033[1mdone\033[0m \n"
echo -en "--> Saving MySQL config files : \E[47;31m\033[1mstart\033[0m \n" cp -R /etc/mysql/my.cnf /var/www/geekboy.fr/www/stuff/backup/data/config/ echo -en "--> Saving MySQL config files : \E[47;32m\033[1mdone\033[0m \n" echo -en "--> Saving PHP config files : \E[47;31m\033[1mstart\033[0m \n" cp -R /etc/php5/apache2/php.ini /var/www/geekboy.fr/www/stuff/backup/data/config echo -en "--> Saving PHP config files : \E[47;32m\033[1mdone\033[0m \n"
echo -en "--> Saving config files : \E[47;31m\033[1mstart\033[0m \n" cp -R /home/kinji/.vimrc /var/www/geekboy.fr/www/stuff/backup/data/config/ cp -R /home/kinji/.bashrc /var/www/geekboy.fr/www/stuff/backup/data/config/ cp -R /home/kinji/.irssi/config /var/www/geekboy.fr/www/stuff/backup/data/config/irssi/ echo -en "--> Saving config files : \E[47;32m\033[1mdone\033[0m \n"
echo -en "--> Opti MySQL : \E[47;31m\033[1mstart\033[0m \n" mysqlcheck --auto-repair -a -o -s -h localhost -B geekboy -pPASSWORD -ugeekboy mysqlcheck --auto-repair -a -o -s -h localhost -B restinpieces -pPASSWORD -uroot echo -en "--> Opti MySQL : \E[47;32m\033[1mdone\033[0m \n"
echo -en "--> Dump SQL : \E[47;31m\033[1mstart\033[0m \n" cd /var/www/geekboy.fr/www/stuff/backup/data/ mysqldump --opt -h localhost -B geekboy -pPASSWORD -ugeekboy | gzip -9 > backup-geekboy-${DATE}.sql.gz mysqldump --opt -h localhost -B restinpieces -pPASSWORD -uroot | gzip -9 > backup-rip-${DATE}.sql.gz echo -en "--> Dump SQL : \E[47;32m\033[1mdone\033[0m \n"
echo -en "--> Dump Trac VI51 : \E[47;31m\033[1mstart\033[0m \n" trac-admin /var/trac/VI51 hotcopy /var/www/geekboy.fr/www/stuff/backup/data/trac/VI51 > /dev/null 2>&1 tar -cjf /var/www/trac_vi51.tar.bz2 /var/www/geekboy.fr/www/stuff/backup/data/trac/VI51 > /dev/null 2>&1 rm -Rf /var/www/geekboy.fr/www/stuff/backup/data/trac/VI51/ mv /var/www/trac_vi51.tar.bz2 /var/www/geekboy.fr/www/stuff/backup/data/ echo -en "--> Dump Trac VI51 : \E[47;32m\033[1mdone\033[0m \n"
echo -en "--> Dump Subversion VI51 : \E[47;31m\033[1mstart\033[0m \n" svnadmin dump /var/svn/VI51 > /var/www/geekboy.fr/www/stuff/backup/data/VI51.svndump echo -en "--> Dump Subversion VI51 : \E[47;32m\033[1mdone\033[0m \n"
echo -en "--> TAR f00.fr : \E[47;31m\033[1mstart\033[0m \n" cd /var/www/ tar -cjf /var/www/f00.tar.bz2 f00.fr/ echo -en "--> TAR f00.fr : \E[47;32m\033[1mdone\033[0m \n"
echo -en "--> TAR geekb*y : \E[47;31m\033[1mstart\033[0m \n" cd /var/www/ tar --exclude=www/stuff/backup/intermediates --exclude=www/stuff/backup/weekly --exclude=www/stuff/backup/month -cjf /var/www/geekboy.tar.bz2 geekboy.fr/ echo -en "--> TAR geekb*y : \E[47;32m\033[1mdone\033[0m \n" #echo -en "--> TAR RestInPieces : \E[47;31m\033[1mSTART\033[0m \n" #cd /var/www/ #tar -cjf /var/www/rip.tar.bz2 restinpieces/ #echo -en "--> TAR RestInPieces : \E[47;32m\033[1mdone\033[0m \n" mv /var/www/f00.tar.bz2 /var/www/geekboy.fr/www/stuff/backup/data/ #mv /var/www/rip.tar.bz2 /var/www/geekboy.fr/www/stuff/backup/data/ mv /var/www/geekboy.tar.bz2 /var/www/geekboy.fr/www/stuff/backup/data/ echo -en "--> Moving tar ball archives to final destination" rm /var/www/geekboy.fr/www/stuff/backup/data/backup-geekboy-*.sql.gz rm /var/www/geekboy.fr/www/stuff/backup/data/backup-rip-*.sql.gz echo "Removing SQL dump" mkdir /var/www/geekboy.fr/www/stuff/backup/data/${DATEJ} mv /var/www/geekboy.fr/www/stuff/backup/data/* /var/www/geekboy.fr/www/stuff/backup/data/${DATEJ}
if [ "$num_weekday" == 1 ] && [ "$num_week%4" == 0 ]; then
mv /var/www/geekboy.fr/www/stuff/backup/data/* /var/www/geekboy.fr/www/stuff/backup/month
rm -Rf /var/www/geekboy.fr/www/stuff/backup/weekly/*
echo -en "--> Moving tar ball archives to final destination"
else
if [ "$num_weekday" == 1 ] && [ "$num_week%4" != 0 ]; then
mv /var/www/geekboy.fr/www/stuff/backup/data/* /var/www/geekboy.fr/www/stuff/backup/weekly
rm -Rf /var/www/geekboy.fr/www/stuff/backup/intermediates/*
echo -en "--> Moving tar ball archives to final destination"
else
mv /var/www/geekboy.fr/www/stuff/backup/data/* /var/www/geekboy.fr/www/stuff/backup/intermediates
echo -en "--> Moving tar ball archives to final destination"
fi
fi
echo -en "Backup : \E[47;32m\033[1mDONE\033[0m \n"
Il vous suffit très logiquement de faire l'inverse de votre sauvegarde. Extraire vos fichiers aux endroits kivonbien, remplacer les configs par défaut avec les votres, etc.. Bien évidemment, ne faîtes pas ça stupidemment, adaptez vous un minimum et vous pourrez réinstaller un serveur tout entier en un rien de temps !