2017-10-04 4 views
0

Je suis confronté à un problème qui me laisse perplexe. J'utilise LFTP dans le cadre d'un processus de transfert de fichiers automatisé tous les soirs, dans le but de collecter tous les fichiers .csv sur un site.lftp mget avec wildcard identifie incorrectement un fichier

Généralement, la commande mget, associée à un caractère générique .csv est capable de trouver et de télécharger les fichiers auxquels je l'attends. Cependant, je suis en cours d'exécution dans une situation intéressante où j'ai un fichier, qui est identifié avec ls comme:

-rw------- 0 User Name -   6461 Oct 4 14:04 file name.csv 

mais quand je lance mget * .csv, je reçois le message d'erreur suivant:

mget: Access failed: 550 /path/to/file/4 14:04 file name.csv: No such file or directory. 

Il semble que la partie %d %h:%m des métadonnées du fichier soit ajoutée au nom du fichier lors de la tentative de mise en correspondance. J'ai pensé que cela pourrait être dû à des espaces dans le nom du fichier, mais dans un test, il ne semble pas que ce soit le cas.

Résumé

  • Le fichier existe, comme vérifié par ls
  • Le fichier doit être capturé par la commande mget
  • Le fichier n'est pas capturé par la commande mget parce que quelque part le long de la ligne entre les commandes de recherche et d'obtention, des caractères supplémentaires sont ajoutés au début du nom de fichier, ce qui l'oblige à essayer d'obtenir un fichier qui n'existe pas

Des pensées sur ce que je fais mal?

Répondre

0

La réponse à cette question finit par être spécifique au serveur et à la version, mais je vais partager ce qui a fini par être le problème au cas où cela conduirait quelqu'un d'autre à ne pas avoir de problèmes à l'avenir.

Les serveurs FTP ont différents mécanismes pour échapper les noms des utilisateurs. Dans ce cas, le compte utilisateur des opérations comportait un prénom en deux parties, avec séparation des espaces.

La manière dont le serveur FTP évite (ou n'échappe pas) aux noms d'utilisateur peut entraîner le rejet d'une colonne par l'analyseur d'expressions régulières pour mget dans lftp. Réduire le nom d'utilisateur à une valeur qui était conforme aux attentes de lftp (semble être un mot, peut inclure _ et -) a fini par résoudre ce problème.