「last -d」は本当に遅い

「last -d」は本当に遅い

コマンド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

注 - sinceは削除しました0.0.0.0ウィキペディアによるとそこに置くのは無効です。

関連情報