Menu

Déplacer une arborescence FTP distante vers la machine client

NY-152 114 Messages postés mercredi 22 juillet 2009Date d'inscription 17 novembre 2017 Dernière intervention - 11 nov. 2017 à 20:45 - Dernière réponse : luckydu43 3010 Messages postés vendredi 9 janvier 2015Date d'inscription 24 juin 2018 Dernière intervention
- 18 nov. 2017 à 14:22
Bonjour,

Je dois déplacer toute une arborescence sur un serveur FTP vers mon PC en conservant son arborescence !

Utiliser l’explorateur Windows est exclus ; La connexion est trop instable et lente avec ce serveur (serveur ultra-pourri qu coupe tout le temps)

Utiliser Fillezilla, oui mais j'ai pas trouver comment déplacer quoi que ce soit !

Celui qui me dit "tu n'as qu'à copier et ensuite tu supprime du serveur", je répondrais ou mais non. Le serveur coupant à sa convenance la connexion sans toujours envoyer un code erreur, si je fais comme ça, je vais me retrouver avec le tout totalement corrompu.

En gros j'aimerais avoir un script batch qui récupère l'arborescence du serveur et la déplace sur mon PC.

Est-ce possible ?

D'avance merci
Afficher la suite 

Votre réponse

13 réponses

luckydu43 3010 Messages postés vendredi 9 janvier 2015Date d'inscription 24 juin 2018 Dernière intervention - Modifié par luckydu43 le 11/11/2017 à 21:46
0
Merci
Bonsoir !

J'avais fait un script batch de sauvegarde incrémentale pour un mec il y a de ça 2 ans je dirais
En gros le principe est simple :
Il ne copie que ce qui manque.
Pour toi c'est génial : en cas de coupure, il ne copiera que les fichiers manquants

Par contre va falloir que tu mettes la main à la pâte : mon script copie les fichiers dans un répertoire nommé à la date du jour. C'était dans le "cahier des charges" du mec ;-) Parce qu'en fait il voulait sauvegarder les fichiers de son site hébergés sur un serveur de manière périodique sans se farcir la copie de l'ensemble des données

Je vais mettre ça sur mon google drive... à toi de poster le fichier terminé dessus que je voie un peu (bah oui... faut partager :-D )
En même temps je vais essayer de m'y remettre pour te faire une version qui marche, si tu ne le fais pas avant moi ;-)

EDIT : Je t'ai refait un .bat... il s'appelle hardCopy.bat
T'as le .bat initial si tu veux des features en plus
A toi de voir s'il fonctionne
Y a des protections sur la machine qui lance le .bat, si le répertoire n'est pas accessible, si le répertoire source n'est pas crée... j'ai essayé de faire un truc propre : dis-moi ce que t'en penses ;-)

Ah et j'oubliais... je t'ai fait une de ces gestion des logs... tu m'en diras des nouvelles :-D

EDIT : Si je débranche mon NAS pendant la copie... elle s'arrête au bout de 30 secondes mais rien ne s'affiche à l'écran !
Par contre TOUT est dans le fichier log.txt : tu verras vite si la copie a abouti ;-) D'où l'intérêt de loguer...

La vie quotidienne peut vite vous rendre accro et vous faire perdre aux jeux-vidéos ! 
Un peuple sacrifiant sa liberté pour plus de sécurité perd les deux.
NY-152 114 Messages postés mercredi 22 juillet 2009Date d'inscription 17 novembre 2017 Dernière intervention - 16 nov. 2017 à 01:32
J'ai vite fait regarder les batch et même si ils sont bien écrit, il ne traite absolument pas de serveur FTP.
luckydu43 3010 Messages postés vendredi 9 janvier 2015Date d'inscription 24 juin 2018 Dernière intervention - 16 nov. 2017 à 21:07
J'ai tapé sur mon NAS pour tester !
Après faut dire que je monte une lettre de lecteur virtuelle histoire que ça marche

Normalement HardCopy.bat laisse la lettre de lecteur active dans l'explorateur de fichiers... essaye en ouvrant ce lecteur, remplis les champs de connexion s'il sont demandés, et relance le .bat

Y a la commande FTP qui te permet des trucs
https://www.developpez.net/forums/d900786/general-developpement/programmation-systeme/windows/scripts-batch/commandes-ftp-fichier-batch/
Robocopy est une commande non valide dans ftp, ça sent... mauvais

par contre t'as des put et des get... peut-être que ça peut aider

Essaie de faire un truc avec l'exemple fourni en lien et mon code, et reviens me voir des fois que je voie s'il y a un truc qui va pas
NY-152 114 Messages postés mercredi 22 juillet 2009Date d'inscription 17 novembre 2017 Dernière intervention > luckydu43 3010 Messages postés vendredi 9 janvier 2015Date d'inscription 24 juin 2018 Dernière intervention - 17 nov. 2017 à 15:15
Put, Get ça je connais mais je cherchais une méthode récursive
luckydu43 3010 Messages postés vendredi 9 janvier 2015Date d'inscription 24 juin 2018 Dernière intervention - 17 nov. 2017 à 16:27
Je te laisse regarder ça
https://blog-du-grouik.tinad.fr/post/2011/12/28/Windows-batch-Automatiser-le-transfert-par-FTP

Le truc c'est que je n'ai pas vraiment pris le temps de configurer mon NAS pour y accéder en FTP, faute d'en avoir besoin
Le temps que je configure mon NAS, que je me mette à tester le .bat et tout et tout... t'as autant de temps pour t'approprier le code que je viens de te fournir ;-)
luckydu43 3010 Messages postés vendredi 9 janvier 2015Date d'inscription 24 juin 2018 Dernière intervention - 18 nov. 2017 à 14:22
BON.
Après par mal de recherches & essais & tapage de code batch en mode bourrin (ce qui m'a d'ailleurs donné +1000 XP et un trophée " god master level asian utilisation de la commande ftp" :-D )...
On peut récupérer l'ensemble des fichiers contenus dans les répertoires et sous-répertoires d'un FTP distant en ligne de commandes.
C'est, par contre, la copie sur le client qui ne peut pas gérer l'arborescence, due à des limitations pures et simples de mget

Tout ceci est évidemment valable dans l'autre sens, dans le cas de mput

Ou alors je sais pas, j'en suis déjà à 320 lignes de batch de test, si il y a VRAIMENT moyen de le faire en batch ça doit se compter en milliers de lignes de code


En clair

A moins d'avoir monté une lettre de lecteur réseau de ton serveur FTP (ce qui rend l'utilisation de mon .bat pertinente)...

Faut que tu cherches du côté d'un logiciel dédié.
FileZilla en est incapable ?
Commenter la réponse de luckydu43
kaumune 16817 Messages postés lundi 26 novembre 2007Date d'inscriptionContributeurStatut 24 juin 2018 Dernière intervention - Modifié par kaumune le 17/11/2017 à 16:34
0
Merci
Je dois déplacer toute une arborescence sur un serveur FTP vers mon PC en conservant son arborescence ! 


Slt

On ne fait jamais ça

C'est contraire à toute déontologie informatique

Si, de plus, comme tu le dit le serveur est instable, si ça merde pendant le transfert, tu risques de perdre source et destination
On copie et on efface la source une fois la copie vérifiée

 
luckydu43 3010 Messages postés vendredi 9 janvier 2015Date d'inscription 24 juin 2018 Dernière intervention - 17 nov. 2017 à 17:22
Slt
Euh... dsl mais là je ne te suis pas trop
J'ai eu à aider un collègue qui avait à faire ça (tout du moins un truc carrément similaire) de manière tout à fait compréhensible.
Mais la source n'était pas en FTP.
En quoi ça change, que ce soit en FTP, de copier l'arborescence ?

"On copie et on efface la source une fois la copie vérifiée"
C'est à l'opposé même du principe d'une sauvegarde... avoir 3 fois le même fichier sur un support et un emplacement différent...
C'est propre à la "déontologie FTP", de demander la suppression du fichier distant quand on l'a copié ? --'
NY-152 114 Messages postés mercredi 22 juillet 2009Date d'inscription 17 novembre 2017 Dernière intervention > luckydu43 3010 Messages postés vendredi 9 janvier 2015Date d'inscription 24 juin 2018 Dernière intervention - 17 nov. 2017 à 18:21
Sur ce serveur, il y a pleins de fichiers dans un arborescence complexe MAIS chaque fichier a son empreinte SHA-256.

Mon but serait schématiquement de parcourir toute l'arborescence, de la recréer en local et à chaque copie, faire la vérif de l'empreinte et de supprimer la source sur le serveur.

Kammune, Rien à voir avec la déontologie. Pour être déontologique, il faut des empreinte voir des fichiers de parité (PAR2 par exemple) mais rien n'interdit de supprimer une source si elle a été correctement récupéré, ce qui est mon cas.

luckydu43, malheureusement on ne peut pas (à ma connaissance) parcourir récursivement un FTP, pas avec FTP;exe, donc pas nativement sous Windows. Sous Linux, peut être mais ma machine sous Linux n'est pas dispo pour le moment.
luckydu43 3010 Messages postés vendredi 9 janvier 2015Date d'inscription 24 juin 2018 Dernière intervention > NY-152 114 Messages postés mercredi 22 juillet 2009Date d'inscription 17 novembre 2017 Dernière intervention - 17 nov. 2017 à 18:27
Ça c'est parce que j'ai pas assez creusé :-D
Garde ton topic sous le coude, des fois que je me mette à sortir une solution viable ;-)
luckydu43 3010 Messages postés vendredi 9 janvier 2015Date d'inscription 24 juin 2018 Dernière intervention - 17 nov. 2017 à 19:53
Je suis sur une bonne piste. Puis avec mon NAS qui est maintenant "tapable" en FTP, ça va aller plus vite, les tests ;-)
Je te tiendrai au courant
NY-152 114 Messages postés mercredi 22 juillet 2009Date d'inscription 17 novembre 2017 Dernière intervention > luckydu43 3010 Messages postés vendredi 9 janvier 2015Date d'inscription 24 juin 2018 Dernière intervention - 17 nov. 2017 à 21:02
Pas de soucis :)
Commenter la réponse de kaumune