transférer beaucoup de fichiers

transférer beaucoup de fichiers - PHP - Programmation

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 ?

Reply

Marsh Posté le 22-12-2009 à 16:03:50   

Reply

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 ?

Reply

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.

Reply

Marsh Posté le 22-12-2009 à 17:23:47    

galere...
t'as une connexion SSH du ton serveur ?

Reply

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


Message édité par Nethacker le 22-12-2009 à 17:56:51
Reply

Marsh Posté le 22-12-2009 à 18:09:11    

essaye de connecté en SSH via filezilla  (sftp)

Reply

Marsh Posté le 22-12-2009 à 18:23:44    

je n'ai que sftp pas de ftp.

Reply

Marsh Posté le 22-12-2009 à 18:28:27    

sous commande ssh faire un zip de ton dossier ?

Reply

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 :D
 
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 ;)


Message édité par Pascal le nain le 22-12-2009 à 19:04:21
Reply

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

Reply

Marsh Posté le 22-12-2009 à 18:45:21   

Reply

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 !


Message édité par Nethacker le 22-12-2009 à 19:22:26
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed