[trucs et astuces] "Déménager" un site web

fandecine

WRInaute passionné
Une des angoisses du webmaster est le changement de serveur d'un site web. Outre les difficultés inhérentes à un changement d'environnement, il semble que bon nombre de wrinautes soient à la recherche d'une solution rapide pour déménager le contenu (cela m'arrive de parcourrir les archives :wink: ).

En effet, lorsque le contenu du site fait plusieurs centaines de Mo voir plusieurs Go cela peut être problématique.

Si vous disposez d'un accsé ssh, il existe une solution simple et rapide en ligne de commande: ncftp. Avec ce programme, vous pourrez faire un transfert ftp de serveur à serveur (donc théoriquement dans la plupart des cas à 100 mega bits/sec).

Depuis la machine de destination vous vous connectez à la machine source de la sorte:
Code:
serveur dest > ncftp -uloginftpsource -pmotdepasseftpsource nomduserveursource

Pour effectuer des commandes sur le serveur source vous utilisez les commandes linux classiques (cd,ls, chmod etc...) et sur le serveur de destination (lcd, lls, lchmod ...).

Une fois le répertoire source et destination définis il suffit d'un
Code:
get -R *

Et vous pouvez vaquer à vos occupations... :D

Pour donner un exemple le tranfert de 22452 fichiers représentant 5500 Mo m'a pris exactement 1h 53 mn 29s ec . Qui dit mieux! :D
 

biddybulle

WRInaute passionné
le top c'est d'avoir un virtuel, on le met en pause, on le copie sur l'autre serveur, on le relance et on modifie juste les pointages dns.

mais ncftp est une excellente commande en effet
 

rog

WRInaute passionné
@biddybulle
je ne vois pas trop l'avantage

@fandecine
est-ce qu'il verifie l'intégrité du fichier copié ?

rog
 

biddybulle

WRInaute passionné
L'avantage est par exemple de ne pas perdre trop de temps à configurer ses bases de données, son serveur web, son accès FTP, son serveur de messagerie, le firewall ...

Une copie du fichier qui regroupe le site web et le serveur virtuel et tu le relances et c'est terminé tu as réalisé ta migration. Reconfigurez un nouveau serveur prend quand même du temps c'est déjà cela de gagner
 

titiplanti

WRInaute occasionnel
Merci !Comme je vais bientôt devoir migrer, le sujet m'intéresse. Voici quelques questions de newbi, si quelqu'un peut m'éclairer ...

fandecine a dit:
Si vous disposez d'un accsé ssh, il existe une solution simple et rapide en ligne de commande: ncftp. Avec ce programme, vous pourrez faire un transfert ftp de serveur à serveur (donc théoriquement dans la plupart des cas à 100 mega bits/sec).

Depuis la machine de destination vous vous connectez à la machine source de la sorte:
Code:
serveur dest > ncftp -loginftpsource -ploginftpsource nomduserveursource
Comment sont saisis les paramètres ? (nomduserveursource ? le mot de passe ftp ?)

Une fois le répertoire source et destination définis il suffit d'un
Code:
get -R *
Comment définit-on les répertoires ?
 

Morph1er

WRInaute occasionnel
Salut,

Tu avais rsync qui est "de base" sur pas mal de distrib et qui est surtout exactement fait pour ce genre de transfert lourd ^^.
 

Audiofeeline

WRInaute accro
Perso, j'ai tous les fichiers sur mon PC et je fais un BackUp de ma base une fois par mois...
Si je devait déménager le site je n'aurai qu'à uploader le tout...
 

ACth

WRInaute impliqué
fandecine a dit:
Depuis la machine de destination vous vous connectez à la machine source de la sorte:
Code:
serveur dest > ncftp -loginftpsource -ploginftpsource nomduserveursource
on indique deux fois le login ?
( et le nom du serveur c.à.d ? )

-> on indique pas le chemin de destination ?


fandecine a dit:
Une fois le répertoire source et destination définis il suffit d'un
Code:
get -R *
Ca sert à quoi cette commande ?
 

fandecine

WRInaute passionné
Dites donc les enfants, je vous ai mis le lien vers la doc de ncftp ! :wink:

ACth a dit:
on indique deux fois le login ?

Il y en a un qui lit les posts. J'ai bien sur fait une erreur (que je viens de corriger) la bonne syntaxe est :
Code:
ncftp -uloginftpsource -pmotdepasseftpsource nomduserveursource

En clair: -u suivi du login, -p suivi du mot de passe puis le nom du serveur.

Pour fixer les chemins sur le serveur source et destination comme indiqué dans le post on utilise les commandes linux, par exemple cd pour agir sur le serveur source et lcd sur le serveur destination.

La commande get -R * indique de copier l'intégralité du dossier source (fichiers + répertoires) sur le serveur destination.

Mais, ils ont pas lu la doc ou quoi! :D

Il n'y a pas de vérification d'intégrité à ma connaissance.

Morph1er a dit:
Tu avais rsync qui est "de base" sur pas mal de distrib et qui est surtout exactement fait pour ce genre de transfert lourd ^^.

C'est terrible cette manie de poster ce genre de truc! 8O Bien sur qu'il y a rsync et je pourrais en citer 7 ou 8 de plus!

Mais:

1 - rsync n'est pas fait pour effectuer des tranferts ftp mais pour synchroniser deux arborensecences de fichiers et ce en sftp, ce qui implique un paramétrage des droits d'accés ssh qui sort du cadre de ce post (simplicité avant tout!). Rsync est généralement utilisé comme outil de backup ou de synchronisation sur des serveurs mirroir.

2 - si tu allais au bout des choses en faisant profiter la communauté de tes connaissances en publiant un exemple de paramétrage et un script bash par exemple! :twisted:
 

AW

WRInaute passionné
sympa ce ncftp, je connaissais pas merci Fandeciné, Je ne suis pas du tout un specialiste linux mais il me semble que ça doit aussi etre possible avec lftp
 

Morph1er

WRInaute occasionnel
fandecine a dit:
Morph1er a dit:
Tu avais rsync qui est "de base" sur pas mal de distrib et qui est surtout exactement fait pour ce genre de transfert lourd ^^.

C'est terrible cette manie de poster ce genre de truc! 8O Bien sur qu'il y a rsync et je pourrais en citer 7 ou 8 de plus!

Mais:

1 - rsync n'est pas fait pour effectuer des tranferts ftp mais pour synchroniser deux arborensecences de fichiers et ce en sftp, ce qui implique un paramétrage des droits d'accés ssh qui sort du cadre de ce post (simplicité avant tout!). Rsync est généralement utilisé comme outil de backup ou de synchronisation sur des serveurs mirroir.

2 - si tu allais au bout des choses en faisant profiter la communauté de tes connaissances en publiant un exemple de paramétrage et un script bash par exemple! :twisted:
Pas besoin de s'enflammer...
Je ne prétends pas être un pro de linux. J'essaie d'apprendre... mais surtout je suis ouvert d'esprit... Mais Rsync est un logiciel très réputé pour ce genre de manipulation de synchronisation lors d'un basculement.
Comme tout novice, lorsque je ne connais pas je fait un test sur le transfert d'un fichier. Si ça passe, je fait en sorte de transférer tous les fichiers, sinon, je refait des tests...

Le manuel de rync avec des exemples : http://www.delafond.org/traducmanfr/man ... ync.1.html
Le site de rsync qui comporte des scripts exemple:
http://samba.anu.edu.au/rsync/

Ta méthode consiste en gros à faire du fxp. L'installation d'un progz supplémentaire n'est pas nécessaire. Il suffit juste de prendre un client ftp en local et de se connecter en même temps sur les 2 serveurs et balancer de l'un à l'autre...

Tu as aussi la méthode en ssh du wget. Tu archives tes dossiers et tu fait un wget de l'archive depuis le nouveau serveur... (pas mal pour les petits sites)

Il y a plusieurs méthodes. Ta solution ne conviendra peut-être pas sur des serveurs virtuels où il est parfois interdit d'installer d'autres progz. Ta solution ne conviendra peut-être pas à ceux en mutualisé et qui ont quand même un accès en ssh (restreint).
 

Discussions similaires

Haut