
Я могу выполнить команду last
(и last -i
) за долю секунды, но когда я запускаю last -d
,согласно моим тестам, это занимает целых 5 минут и 22 секунды.
Для справки, вот что -d
делает добавление флага:
-d For non-local logins, Linux stores not only the host name of the remote host but its IP number as well. This option translates the IP number back into a hostname.
В man-страницах нет указаний на то, что это должно занять столько дополнительного времени. Как говорится, Linux уже хранит IP, поэтому ему не нужно выполнять какой-либо медленный обратный поиск IP на основе имени хоста на месте. Кроме того, это медленно даже тогда, когда он "ищет", что значение имени хоста :0
(локальный логин) должно возвращать значение "IP-адреса" 0.0.0.0
.
Флаг -d
медленный на всех компьютерах или только на моем? Может ли это указывать на поврежденный файл где-то, который может быть недоступен или его трудно прочитать?
Для справки, я бегу32-битная Ubuntu 13.10(еще не обновился).
решение1
Какой порядок поиска DNS в /etc/nsswitch.conf
? Он должен иметь files
в качестве первого варианта:-
hosts: files mdns4_minimal [NOTFOUND=return] dns myhostname
Возможно, стоит подтвердить порядок поиска в вашей системе.
Я провел тот же тест и получил результат 47 секунд last -d
.
Затем я добавил 0.0.0.0 localhost
к этому /etc/hosts
, и теперь время выполнения составляет всего 0,031 с last -d
.
Примечание. Я удалил тег 0.0.0.0
, так какпо данным Википедии, его наличие там недопустимо.