transférer beaucoup de fichiers - PHP - Programmation
Marsh Posté le 22-12-2009 à 16:09:13
dans filezilla, si tu clique juste sur le dossier sans allé dedan, et que tu te le transfert ca marche ?
Marsh Posté le 22-12-2009 à 17:17:24
juste après, filezilla, il essaye de lister le répertoire, ce qui après une certaine période créé un timeout, en fait ce que fait filezilla, c'est lister et après télécharger un par un, éventuellement créer plusieurs connexions.
Marsh Posté le 22-12-2009 à 17:34:04
oui, et le script que j'ai mis, php(boucle + mysql) a été déclenché via cron
Marsh Posté le 22-12-2009 à 18:41:30
Bonne idée le zip, ca réunit les fichiers. Mais bon, un zip de cette taille c'est pas super manipulable... 3 jours pour compresser... je parle même pas de la moindre erreur d'écriture qui risque de corrompre l'intégralité de l'archive
900 000 images, ca fait beaucoup, quel que soit ton débit, t'en a pour deux jours quelle que soit la méthode...
L'idéal, c'est quand même un petit DD externe si tu as un accès physique aux deux serveurs
Marsh Posté le 22-12-2009 à 18:45:21
ouai, ta un mode qui compresse pas en zip, mais c'est sur ca va prendre du temps
Marsh Posté le 22-12-2009 à 19:21:45
J'ai d'autres fichiers, aussi nombreux mais moins volumineux, ceux des miniatures, en les compressant, la vitesse est à peu près 20 fichiers/s, vachement plus rapide que le ftp qui lui transfère 1 fichier / 2s. transférer par la suite le fichier minimisera, le temps d'envoi des commandes et du démarrage du transfert.
L'idée du DD externe est bonne aussi, très bonne même, mais les serveurs sont aux États-unis, l'un à New York l'autre au Texas.
Merci vous deux !
Marsh Posté le 22-12-2009 à 16:03:50
Bonjour,
Je ne sais pas si c'est la catégorie adéquate mais je vais écrire tout de même,
J'ai presque 900.000 images sur un serveur que je dois transférer vers un deuxième,
le premier est un Debian, le deuxième tournant sous Win Server 2003
Le problème c'est que côté vieux serveur :
un ftp "put *.jpg" se plaint et me dit que les arguments sont trop longs, normal trop de fichiers mis l'un après l'autre, ça fait une longue chaîne quand même.
Côté nouveau serveur, pas moyen de faire un get "*.jpg", timeout.
Via filezilla, qui lui télécharge les fichiers un par un, et se bloque sur la commande de listage du répertoire.
La bonne nouvelle c'est que les noms de fichiers ne sont que des numéros, encore mieux, tous les noms disponibles sur la base de données,
du coup j'ai fait une boucle qui parcourant toute la table se connecte au ftp, et envoie fichier par fichier, via ftp_put().
Cela met trop de temps, et j'ai pu transférer 100K fichiers en 24 heures, vous n'aurez pas d'idées pour optimiser le truc ? voire une autre solution plus rapide ?