Configuració de la ubicació de l'abocador de Linux Core

Configuracio De La Ubicacio De L Abocador De Linux Core



Què és 'Core Dump' a Linux?

Quan un procés surt inesperadament, sovint deixa enrere un 'bocament de nucli' al vostre sistema. Hi ha un missatge rellevant que s'inclou amb això. Un nucli serveix com a eina de depuració i és una imatge de memòria que també inclou la informació de depuració. Si sou un usuari que no vol depurar un programa, podeu eliminar el nucli:

$ rm nucli

També podeu deixar-lo sense tocar, ja que el nucli antic es sobreescriu si alguna vegada se n'aboca un de nou. També podeu desactivar l'abocament del nucli amb l'ordre següent:







$ disminuir -c 0

Podem generar els abocaments de nucli a demanda (per exemple, mitjançant un depurador) o bé es poden produir automàticament en acabar. El nucli inicia abocaments de nucli com a conseqüència de la sortida brusca d'un programa. Es poden enviar a algun altre programa (com ara systemd-coredump) per a operacions addicionals.



Com sol ser el cas, hi ha una compensació entre la recollida de dades per a una millor estabilitat i resolució de problemes i el risc de revelar la informació sensible de les dades de depuració.



Què cobrirem?

En aquest article, veurem com establir la ubicació dels abocaments de nucli al sistema operatiu Ubuntu 20.04. Comencem ara.





Generació d'un abocament de nucli

Vegem primer com podem generar un abocament de nucli. Per a això, utilitzem l'ordre Linux kill. Primer, cerqueu el PID d'un procés i després envieu un senyal de matança. Per exemple, comencem el procés de son i després matem-lo amb el seu PID:

$ dormir 500

$ matar -s SIGTRAP $ ( agafar dormir )



Ara que heu après a generar un bolcat de nucli, podeu utilitzar-lo a les seccions següents.

On van?

El fitxer d'abocament del nucli s'anomena core.pid per defecte i es crea al directori de treball de l'aplicació. Aquí, pid és l'identificador del procés.

Amb l'eina ulimit, podeu obtenir o canviar els límits de recursos del sistema per a l'intèrpret d'ordres actual i els que vinguin després. Per verificar o configurar el límit de mida del fitxer bàsic, utilitzeu l'ordre següent:

$ disminuir -c

Per tal d'evitar delimitar o truncar el fitxer principal, assegureu-vos que el límit estigui definit globalment en 'il·limitat' [1]. Això es pot fer a /etc/security/limits.conf afegint la línia següent:

root - nucli il·limitat

* - Nucli il·limitat

Ara, simplement tanqueu la sessió i torneu a iniciar la sessió per aplicar els límits a la vostra sessió.

Personalització de la ubicació de l'abocador principal

L'ordre 'sysctl kernel.core_pattern' o '/proc/sys/kernel/core_pattern' s'utilitza normalment per establir la ubicació on van els abocaments de nucli.

Introduïu l'ordre següent per veure la configuració del patró principal actual:

$ gat / proc / sys / nucli / nucli_patró

Normalment, aquí trobareu el valor predeterminat com a 'core'.

Utilitzant '/proc/sys/kernel/core_pattern' per establir la ubicació de l'abocament del nucli

Anem a redirigir temporalment els abocadors de nucli a una nova ubicació, per exemple /tmp/dumps/core, utilitzant el fitxer '/proc/sys/kernel/core_pattern' [2] [3]. Ara, seguiu els passos següents:

Pas 1 . Primer, feu un directori per emmagatzemar els abocadors de nuclis:

$ mkdir -p / tmp / abocador / nuclis /

Pas 2 . Doneu els permisos necessaris a aquest directori:

$ chmod a+x / tmp / abocador / nuclis /

Pas 3 . Ara, configureu temporalment el camí d'abocament del nucli:

$ eco '/tmp/dump/cores/core' | sudo samarreta / proc / sys / nucli / nucli_patró

De nou, configureu globalment l'ulimit com a il·limitat.

Aquí, podem afegir alguna altra informació al nom del fitxer tal com es mostra a continuació:

$ eco '/tmp/dump/cores/core_%e.%p_%t' | sudo samarreta / proc / sys / nucli / nucli_patró

Cada paràmetre que s'utilitza aquí es pot definir de la següent manera:

% i: per executable dossier nom

% p: per procés id o pid.

% t: per afegint una marca de temps

Pas 4 . A continuació, hem de canviar el fitxer “/etc/sysctl.conf” per aplicar permanentment la configuració anterior. Obriu aquest fitxer:

$ sudo nano / etc / sysctl.conf

Ara, afegiu la línia següent a aquest fitxer:

kernel.core_pattern = / tmp / abocador / nuclis / nucli

A més, en lloc d'aquesta línia, podeu afegir això:

kernel.core_pattern= '/tmp/dump/cores/core_%e.%p_%t'

Això és tot el que hem de fer. Ara, genereu un abocament de nucli tal com s'esmenta a la secció 'Generació d'un abocament de nuclis'. Després d'això, podem comprovar si el nostre fitxer principal està generat o no:

$ ls -l / tmp / abocador / nuclis /

Utilitzant l'ordre 'Sysctl' per establir la ubicació de l'abocament del nucli

Com s'ha esmentat anteriorment, també podem utilitzar l'ordre sysctl amb el mateix propòsit. Canviem la ubicació de l'abocament del nucli i el format del fitxer principal:

Pas 1 . Creeu un directori nou i doneu els permisos necessaris:

$ mkdir -p / tmp / els meus abocadors

$ chmod a+rwx / tmp / els meus abocadors

Pas 2 . Ara, només cal que executeu l'ordre següent:

$ sudo sysctl -en kernel.core_pattern= / tmp / els meus abocadors / nucli_ % i. % p_ % t

Pas 3 . Ara, de nou, genereu l'abocament del nucli com vam fer anteriorment. Després d'això, comproveu si el fitxer principal està generat o no:

$ ls -l / tmp / els meus abocadors /

Als sistemes Ubuntu, sovint s'envien abocaments de nucli a Apport. Per als sistemes basats en Red Hat, es pot reenviar a l'eina d'informe automàtic d'errors (ABRT). Inicialment, m'havia enfrontat a un problema per configurar la ubicació de l'abocament del nucli, així que vaig haver de desactivar completament Apport a Ubuntu 20.04. Potser, aquest també pot ser el cas de Red Hat i d'altres.

Conclusió

En aquest article, hem vist com podem personalitzar la ubicació dels abocadors de nuclis al sistema operatiu Ubuntu 20.04. Els abocaments de nucli us poden ajudar a esbrinar què passa, però són terribles per filtrar dades sensibles. Els abocaments de nuclis s'han de desactivar sempre que no siguin necessaris i només s'han d'habilitar quan sigui absolutament necessari. En aquesta situació, confirmeu que els fitxers s'emmagatzemen de manera segura perquè els usuaris habituals no puguin accedir a les dades. A més, independentment de la vostra decisió, sempre hauríeu de provar la vostra configuració per assegurar-vos que funciona segons el previst.

Els abocaments de nuclis i les configuracions predeterminades es gestionen de manera diferent per diversos sistemes operatius. En els darrers temps, la majoria de sistemes Linux han estat adoptant systemd, la qual cosa ha provocat alguns ajustos de regles menors. Depenent de com estigui configurat el vostre sistema, és possible que hàgiu de cercar abocaments de nucli.