Teddy Payet
CTO Freelance

Récupérer des fichiers d’un serveur à un autre par SFTP

Lorsqu’on développe des sites, nous avons une version de chaque site selon son statut : production, pré-production, développement, etc. [1]. Il est nécessaire d’avoir les dernières images et médias du site de production sur les autres versions du site pour avoir quelque chose au plus proche de la réalité.
Bien entendu, on prend le contexte ici d’améliorations d’un site, et pas une ré-écriture totale du site.

Préambule

Nous avons prendre en compte 2 types de site : la production et la recette. Nous pouvons accéder à minima le site de production par sftp et le site de recettes par ssh. Ce n’est pas une généralité certes, mais c’est personnellement mon quotidien.
L’arborescence que nous allons décrire est celle d’un site sous SPIP. Mais cela n’empêchera pas l’utilisation de cette mécanique sur des sites gérés par un autre CMS ou un Framework.

Se connecter au serveur de recettes

Pour cela, nous allons ouvrir le Terminal pour entrer les quelques lignes de commandes adéquates. En premier lieu, nous nous connectons au serveur :

Nous renseignons le mot de passe à l’invitation du Terminal. Puis nous regardons où nous nous trouvons sur le serveur en tapant :

Nous allons nous placer dans le répertoire recueillant les médias de notre site internet :

Bien, cela fait, nous vérifions que nous avons bien sftp accessible en ligne de commande. Pour cela nous saisissons ceci :

Parfait si nous avons cela. Sinon, il faut installer « sftp» sur notre serveur.

Récupérer les médias sur le serveur de production

Après les actions précédentes, nous pouvons maintenant se connecter au serveur de production depuis le serveur de recettes. Il nous faut saisir la ligne suivante :

Nous tapons le mot de passe maintenant. Vérifions où nous nous trouvons sur le serveur de production :

Et par sécurité, vérifions que le serveur de production et notamment sftp, reconnaît bien notre emplacement sur le serveur de recettes :

Bien. Nous sommes presque prêts à récupérer les médias. Pour cela, on doit aussi se placer dans le répertoire des médias du site de production :

Maintenant, récupérons tous les médias de ce répertoire et de ces sous-répertoires :

N’oublions pas de mettre le point à la fin de la commande. Le « P » dit à sftp de récupérer tous les fichiers en gardant les propriétés des fichiers. Le « r » indique à sftp de récupérer les fichiers du répertoires courant et de ses sous-répertoires.
Nous verrons alors le terminal afficher chaque action et fichier récupérés, avec le temps de chargement estimé et le poids du fichier.

Et voilà. Rien de plus simple. Il suffit de patienter le temps que le serveur rapatrie tous les médias du site de production vers le site de recettes.

 

P.-S.

Un petit clin d’œil à une super développeuse front-end : @LaurieAmiot
Image : © Jay Mantri

Notes

[1D’ailleurs à ce sujet, je vous invite à lire la documentation du plugin « Info SPIP »