Hoje precisei olhar os logs de um servidor FTP que roda sob o pure-ftp e percebi que os horários estavam todos em UTC .
Como eu precisava enviar parte dos logs a um terceiro que faz uso dele e não está familiarizado com sistemas, poderia acabar ocorrendo algum mal entendido. Resolvi então que deveria manter os logs de todas as aplicações no fuso horário brasileiro.
De acordo com a documentação do pure-ftp ele utiliza as variáveis de ambiente para determinar qual será o horário incluído nos logs e a única configuração é a se deve utilizar GMT ou não e por padrão ele usa NO.

NOTA: Esse problema também acontece para diversos programas perl.

Então o passo correto é verificar se o locale do servidor (ou da sessão que usarei para iniciar o serviço do FTP) está em pt_BR. Não estava.

Usei a receita básica para modificar o locale. (Segue abaixo se quiser fazer o mesmo).

  • Adicionar as entrada do idioma nos arquivos de locale do debian (deve ser o mesmo para Ubuntu).
# echo "pt_BR ISO-8859-1" >> /var/lib/locales/supported.d/local

# echo "pt_BR pt_BR.ISO-8859-1" >> /etc/locale.alias

  • Abrir o arquivo de definições de ambiente /etc/environment e /etc/default/locale e incluir as entradas abaixo
LANG="pt_BR"
LANGUAGE="pt_BR:pt:en"

  • E por último executar os comandos
# locale-gen
# dpkg-reconfigure locales

Tudo correu Ok. Quando executei locale ficou assim:

# locale
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=pt_BR
LANGUAGE=pt_BR:pt:en
LC_CTYPE="pt_BR"
LC_NUMERIC="pt_BR"
LC_TIME="pt_BR"
LC_COLLATE="pt_BR"
LC_MONETARY="pt_BR"
LC_MESSAGES="pt_BR"
LC_PAPER="pt_BR"
LC_NAME="pt_BR"
LC_ADDRESS="pt_BR"
LC_TELEPHONE="pt_BR"
LC_MEASUREMENT="pt_BR"
LC_IDENTIFICATION="pt_BR"
LC_ALL=

 e ao tentar reiniciar o serviço de FTP

# service pure-ftpd restart
Restarting FTP XXXXXX: perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
 LANGUAGE = (unset),
 LC_ALL = (unset),
 LANG = "pt_BR"
 are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
Running: /usr/sbin/pure-ftpd -l puredb:/etc/pure-ftpd/db/pureftpd.pdb -O clf:/var/log/pure-ftpd/transfer.log -A -E -u 1000 -B

Depois de várias tentativas de corrigir, consegui fazendo o seguinte:

Executei os comandos

# export LANGUAGE=pt_BR.UTF-8

# export LANG=pt_BR.UTF-8

# export LC_ALL=pt_BR.UTF-8

# locale-gen pt_BR.UTF-8
Generating locales...
 pt_BR.UTF-8... up-to-date
Generation complete.
# dpkg-reconfigure locales
 en_US.ISO-8859-1... done
 en_US.UTF-8... done
 pt_BR.UTF-8... up-to-date
Generation complete.

Após isso, o serviço FTP iniciou normalmente conforme as informações abaixo.

# service pure-ftpd restart
Restarting FTP XXXXXXX: Running: /usr/sbin/pure-ftpd -l puredb:/etc/pure-ftpd/db/pureftpd.pdb -O clf:/var/log/pure-ftpd/transfer.log -A -E -u 1000 -B



Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.

Blog do Regis - Meus aprendizados
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.