En muchas ocasiones tras desplegar un servidor, sobre todo si estamos virtualizando y lo hemos hecho a partir de algún template de sistema, puede que las características de idioma y hora no se correspondan con los de nuestra zona geográfica.

En el caso del idioma causa problemas como que en la consola no podamos emplear caracteres «especiales» como la letra ñ o letras acentuadas, así que vamos a reconfigurar los locales para poder españolizar el shell lo que ademas de permitirnos emplear estos caracteres, nos mostrara mucha de la información en español en lugar de en ingles e inclusive algunos programas usaran el español por defecto en lugar del ingles.

Podemos comprobar nuestra configuración actual mediante:

locale
LANG=
LANGUAGE=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=

Generamos un nuevo archivo de locales para español de España con codificación UTF-8:

locale-gen  es_ES.UTF-8
Generating locales...
  es_ES.UTF-8... done
Generation complete.

Reconfiguramos el paquete locales para que tenga en cuenta el nuevo idioma disponible:

dpkg-reconfigure locales
Generating locales...
  es_ES.UTF-8... up-to-date
Generation complete.

Ahora editamos o creamos el archivo /etc/default/locale para asignar el idioma es_ES-UTF-8 y que esta configuración se mantenga al reiniciar y/o actualizar el sistema:

nano /etc/default/locale
LANG="es_ES.UTF-8"
LANGUAGE="es_ES.UTF-8"
LC_ALL="es_ES.UTF-8"

Reiniciamos:

reboot

Y podemos comprobar como la configuración de locales ha cambiado y ahora ya podemos emplear los caracteres «especiales» como la ñ y letras acentuadas así como muchos de los mensajes informativos que nos devuelve el shell ahora serán en castellano en lugar de en ingles:

locale
LANG=es_ES.UTF-8
LANGUAGE=es_ES.UTF-8
LC_CTYPE="es_ES.UTF-8"
LC_NUMERIC="es_ES.UTF-8"
LC_TIME="es_ES.UTF-8"
LC_COLLATE="es_ES.UTF-8"
LC_MONETARY="es_ES.UTF-8"
LC_MESSAGES="es_ES.UTF-8"
LC_PAPER="es_ES.UTF-8"
LC_NAME="es_ES.UTF-8"
LC_ADDRESS="es_ES.UTF-8"
LC_TELEPHONE="es_ES.UTF-8"
LC_MEASUREMENT="es_ES.UTF-8"
LC_IDENTIFICATION="es_ES.UTF-8"
LC_ALL=es_ES.UTF-8

Ahora que ya hemos solventado los problemas con el idioma, vamos a asegurarnos que la hora también sea la correcta. Como es sabido, aunque realmente no sea nuestra franja horaria natural, en España desde el 16 de marzo de 1940 hacemos uso de la franja horaria denominada como Hora Central Europea (CET) así que consultamos la hora del sistema para comprobar si esta configurada correctamente:

date
mar dic 15 11:48:35 EST 2015

Como se puede apreciar en este caso la hora que me devuelve el comando date se corresponde a la franja horaria denominada como Horario del Este de Norteamerica (EST) así que vamos a cambiarla. Para lo cual reconfiguramos el paquete tzdata:

dpkg-reconfigure tzdata

tzdata área geografica

tzdata ciudad

Current default time zone: 'Europe/Madrid'
Local time is now:      Tue Dec 15 19:55:20 CET 2015.
Universal Time is now:  Tue Dec 15 18:55:20 UTC 2015.

Comprobamos:

date
mar dic 15 20:00:43 CET 2015

Por último una muy buena opción es mantener el reloj del sistema sincronizado con un servidor de hora de Internet mediante el protocolo NTP (Network Time Protocol):

apt-get install ntp ntpdate

Hemos de tener en cuenta que el protocolo NTP emplea el puerto 123 por lo que dicho puerto debe estar abierto en caso de encontrarnos detrás de un firewall.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *