Today I needed to check the logs of an FTP server running under pure-ftp and I noticed that all the times were in UTC .
Since I needed to send part of the logs to a third party who uses it and is not familiar with systems, some misunderstanding could occur. So I decided that I should keep the logs of all applications in Brazilian time.
According to the pure-ftp documentation, it uses environment variables to determine what time will be included in the logs and the only setting is whether it should use GMT or not and by default it uses NO.
NOTE: This problem also occurs for several programs 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:pt"
- E por último executar os comandos
# locale-gen # dpkg-reconfigure locales
Tudo correu Ok. Quando executei locale ficou assim:
# locale locale: Não é possível definir LC_CTYPE para localidade padrão: Não existe tal arquivo ou diretório locale: Não é possível definir LC_MESSAGES para a localidade padrão: Não existe tal arquivo ou diretório locale: Não é possível definir LC_ALL para o locale padrão: Arquivo ou diretório inexistente 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
Reiniciando FTP XXXXXX: perl: aviso: Falha ao definir o locale.
perl: aviso: Por favor, verifique se as configurações de locale:
LANGUAGE = (não definido),
LC_ALL = (não definido),
LANG = "pt_BR"
são suportadas e instaladas no seu sistema.
perl: aviso: Retornando ao locale padrão ("C").
Executando: /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 Gerando localidades... pt_BR. UTF-8... up-to-date Geração concluída. # dpkg-reconfigure locales en_US. ISO-8859-1... feito en_US. UTF-8... feito pt_BR. UTF-8... up-to-date Geração concluída.
Após isso, o serviço FTP iniciou normalmente conforme as informações abaixo.
# service pure-ftpd restart Reiniciando o FTP XXXXXXX: Executando: /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