GNU/Linux >> Znalost Linux >  >> Linux

Jaký je limit velikosti /etc/hosts?

Mezi problematické efekty patří pomalé rozlišení hostitelských názvů (pokud OS nějakým způsobem nepřevede lineární seznam na strukturu s rychlejším vyhledáváním?) a potenciál pro překvapivou interakci s shell tab dokončení dostatečně dlouho před dosažením jakékoli smysluplné velikosti souboru.

Například! Pokud jeden umístí 500 000 položek hostitele do /etc/hosts

# perl -E 'for (1..500000) { say "127.0.0.10 $_.science" }' >> /etc/hosts

pro vědu výchozí název hostitele tab dokončení v ZSH trvá v mém systému asi ~25 sekund, než se vrátí výzva k dokončení (samozřejmě, je to na notebooku z roku 2008 s diskem 5400 RPM, ale stále).


Nemyslím si, že má omezení velikosti, pokud jde o počet řádků.

Před DNS (který byl uveden do provozu v roce 1985) to byl tento soubor, který sloužil jako jediný prostředek pro vyhledávání názvů hostitelů, takže předpokládám, že to znamená, že soubor by měl být schopen obsahovat tisíce nebo alespoň stovky záznamů. být schopen podporovat nejlépe propojené internetové uzly před rokem 1985.

Zde je příklad z roku 1985 (formát se poněkud změnil):http://jim.rees.org/apollo-archive/hosts.txt Tento soubor má 1680 řádků, z nichž je 1325 hostitelských řádků. Zbývajících 355 řádků jsou prázdné, komentáře, sítě nebo brány.

Jediný skutečný limit, který jsem našel, bylo, že na některých systémech jsou jednotlivé řádky jsou omezeny na méně než BUFSIZ znaků (1024 na mém počítači OpenBSD).

Pokud máte více než několik hrstí položek v /etc/hosts , měli byste zvážit nastavení lokálního jmenného serveru, ale to je můj osobní názor.

Děkuji Jeffu ​​Schallerovi, že to vykopal.


Jak mohu určit limit velikosti /etc/hosts?

Je to běžný soubor, takže limit by odpovídal limitům základního souborového systému (který by sám o sobě byl omezen počtem disků za ním), mínus prostor používaný jinými soubory v tomtéž (pravděpodobně root (/ )) souborový systém:

  • ext2/3:2 TiB
  • ext4:16 TiB (s výchozí velikostí bloku 4KiB)
  • xfs:500 TiB

Jak mohu nastavit limit velikosti /etc/hosts?

Protože se jedná o ručně upravovaný soubor, pouze ručně:

sed -i '100,$d' /etc/hosts

(pro odstranění řádků 100 a více).


Linux
  1. Jak Linux zpracovává více po sobě jdoucích oddělovačů cest (/home////username///soubor)?

  2. Pochopení souboru /etc/hosts v Linuxu

  3. Co znamená „rc“ v „.bashrc“ atd.?

  1. Jaké je spojení mezi adresáři /etc/init.d a /etc/rcX.d v Linuxu?

  2. Jaká je výhoda /etc/apt/sources.list.d oproti /etc/apt/sources.list

  3. Rozdíl mezi /etc/hosts a /etc/resolv.conf

  1. Úvod do souboru Linux /etc/fstab

  2. Pochopení souboru /etc/exports

  3. Limit velikosti /etc/hosts (Linux)