Como administrador del sistema Linux, a veces es posible que deba modificar el comportamiento del kernel predeterminado. Por ejemplo, es posible que deba habilitar la tecla mágica SysRq o aumentar la cantidad de conexiones que aceptará Kernel. Los parámetros del kernel se pueden configurar al construir el kernel, en el arranque del sistema o en tiempo de ejecución.
Este artículo explica cómo usar el sysctl
comando para ver y modificar los parámetros del kernel en tiempo de ejecución.
Usando sysctl
para ver los parámetros del núcleo #
Para ver todos los parámetros actuales del núcleo, invoque sysctl
comando con -a
opción:
sysctl -a
Esto generará una lista grande similar a la siguiente, donde cada línea incluye el nombre del parámetro y su valor:
abi.vsyscall32 = 1
debug.exception-trace = 1
debug.kprobes-optimization = 1
...
Todos los usuarios pueden ver los parámetros actuales del núcleo; solo el usuario root puede modificar sus valores.
Puede verificar el valor de un solo parámetro pasando su nombre como argumento a sysctl
. Por ejemplo, para verificar el valor de swappiness actual, escribiría:
sysctl vm.swappiness
vm.swappiness = 60
Swappiness es una propiedad del kernel de Linux que define la frecuencia con la que el sistema utilizará el espacio de intercambio.
El sysctl
El comando lee la información del /proc/sys
directorio. /proc/sys
es un directorio virtual que contiene objetos de archivo que se pueden usar para ver y configurar los parámetros actuales del kernel.
También puede ver el valor de un parámetro mostrando el contenido del archivo apropiado. La única diferencia es cómo se representa el archivo. Por ejemplo, tanto sysctl vm.swappiness
y cat /proc/sys/vm/swappiness
dará la misma salida. Al usar sysctl
las barras del directorio se reemplazan con puntos y el proc.sys
parte se asume.
Usando sysctl
para modificar los parámetros del núcleo #
Para establecer un parámetro del kernel en tiempo de ejecución, ejecute sysctl
comando seguido del nombre y valor del parámetro en el siguiente formato:
sysctl -w parameter=value
Si el valor contiene espacios vacíos o caracteres especiales, encierre el valor entre comillas dobles. También puede pasar múltiples parameter=value
pares en el mismo comando.
Por ejemplo, para habilitar el reenvío de paquetes IPv4, ejecutaría:
sysctl -w net.ipv4.ip_forward=1
El cambio surte efecto inmediatamente, pero no es persistente. Después de reiniciar el sistema, se carga el valor predeterminado.
Para establecer un parámetro de forma permanente, deberá escribir la configuración en /etc/sysctl.conf
u otro archivo de configuración en el /etc/sysctl.d
directorio:
sysctl -w net.ipv4.ip_forward=1 >> /etc/sysctl.conf
Otra forma de cambiar los parámetros es usar el echo
comando para escribir la configuración en los archivos en /proc/sys
directorio. Por ejemplo, en lugar de ejecutar el comando anterior, puede usar:
echo 1 > /proc/sys/net/ipv4/ip_forward
El -p
La opción le permite cargar la configuración desde un archivo de configuración:
sysctl -p /etc/sysctl.d/file_name.conf
Cuando no se proporciona ningún archivo, sysctl
lee el /etc/sysctl.conf
archivo.
Conclusión #
El sysctl
El comando le permite ver y cambiar los parámetros del kernel de Linux.
Siéntase libre de dejar un comentario si tiene alguna pregunta.