Import fichiers de config

Bonjour à tous.

Je dois monter un serveur web sous Debian, dans une machine virtuelle Hyper-V. Ce serveur vient en remplacer un autre, également sous Debian, mais physique.

L’install est terminée et s’est bien passée.
Cependant je me dis que je gagnerais beaucoup de temps si je pouvais simplement prendre les fichiers de conf/dossiers de l’ancien serveur et de les copier/coller sur celui-ci (via WinSCP par exemple).
Etant débutant Linux, plusieurs questions me viennent :

  • Quels fichiers faut-il que je prenne ? Je pense à /etc/apache2, /var/www, /etc/php5, /etc/mysql et /etc/phpmyadmin, ceux-ci paraissent évidents mais j’ai un peu peur d’en oublier.
  • Puis-je copier des dossiers complets sans soucis ?
  • Cela va t-il fonctionner et garder la configuration de l’ancien serveur ?

Merci d’avance de vos réponses, je me suis penché sur le sujet avant de venir poster ici, mais malheureusement je suis un peu pris par le temps, et je n’ai rien trouvé qui m’apporte vraiment une réponse sûre.

Cordialement.

Si tu veux sauvegarder une base mysql, /etc/mysql n’y suffira pas. Voir /var/lib/mysql.
Tu pourrais aussi cloner l’installation entière et affiner les détails (/etc/hostname, /etc/fstab, /etc/network/interfaces …).

Tel que tu t’embarques avec WinSCP, il te faudrait un serveur virtuel ssh sous linux sur pied en prise avec l’espace de stockage à reproduire. Autant dire que le serveur devra être en état de marche avant de songer à transplanter des fichiers.
Il serait préférable d’utiliser linux pour transplanter du linux ne serait-ce que pour jouir de la compatibilité de système de fichiers. Utiliser Microsoft pour transplanter du linux n’est pas idéal. Tu t’exposes à des difficultés, des limitations, des incompatibilités, des impasses …
Travailler de linux à linux serait plus recommandable.

Ok, merci des conseils.

Ce qui me bloque un peu c’est le fait de transplanter des dossiers entiers. Dans la pratique c’est plus simple, mais est-ce que cela ne vas pas poser quelques problèmes ?

On peut copier des dossiers garnis de fichiers. Outre le contenu, il est important d’en reproduire les appartenances et les permissions. Voilà pourquoi se baser sur un système linux pour transplanter des fichiers est plus facile.
Lorsque je transplante des fichiers de système à système, bien souvent je m’appuye sur des archives tar+compression pour conserver les attributs.
En procédant de la sorte, on diminue le nombre de transferts, on diminue la quantité de données à transférer grâce à la compression et on reproduit les permissions. De plus, si l’on conserve ces archives à l’abri, elles font office de sauvegardes de secours.

Imaginons que tu veuilles faire une archive qui englobe

/etc/apache2
/etc/php5
/etc/phpmyadmin
/etc/mysql
/var/www
/var/lib/mysql

Tar peut se baser sur une liste de fichiers qui recense les éléments à prendre en considération
Tu crées un fichier contenant ces références que nous appellerons liste-tar.
Créer l’archive tar :

tar cvzf ww.tar.gz $(cat liste-tar)

c comme créer, v comme verbe (blabla), z comme zip (gzip), f comme fichier, ww.tar.gz : nom du fichier archive créé
$ : commande shell à effectuer entre parenthèses

Tu transfères l’archive ww.tar.gz vers le système visé puis tu la décompresses (||décomprimes)

tar xvzf ww.tar.gz

(x : eXtraire)

Détail d’importance : pas d’opérations en cours pendant la sauvegarde et la restauration.
Arrêter mysqld avant la sauvegarde et avant la restauration.

/etc/init.d/mysql stop

relancer mysqld après opération.

Merci beaucoup pour ces précisions :slightly_smiling:

Du coup si je procède de la sorte le fait de “passer par un Windows” ne pose plus de problème si ?
Je crée l’archive sur l’ancien serveur, ensuite je la récupère sur mon PC Windows via WinSCP et la renvoie sur le nouveau, depuis lequel je la décompresse.

Petite question, Si je fais une archive qui englobe tout, une fois décompressée les fichiers/dossiers vont tous être à l’endroit depuis lequel j’ai lancé la décompression ? Si c’est le cas il vaudrait mieux que je fasse une archive par dossier, sans quoi je vais être obligé de tout déplacer manuellement.

un petit rsync -avz conserve aussi les droits de fichiers tout en compressant le transfert.

par contre, la commande suivante est pas mal si tu veux installer les memes paquets sur le serveur virtuel que le physique:

pour recup les paquets sur serveur depart

dpkg --get-selections > fichier

pour reinstaller les paquets sur serveur de destination

dpkg --set-selections < /chemin_vers_la_liste/mespaquets.list
apt-get dselect-upgrade
apt-get dist-upgrade

Génial ! Merci beaucoup :slightly_smiling: