GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cuál es el límite de tamaño de /etc/hosts?

Los efectos problemáticos incluyen una resolución lenta del nombre de host (¿a menos que el sistema operativo convierta de alguna manera la lista lineal en una estructura más rápida de buscar?) y la posibilidad de una interacción sorprendente con el shell tab completa mucho antes de que se alcance cualquier tamaño de archivo significativo.

¡Por ejemplo! Si uno coloca 500.000 entradas de host en /etc/hosts

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

para la ciencia, el nombre de host predeterminado tab la finalización en ZSH tarda unos ~25 segundos en mi sistema para devolver un aviso de finalización (concedido, esto es en una computadora portátil de 2008 con un disco de 5400 RPM, pero aún así).


No creo que tenga un límite de tamaño en términos de número de líneas.

Antes de DNS (que se puso en uso en 1985), este archivo servía como el único medio para realizar búsquedas de nombres de host, por lo que supongo que esto significa que el archivo debería poder tener miles o al menos cientos de entradas para ser capaz de admitir los nodos de Internet anteriores a 1985 mejor conectados.

Aquí hay un ejemplo de 1985 (el formato ha cambiado un poco):http://jim.rees.org/apollo-archive/hosts.txt Este archivo tiene 1680 líneas, de las cuales 1325 son líneas host. Las 355 líneas restantes son en blanco, comentarios, redes o puertas de enlace.

El único límite real que pude encontrar fue que, en algunos sistemas, las líneas individuales están limitados a menos de BUFSIZ caracteres (1024 en mi máquina OpenBSD).

Si tiene más de un par de puñados de entradas en /etc/hosts , debería considerar configurar un servidor de nombres local en su lugar, pero esa es mi opinión personal.

Gracias a Jeff Schaller por desenterrar esto.


¿Cómo puedo determinar el límite de tamaño de /etc/hosts?

Es un archivo normal, por lo que el límite correspondería a los límites del sistema de archivos subyacente (que a su vez estaría limitado por la cantidad de discos detrás de él), menos el espacio utilizado por cualquier otro archivo en el mismo (probablemente raíz (/ )) sistema de archivos:

  • ext2/3:2 TiB
  • ext4:16 TiB (con el tamaño de bloque predeterminado de 4 KiB)
  • xfs:500 TiB

¿Cómo puedo establecer el límite de tamaño de /etc/hosts?

Dado que es un archivo editado manualmente, solo manualmente:

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

(para eliminar las líneas 100 y posteriores).


Linux
  1. ¿Cómo maneja Linux múltiples separadores de rutas consecutivas (/home////username///file)?

  2. ¿Cuál es la conexión entre los directorios /etc/init.d y /etc/rcX.d en Linux?

  3. ¿Cuál es el beneficio de /etc/apt/sources.list.d sobre /etc/apt/sources.list?

  4. En mi archivo /etc/hosts/ en Linux/OSX, ¿cómo hago un subdominio comodín?

  5. Diferencia entre /etc/hosts y /etc/resolv.conf

Comprender el archivo /etc/passwd

Comprender el archivo /etc/shadow

¿Qué es Fstab en Linux? Una introducción al archivo Linux /etc/fstab

¿Qué es el archivo /etc/passwd en Linux?

Comprender el archivo /etc/fstab en Linux

Comprender los archivos /proc/mounts, /etc/mtab y /proc/partitions