Configuración del núcleo de Linux la ubicación de volcado

Configuración del núcleo de Linux la ubicación de volcado

¿Qué es el "volcado de núcleo" en Linux??

Cuando un proceso sale inesperadamente, con frecuencia deja atrás un "volcado de núcleo" en su sistema. Hay un mensaje relevante que se incluye con esto. Un núcleo sirve como herramienta de depuración y es una imagen de memoria que también incluye la información de depuración. Si usted es un usuario que no quiere depurar un programa, puede eliminar el núcleo:

$ RM Core

También puede dejarlo intacto, ya que el núcleo antiguo se sobrescribe si alguna vez se arroja uno nuevo. También puede desactivar el vertido central con el siguiente comando:

$ ulimit -c 0

Podemos generar los vertederos centrales a pedido (por ejemplo, a través de un depurador) o pueden producirse automáticamente al finalizar la terminación. El núcleo inicia los vertederos de núcleo como consecuencia de la salida abrupta de un programa. Estos pueden enviarse a algún otro programa (como Systemd-Coredump) para operaciones adicionales.

Como suele ser el caso, existe una compensación entre la recopilación de datos para una mejor estabilidad y solución de problemas y el riesgo de revelar la información confidencial de los datos de depuración.

¿Qué cubriremos??

En este artículo, veremos cómo establecer la ubicación de los vertederos de núcleo en Ubuntu 20.04 OS. Empecemos ahora.

Generando un vertedero de núcleo

Primero veamos cómo podemos generar un volcado central. Para esto, usamos el comando Linux Kill. Primero, encuentre el PID de un proceso y luego envíe una señal de matar. Por ejemplo, comencemos el proceso de sueño y luego lo matemos con su PID:

$ Sleep 500
$ Kill -S Sigtrap $ (PGREP Sleep)

Ahora que aprendió a generar un volcado central, puede usarlo en las siguientes secciones posteriores.

A dónde van?

El archivo de volcado de Core se llama Core.PID de forma predeterminada y se crea en el directorio de trabajo de la aplicación. Aquí, PID es la identificación del proceso.

Con la herramienta ULIMIT, puede obtener o cambiar los límites de recursos del sistema para el shell actual y cualquier caparazón que viene después de ella. Para verificar o configurar el límite de tamaño de archivo central, use el siguiente comando:

$ ulimit -c

Para evitar delimitar o truncar el archivo central, asegúrese de que el límite esté a nivel mundial en "ilimitado" [1]. Esto se puede hacer en/etc/seguridad/límites.confirm agregando la siguiente línea:

raíz - núcleo ilimitado
* - Core Unlimited

Ahora, simplemente inicie sesión y vuelva a iniciar sesión para que los límites se apliquen a su sesión.

Personalización de la ubicación del volcado central

El "núcleo sysctl.El comando core_pattern "o el"/proc/sys/kernel/core_pattern "se usa normalmente para establecer la ubicación donde van los volcados del núcleo.

Ingrese el siguiente comando para ver la configuración del patrón de núcleo actual:

$ Cat/Proc/Sys/Kernel/Core_Pattern

Por lo general, encontrará el valor predeterminado enumerado como "núcleo" aquí.

Usando "/proc/sys/kernel/core_pattern" para establecer la ubicación de volcado de núcleo

Vamos a redirigir temporalmente los volcados de núcleo a una nueva ubicación, digamos/tmp/dumps/core, utilizando el archivo “/proc/sys/kernel/core_pattern” [2] [3]. Ahora, siga los siguientes pasos:

Paso 1. Primero, haga un directorio para almacenar los vertederos principales:

$ mkdir -p/tmp/dump/nores/

Paso 2. Dé los permisos requeridos a este directorio:

$ chmod a+x/tmp/dump/nores/

Paso 3. Ahora, establezca temporalmente la ruta de volcado del núcleo:

$ echo '/tmp/dump/cores/core' | sudo tee/proc/sys/kernel/core_pattern

Nuevamente, establece globalmente el Ulimit en ilimitado.

Aquí, podemos agregar alguna otra información al nombre del archivo como se muestra en el siguiente:

$ echo '/tmp/dump/cores/core_%e.%p_%t '| sudo tee/proc/sys/kernel/core_pattern

Cada parámetro que se usa aquí se puede definir de la siguiente manera:

%E: para el nombre del archivo ejecutable
%P: para ID de proceso o PID.
%T: para agregar una marca de tiempo

Etapa 4. A continuación, tenemos que cambiar el "/etc/sysctl.archivo conf ”para aplicar permanentemente la configuración anterior. Abra este archivo:

$ sudo nano /etc /sysctl.confusión

Ahora, agregue la siguiente línea a este archivo:

núcleo.core_pattern =/tmp/dump/cores/core

Además, en lugar de esta línea, puede agregar esto:

núcleo.core_pattern = '/tmp/dump/cores/core_%e.%p_%t '

Eso es todo lo que necesitamos hacer. Ahora, genere un volcado de núcleo como se menciona en la sección "Generación de un volcado de núcleo". Después de esto, podemos verificar si nuestro archivo central se genera o no:

$ ls -l/tmp/dump/nores/

Uso del comando "SYSCTL" para establecer la ubicación de volcado de Core

Como se mencionó anteriormente, también podemos usar el comando sysctl para el mismo propósito. Cambiemos la ubicación de volcado de núcleo y el formato del archivo central:

Paso 1. Cree un nuevo directorio y proporcione los permisos requeridos:

$ mkdir -p /tmp /mydumps
$ chmod a+rwx /tmp /mydumps

Paso 2. Ahora, simplemente ejecute el siguiente comando:

$ sudo sysctl -w kernel.core_pattern =/tmp/mydumps/core_%e.%p_%t

Paso 3. Ahora, nuevamente, genere el volcado central como lo hicimos antes. Después de esto, verifique si el archivo principal se genera o no:

$ ls -l/tmp/mydumps/

En los sistemas Ubuntu, los volcados de núcleo a menudo se envían a la vista. Para los sistemas basados ​​en Red Hat, podría reenviarse a la herramienta de informes de errores automáticos (ABRT). Inicialmente, me enfrentaba a un problema al configurar la ubicación del volcado central, por lo que tuve que deshabilitar por completo en Ubuntu 20.04. Quizás, este también puede ser el caso con Red Hat y otros.

Conclusión

En este artículo, hemos visto cómo podemos personalizar la ubicación de los vertederos de núcleo en Ubuntu 20.04 OS. Los vertederos de núcleo pueden ayudarlo a descubrir qué está mal, pero son terribles para la fuga de datos confidenciales. Los volcados del núcleo deben deshabilitarse cuando no sean necesarios y solo habilitados cuando es absolutamente necesario. En tal situación, confirme que los archivos se almacenan de forma segura para que los usuarios ordinarios no puedan acceder a los datos. Además, independientemente de su decisión, siempre debe probar su configuración para asegurarse de que funcione según lo previsto.

Los volcados del núcleo y las configuraciones predeterminadas se manejan de manera diferente por varios sistemas operativos. En los últimos tiempos, la mayoría de los sistemas de Linux han estado adoptando Systemd, lo que ha provocado algunos ajustes de reglas menores. Dependiendo de cómo esté configurado su sistema, es posible que deba buscar volcados de núcleo.