我可以在不到一秒的时间内运行命令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.
手册页中没有任何迹象表明应该花费那么多额外的时间。正如它所说,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
,因为根据维基百科,将其放在那里是无效的。