GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo cambiar la codificación que usa mi servidor SFTP?

Observaciones preliminares:

  • sftp debe use UTF-8 como codificación de nombre de archivo (por ejemplo, consulte aquí como referencia). Sin embargo, hay clientes y servidores que no siguen ese requisito y violan las especificaciones, lo que puede ser la causa de su problema.

  • Usted escribió:"Tenga en cuenta que he comentado:AcceptEnv LANG LC_*. De acuerdo con aquí, esto significa que el servidor no permitirá que el cliente pase variables de entorno locales".

    Puede haber un malentendido con respecto a cómo funciona esto y para qué sirve. Cada vez que dos máquinas se comunican, deben usar los mismos formatos de datos. Por ejemplo, suponga que VisualCron coloca nombres de archivos codificados como ISO 8859-1 en el flujo de bytes que envía al servidor Ubuntu, pero obliga al servidor Ubuntu a interpretar el flujo de bytes entrante (nombre de archivo) como si estuviera codificado en UTF- 8. Eso no resolver problemas, pero causa ellos.

Habiendo dicho esto:

Primero intentaría averiguar dónde surge exactamente el problema. Supongo firmemente que tiene acceso SSH o incluso acceso físico (teclado) al servidor Ubuntu. Entonces

  • Compruebe si la configuración regional en_US.UTF-8 está instalado en el servidor Ubuntu en absoluto. Tenga en cuenta que simplemente configurando el LC_ y LANG las variables de entorno no instalar una configuración regional.

    En su lugar, instalaría una configuración regional durante la instalación del sistema operativo o mediante algo como dpkg-reconfigure locales (en Debian, no conozco Ubuntu).

  • Si usa SSH, asegúrese de que el software de su terminal SSH (por ejemplo, Putty) use la misma codificación que el servidor.

  • Luego, el paso más crucial:usar su terminal SSH, manualmente cree un archivo con un nombre problemático en el directorio respectivo para que el cliente sftp en su computadora portátil con Windows pueda verlo.

    Por ejemplo, volviendo a tu pregunta, podrías crear un archivo con el nombre Liège.txt en tu /tickets directorio (touch /tickets/Liège.txt ). Nuevamente usando su terminal SSH, verifique cuidadosamente que el nombre del archivo aparezca correctamente cuando permita que Ubuntu enumere los archivos en ese directorio (ls -al /tickets ).

  • Ahora use el cliente sftp en su computadora portátil con Windows y verifique si descarga correctamente ese archivo recién creado.

    Si esto funciona, significa que su problema surge cuando VisualCron transfiere los archivos al servidor de Ubuntu. Si no funciona, el problema está entre su computadora portátil con Windows y el servidor de Ubuntu.

En ambos casos, existen herramientas que pueden ayudarte a analizar la situación.

Por ejemplo, puede obtener información jugando con convmv, que puede convertir nombres de archivo de una codificación a otra. En particular, podría convertir la codificación de sus nombres de archivo de UTF-8 a UTF-8 . Cuando haga eso y esté seguro de que el nombre del archivo ya está codificado en UTF-8, no debe cambiar durante esa conversión.

También es posible que desee echar un vistazo a chardet, que es una biblioteca de Python que intenta adivinar la codificación de, p. nombres de archivo No soy un chico de Python, así que no puedo ayudarte con el código fuente. Según la respuesta aceptada a esta pregunta, tendría una línea como chardet.detect(os.popen("ls yourfilename.txt").read()) en su secuencia de comandos de Python, que generará la codificación más probable junto con una calificación de confianza.

Para resumir:

  • Asegúrese de que los nombres de los archivos en su servidor Ubuntu realmente están codificados en UTF-8, siguiendo los pasos que se muestran arriba y usando las herramientas mencionadas anteriormente.

  • Una vez que esté absolutamente seguro de que los nombres de archivo en su servidor Ubuntu están codificados en UTF-8, verifique si su cliente sftp en su computadora portátil puede descargarlos. Si no, pruebe con otros clientes hasta que funcione.

  • Si descubrió que no todos los nombres de archivo en el servidor Ubuntu están codificados en UTF-8, ajuste la configuración en VisualCron en consecuencia. No conozco VisualCron y, por lo tanto, no puedo ayudarte con eso.


Linux
  1. Cómo cambiar el límite de memoria en el archivo .htaccess

  2. Cómo conectarse a SFTP usando FileZilla para la transferencia segura de archivos

  3. ¿Cómo cambiar el permiso en un solo archivo?

  4. Cambie la versión del kernel en un servidor en la nube de Linux usando el modo de rescate

  5. ¿Cómo cambio el directorio raíz de un servidor Apache?

¿Cómo cargar un archivo usando el administrador de archivos de cPanel?

¿Cómo cambiar la contraseña de root usando WHM?

¿Cómo cambiar el nombre de host de un servidor cPanel/WHM?

Cómo cambiar los permisos de archivo usando FileZilla

Cómo cambiar el nombre de host del servidor en Ubuntu

¿Cómo cambiar la zona horaria en Ubuntu 18.04 Server?