Linuxi tuuma määramine prügikasti asukohaks

Linuxi Tuuma Maaramine Prugikasti Asukohaks



Mis on 'Core Dump' Linuxis?

Kui protsess ootamatult väljub, jätab see sageli teie süsteemi 'tuuma prügimäe'. Sellega on kaasas asjakohane sõnum. Tuum toimib silumistööriistana ja on mälupilt, mis sisaldab ka silumisinfot. Kui olete kasutaja, kes ei soovi programmi siluda, võite selle tuuma lihtsalt kustutada.

$ rm tuum

Võite selle ka puutumata jätta, kuna vana tuum kirjutatakse üle, kui uus tuum kunagi maha visatakse. Samuti saate tuuma dumpingu deaktiveerida järgmise käsuga:







$ vähenema -c 0

Saame luua tuumikprügi nõudmisel (näiteks siluri kaudu) või neid saab toota automaatselt pärast lõpetamist. Tuum käivitab programmi järsu väljumise tagajärjel tuumade tõmmised. Need võidakse saata lisatoimingute tegemiseks mõnda teise programmi (nt systemd-coredump).



Nagu tavaliselt, on parema stabiilsuse ja tõrkeotsingu jaoks andmete kogumisel kompromiss ning silumisandmetest tundliku teabe paljastamise oht.



Mida me katame?

Selles artiklis näeme, kuidas määrata Ubuntu 20.04 OS-i tuumade prügilate asukoht. Alustame kohe.





Südamiku prügila genereerimine

Vaatame esmalt, kuidas saame luua tuum prügi. Selleks kasutame Linuxi kill käsku. Esiteks leidke protsessi PID ja seejärel saatke tapmissignaal. Näiteks alustame unerežiimi ja seejärel lõpetame selle PID-ga:

$ magama 500

$ tappa -s SIGTRAP $ ( haare magama )



Nüüd, kui olete õppinud, kuidas luua tuumade tõmmist, saate seda kasutada järgmistes järgmistes jaotistes.

Kuhu nad lähevad?

Põhiväljavõttefail kannab vaikimisi nime core.pid ja see luuakse rakenduse töökataloogis. Siin on pid protsessi ID.

Tööriistaga ulimit saate hankida või muuta süsteemi ressursipiiranguid praegusele ja sellele järgnevatele kestadele. Põhifaili suuruse piirangu kontrollimiseks või konfigureerimiseks kasutage järgmist käsku:

$ vähenema -c

Põhifaili piiritlemise või kärpimise vältimiseks veenduge, et limiidiks on globaalselt seatud 'unlimited' [1]. Seda saab teha failis /etc/security/limits.conf, lisades järgmise rea:

juur - tuum piiramatu

* - tuum piiramatu

Nüüd logige lihtsalt välja ja uuesti sisse, et seansile rakenduksid piirangud.

Südamiku prügila asukoha kohandamine

Käsku “sysctl kernel.core_pattern” või käsku “/proc/sys/kernel/core_pattern” kasutatakse tavaliselt asukoha määramiseks, kuhu tuumväljavõtted lähevad.

Sisestage järgmine käsk, et näha praeguse põhimustri sätteid:

$ kass / proc / sys / kernel / tuum_muster

Tavaliselt leiate siit vaikeväärtuse kui 'core'.

Tuuma tühjenduskoha määramiseks kasutage „/proc/sys/kernel/core_pattern”.

Suuname tuumväljavõtted ajutiselt ümber uude asukohta, näiteks /tmp/dumps/core, kasutades faili „/proc/sys/kernel/core_pattern” [2] [3]. Nüüd järgige järgmisi samme.

Samm 1 . Esmalt looge kataloog, kuhu salvestada tuumikud:

$ mkdir -lk / tmp / prügimäele / südamikud /

2. samm . Andke sellele kataloogile vajalikud õigused:

$ chmod a+x / tmp / prügimäele / südamikud /

3. samm . Nüüd määrake ajutiselt tühjendamise põhitee:

$ kaja '/tmp/dump/cores/core' | sudo tee / proc / sys / kernel / tuum_muster

Jällegi, globaalselt määrake limiidiks piiramatu.

Siin saame faili nimele lisada muud teavet, nagu on näidatud järgmiselt:

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

Iga siin kasutatavat parameetrit saab määratleda järgmiselt.

% ja: jaoks käivitatav faili nimi

% p: jaoks protsessi id või pid.

% t: jaoks ajatempli lisamine

4. samm . Järgmiseks peame muutma faili „/etc/sysctl.conf”, et eelmised sätted jäädavalt rakendada. Ava see fail:

$ sudo nano / jne / sysctl.conf

Nüüd lisage sellele failile järgmine rida:

kernel.core_pattern = / tmp / prügimäele / südamikud / tuum

Selle rea asemel saate lisada ka järgmise:

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

See on kõik, mida me tegema peame. Nüüd looge tuumade tõmmis, nagu on mainitud jaotises „Tuumde tõmmise genereerimine”. Pärast seda saame kontrollida, kas meie põhifail on loodud või mitte:

$ ls -l / tmp / prügimäele / südamikud /

Tuuma tühjenduskoha määramiseks kasutage käsku 'Sysctl'.

Nagu varem mainitud, saame samal eesmärgil kasutada ka käsku sysctl. Muudame tuumväljavõtte asukohta ja põhifaili vormingut:

Samm 1 . Looge uus kataloog ja andke vajalikud õigused:

$ mkdir -lk / tmp / minu prügimäed

$ chmod a+rwx / tmp / minu prügimäed

2. samm . Nüüd käivitage lihtsalt järgmine käsk:

$ sudo sysctl -sisse kernel.core_pattern= / tmp / minu prügimäed / tuum_ % ja. % p_ % t

3. samm . Nüüd taas genereerige tuum prügila, nagu me varem tegime. Pärast seda kontrollige, kas põhifail on loodud või mitte:

$ ls -l / tmp / minu prügimäed /

Ubuntu süsteemides saadetakse põhiväljavõtted sageli Apportile. Red Hatil põhinevate süsteemide puhul võidakse see edastada automaatsele veateavitustööriistale (ABRT). Esialgu seisin silmitsi probleemiga tuuma prügila asukoha konfigureerimisel, mistõttu pidin rakenduse Apport Ubuntu 20.04-s täielikult keelama. Võib-olla võib see nii olla ka Red Hati ja teiste puhul.

Järeldus

Selles artiklis oleme näinud, kuidas saame kohandada Ubuntu 20.04 OS-i tuumade prügilate asukohta. Põhiprügilad võivad aidata teil välja selgitada, mis on valesti, kuid need on tundlike andmete lekkimise tõttu kohutavad. Südamiku prügimäed tuleks keelata alati, kui need pole vajalikud, ja lubada ainult siis, kui see on hädavajalik. Sellises olukorras veenduge, et failid oleksid turvaliselt salvestatud, nii et tavakasutajad ei pääseks andmetele juurde. Lisaks, hoolimata teie otsusest, peaksite alati oma konfiguratsiooni testima, et veenduda, et see töötab ettenähtud viisil.

Erinevad operatsioonisüsteemid käsitlevad põhiväljavõtteid ja vaikekonfiguratsioone erinevalt. Viimasel ajal on enamik Linuxi süsteeme võtnud kasutusele systemd, mis on toonud kaasa mõned väikesed reeglite muudatused. Sõltuvalt sellest, kuidas teie süsteem on konfigureeritud, peate võib-olla otsima tuumikuid.