2009-01-11 6 views
1

J'ai un script bash pour télécharger des fichiers sur mon serveur web. Le problème est qu'il semble supposer que lorsqu'ils arrivent sur le serveur web, ils manquent les 4 Ko du fichier.FTP ne pas télécharger les 4 derniers octets

Sur mon ordinateur, le fichier est répertorié comme 8 ko (arrondi à la valeur supérieure car les blocs sont 4 Ko), mais seulement 4 Ko sont téléchargés.

Voici la partie amusante/déroutante, cela n'affecte que le dernier fichier téléchargé comme s'il fermait la session plus tôt.

Est-ce un problème connu? La page de manuel n'a rien que je puisse voir.

Ci-dessous une copie du script (détails moins de connexion bien sûr):

ftp -in <ftp.host> <<EOF 
quote USER <username> 
quote PASS <password> 

binary 

put file1.xml 
put file2.xml 
put file3.xml 
put file4.xml 
put file5.xml 
put file6.xml 
put file7.xml 
put file8.xml 
put file9.xml 
put file0.xml 
quit 
EOF 

Un lien vers l'un des fichiers d'exemple est http://woarl.com/xml/f8d9b3b981a356efc1ecbb705b369c9e.xml

Répondre

3

La dernière commande put transmet probablement toujours des données (via une connexion passive) lorsque le client quitte. BYE est juste un alias pour quitter, donc ça ne va pas aider, mais peut-être que vous pourriez essayer d'ajouter une autre commande entre le put et le quit, par exemple ls.

Ou si aucun pare-feu n'interdisait, en configurant la session, le mode actif forcerait probablement le client à attendre la fin de la dernière put avant d'émettre le stoppé.

+0

Excellente idée. J'allais mettre un put supplémentaire (pour un fichier qui n'est pas nécessaire) mais je me suis dit que ce serait une façon désordonnée de le faire, le ls n'est pas parfait mais encore mieux. – Teifion

0

Sons comme votre programme FTP est en train de lire « quitter » immédiatement après avoir commencé le "put" mais avant de le laisser finir.

Vous souhaitez probablement trouver une commande autre que quit qui attend la fin des téléchargements. Peut-être "BYE" ou une telle.

+0

Non, pas de différence sur celui-ci, bien qu'il l'ait cassé à un point différent. – Teifion

2

Pas ce que vous demandez, bien sûr, mais pour ce genre de choses, j'aime installer les utilitaires ncftp. Cela inclut ncftpput et ncftpbatch pour grouper un tas de commandes ftp et les exécuter.

Questions connexes