GNU/Linux >> Tutoriels Linux >  >> Linux

Comment changer l'encodage utilisé par mon serveur SFTP ?

Remarques préliminaires :

  • sftp doit utilisez UTF-8 comme encodage de nom de fichier (par exemple, voir ici comme référence). Cependant, certains clients et serveurs ne respectent pas cette exigence et enfreignent les spécifications, ce qui peut être la cause de votre problème.

  • Vous avez écrit :"Notez que j'ai commenté :AcceptEnv LANG LC_*. D'après ici, cela signifie que le serveur n'autorisera pas le client à transmettre des variables d'environnement locales."

    Il peut y avoir un malentendu sur la façon dont cela fonctionne et à quoi cela sert. Chaque fois que deux machines communiquent, elles doivent utiliser les mêmes formats de données. Par exemple, supposons que VisualCron place les noms de fichiers encodés en ISO 8859-1 dans le flux d'octets qu'il envoie au serveur Ubuntu, mais que vous forcez le serveur Ubuntu à interpréter le flux d'octets entrant (nom de fichier) comme s'il était encodé en UTF- 8. Cela ne va pas résoudre problèmes, mais cause eux.

Cela dit :

Je voudrais d'abord essayer de savoir où exactement le problème se pose. Je suppose fortement que vous avez un accès SSH ou même un accès physique (clavier) au serveur Ubuntu. Alors

  • Vérifiez si les paramètres régionaux en_US.UTF-8 est installé sur le serveur Ubuntu du tout. Veuillez noter qu'il suffit de définir le LC_ et LANG les variables d'environnement ne le font pas installer une locale.

    Au lieu de cela, vous installeriez une locale lors de l'installation du système d'exploitation ou par quelque chose comme dpkg-reconfigure locales (sur debian - je ne connais pas Ubuntu).

  • Si vous utilisez SSH, assurez-vous que votre logiciel de terminal SSH (par exemple, Putty) utilise le même encodage que le serveur.

  • Ensuite, l'étape la plus cruciale :Utiliser votre terminal SSH, manuellement créez un fichier avec un nom problématique dans le répertoire respectif afin que le client sftp de votre ordinateur portable Windows puisse le voir.

    Par exemple, pour revenir à votre question, vous pouvez créer un fichier avec le nom Liège.txt dans votre /tickets répertoire (touch /tickets/Liège.txt ). Toujours en utilisant votre terminal SSH, vérifiez soigneusement que le nom du fichier apparaît correctement lorsque vous laissez Ubuntu répertorier les fichiers dans ce répertoire (ls -al /tickets ).

  • Utilisez maintenant le client sftp sur votre ordinateur portable Windows et vérifiez s'il télécharge correctement ce fichier nouvellement créé.

    Si cela fonctionne, cela signifie que votre problème survient lorsque VisualCron transfère les fichiers sur le serveur Ubuntu. Si cela ne fonctionne pas, le problème se situe entre votre ordinateur portable Windows et le serveur Ubuntu.

Dans les deux cas, il existe des outils qui peuvent vous aider à analyser la situation.

Par exemple, vous pouvez avoir un aperçu en jouant avec convmv, qui peut convertir les noms de fichiers d'un encodage à un autre. Vous pouvez notamment convertir l'encodage de vos noms de fichiers de UTF-8 à UTF-8 . Lorsque vous faites cela et que vous êtes sûr que le nom du fichier est déjà encodé en UTF-8, il ne doit pas changer pendant cette conversion.

Vous voudrez peut-être aussi jeter un œil à chardet, qui est une bibliothèque Python qui essaie de deviner l'encodage, par exemple. noms de fichiers. Je ne suis pas un gars Python, donc je ne peux pas vous aider avec le code source. Selon la réponse acceptée à cette question, vous auriez une ligne comme chardet.detect(os.popen("ls yourfilename.txt").read()) dans votre script Python, qui affichera l'encodage le plus probable ainsi qu'un indice de confiance.

Pour résumer :

  • Assurez-vous que les noms de fichiers sur votre serveur Ubuntu vraiment sont encodés en UTF-8, en suivant les étapes ci-dessus et en utilisant les outils mentionnés ci-dessus.

  • Une fois que vous êtes absolument sûr que les noms de fichiers sur votre serveur Ubuntu sont encodés en UTF-8, vérifiez si votre client sftp sur votre ordinateur portable peut les télécharger. Sinon, essayez d'autres clients jusqu'à ce que cela fonctionne.

  • Si vous avez constaté que tous les noms de fichiers sur le serveur Ubuntu ne sont pas encodés en UTF-8, ajustez les paramètres dans VisualCron en conséquence. Je ne connais pas VisualCron et ne peux donc pas vous aider.


Linux
  1. Comment changer le memory_limit dans le fichier .htaccess

  2. Comment se connecter à SFTP à l'aide de FileZilla pour un transfert de fichiers sécurisé

  3. Comment télécharger un fichier depuis un serveur en utilisant SSH ?

  4. Comment spécifier le fichier de clé pour sshfs ?

  5. Comment modifier un fichier sur place en utilisant awk ? (comme avec sed -i)

Comment télécharger un fichier à l'aide du gestionnaire de fichiers cPanel ?

Comment changer le mot de passe root avec WHM ?

Comment changer le nom d'hôte d'un serveur cPanel/WHM ?

Comment modifier les autorisations de fichiers à l'aide de FileZilla

Comment changer le nom d'hôte du serveur dans Ubuntu

Comment changer le fuseau horaire sur le serveur Ubuntu 18.04 ?