GNU/Linux >> Linux Esercitazione >  >> Linux

Qual è il limite di dimensione di /etc/hosts?

Gli effetti problematici includono la risoluzione lenta del nome host (a meno che il sistema operativo non converta in qualche modo l'elenco lineare in una struttura più veloce da cercare?) e il potenziale per un'interazione sorprendente con la shell tab completamento molto prima che venga raggiunta una dimensione di file significativa.

Per esempio! Se si inseriscono 500.000 voci host in /etc/hosts

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

per la scienza, il nome host predefinito tab il completamento in ZSH richiede circa ~25 secondi sul mio sistema per restituire una richiesta di completamento (concesso, questo è su un laptop del 2008 con un disco da 5400 RPM, ma comunque).


Non penso che abbia un limite di dimensione in termini di numero di righe.

Prima del DNS (che è stato utilizzato nel 1985), era questo file che serviva come unico mezzo per eseguire ricerche di nomi host, quindi presumo che ciò significhi che il file dovrebbe essere in grado di contenere migliaia o almeno centinaia di voci per essere in grado di supportare i nodi Internet pre-1985 meglio connessi.

Ecco un esempio del 1985 (il formato è leggermente cambiato):http://jim.rees.org/apollo-archive/hosts.txt Questo file ha 1680 righe di cui 1325 sono righe host. Le restanti 355 righe sono vuote, commenti, reti o gateway.

L'unico vero limite che ho potuto trovare era quello su alcuni sistemi, le singole linee sono limitati a meno di BUFSIZ caratteri (1024 sulla mia macchina OpenBSD).

Se hai più di un paio di manciate di voci in /etc/hosts , dovresti invece considerare di configurare un server dei nomi locale, ma questa è la mia opinione personale.

Grazie a Jeff Schaller per aver scoperto questo.


Come posso determinare il limite di dimensione di /etc/hosts?

È un file normale, quindi il limite corrisponderebbe ai limiti del filesystem sottostante (che sarebbe esso stesso limitato dal numero di dischi dietro di esso), meno lo spazio utilizzato da qualsiasi altro file nello stesso (probabilmente root (/ )) filesystem:

  • ext2/3:2 TiB
  • ext4:16 TiB (con la dimensione predefinita del blocco di 4 KiB)
  • xfs:500 TiB

Come posso impostare il limite di dimensione di /etc/hosts?

Poiché si tratta di un file modificato manualmente, solo manualmente:

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

(per rimuovere le righe 100 e oltre).


Linux
  1. In che modo Linux gestisce più separatori di percorsi consecutivi (/home////nomeutente///file)?

  2. Creare un file host specifico per l'utente per completare /etc/hosts?

  3. Qual è la connessione tra le directory /etc/init.d e /etc/rcX.d in Linux?

  4. Nel mio file /etc/hosts/ su Linux/OSX, come creo un sottodominio con caratteri jolly?

  5. Differenza tra /etc/hosts e /etc/resolv.conf

Comprendere il file /etc/passwd

Comprendere il file /etc/shadow

Che cos'è Fstab in Linux | Un'introduzione al file /etc/fstab di Linux

Che cos'è il file /etc/passwd in Linux?

Comprendere il file /etc/fstab in Linux

Comprendere i file /proc/mounts, /etc/mtab e /proc/partitions