Я уже некоторое время использую blockhosts , и до сих пор это было здорово.Я недавно обновил Ubuntu до 10.10, и я начал видеть некоторое странное поведение.При ближайшем рассмотрении я заметил кучу ошибок в /var/log/blockhosts.log:
ERROR: failed to parse date for ip 188.17.155.25, using now value:
time data '2010-11-01 03:04:02 AMT' does not match format '%Y-%m-%d %H:%M:%S %Z'
Факт, что часовой пояс отображается как "AMT" (армянское время)странно.Мой часовой пояс установлен как:
$ cat /etc/timezone<br>
Europe/Amsterdam
Я взглянул на код blockhosts.py
, где дата обрабатывается и проверяется, и я увидел, что он обрабатывается как time
objects.
Следующий код показывает проблему:
import time
now = time.time()
str1 = time.strftime('%Y-%m-%d %H:%M:%S %Z', time.localtime())
str2 = time.strftime('%Y-%m-%d %H:%M:%S %Z')
print str1
print str2
Вывод следующий:
2010-12-06 16:18:47 AMT
2010-12-06 16:18:47 CET
Значение time.tzname
равно ('CET', 'CEST')
, поэтому я не уверен, откуда исходит «AMT» ...
Любая помощь будет оценена!
Обновления:
Из предложений в комментариях:
/etc/localtime
не является символической ссылкой на /usr/share/zoneinfo/Europe/Amsterdam
, но это один и тот же файл:
$ ls -l /etc/localtime<br>
-rw-r--r-- 1 root root 2917 2010-11-18 09:35 /etc/localtime<br>
$ ls -l /usr/share/zoneinfo/Europe/Amsterdam<br>
-rw-r--r-- 1 root root 2917 2010-11-11 09:35 /usr/share/zoneinfo/Europe/Amsterdam<br>
$ diff /etc/localtime /usr/share/zoneinfo/Europe/Amsterdam
$ echo $TZ<br>
$ env | grep TZ
- Я вошел в систему как другой пользователь и запустил сценарий с тем же результатом:
2010-12-07 11:12:09 AMT<br>
2010-12-07 11:12:09 CET