Kif tibdel il-parametri tar-runtime tal-kernel b'mod persistenti u mhux persistenti
Fil-Parti 13 ta 'dan kif tuża GRUB biex timmodifika l-imġieba tas-sistema billi tgħaddi għażliet lill-kernel għall-proċess tal-ibbutjar kontinwu.
Bl-istess mod, tista 'tuża l-linja tal-kmand f'sistema Linux li taħdem biex tbiddel ċerti parametri tal-kernel tar-runtime bħala modifika ta' darba, jew b'mod permanenti billi teditja fajl ta 'konfigurazzjoni.
Għalhekk, inti tista 'tippermetti jew tiddiżattiva parametri tal-kernel on-the-fly mingħajr ħafna diffikultà meta jkun meħtieġ minħabba bidla meħtieġa fil-mod kif is-sistema hija mistennija li topera.
Introduzzjoni tal-/proc Filesystem
L-aħħar speċifikazzjoni tal-Istandard tal-Ġerarkija tas-Sistema tal-Fajles tindika li /proc
tirrappreżenta l-metodu default għall-immaniġġjar tal-informazzjoni dwar il-proċess u s-sistema kif ukoll informazzjoni oħra dwar il-kernel u l-memorja. B'mod partikolari, /proc/sys
huwa fejn tista' ssib l-informazzjoni kollha dwar it-tagħmir, is-sewwieqa, u xi karatteristiċi tal-kernel.
L-istruttura interna attwali ta' /proc/sys
tiddependi ħafna fuq il-kernel li qed jintuża, iżda x'aktarx issib id-direttorji li ġejjin ġewwa. Min-naħa tagħhom, kull wieħed minnhom se jkun fih sottodirettorji oħra fejn jinżammu l-valuri għal kull kategorija ta’ parametru:
dev
: parametri għal apparati speċifiċi konnessi mal-magna.fs
: konfigurazzjoni tas-sistema tal-fajls (kwoti u inodes, pereżempju).- kernel: konfigurazzjoni speċifika għall-kernel.
net
: konfigurazzjoni tan-netwerk.vm
: użu tal-memorja virtwali tal-kernel.
Biex timmodifika l-parametri tar-runtime tal-kernel se nużaw il-kmand sysctl
. In-numru eżatt ta' parametri li jistgħu jiġu modifikati jista' jitqies bi:
# sysctl -a | wc -l
Jekk trid tara l-lista kompleta tal-parametri Kernel, agħmel biss:
# sysctl -a
Peress li l-output tal-kmand ta 'hawn fuq se jikkonsisti minn ĦAFNA ta' linji, nistgħu nużaw pipeline segwit minn inqas biex nispezzjonawh b'aktar attenzjoni:
# sysctl -a | less
Ejja nagħtu ħarsa lejn l-ewwel ftit linji. Jekk jogħġbok innota li l-ewwel karattri f'kull linja jaqblu mal-ismijiet tad-direttorji ġewwa /proc/sys
:
Pereżempju, il-linja enfasizzata:
dev.cdrom.info = drive name: sr0
jindika li sr0
huwa alias għad-drajv ottiku. Fi kliem ieħor, hekk il-qalba \jara dak is-sewqan u juża dak l-isem biex jirreferi għalih.
Fit-taqsima li ġejja se nispjegaw kif nibdlu parametri oħra tar-runtime tal-kernel aktar importanti fil-Linux.
Kif tibdel jew timmodifika l-parametri tar-runtime tal-kernel tal-Linux
Ibbażat fuq dak li spjegajna s'issa, huwa faċli li wieħed jara li l-isem ta 'parametru jaqbel mal-istruttura tad-direttorju ġewwa /proc/sys
fejn jista' jinstab.
Pereżempju:
dev.cdrom.autoclose → /proc/sys/dev/cdrom/autoclose net.ipv4.ip_forward → /proc/sys/net/ipv4/ip_forward
Cela dit, nistgħu naraw il-valur ta 'parametru tal-kernel Linux partikolari billi tuża jew sysctl
segwit mill-isem tal-parametru jew naqraw il-fajl assoċjat:
# sysctl dev.cdrom.autoclose # cat /proc/sys/dev/cdrom/autoclose # sysctl net.ipv4.ip_forward # cat /proc/sys/net/ipv4/ip_forward
Biex nissettjaw il-valur għal parametru tal-qalba nistgħu nużaw ukoll sysctl
, iżda nużaw l-għażla -w
u segwita mill-isem tal-parametru, is-sinjal ugwali, u l-valur mixtieq.
Metodu ieħor jikkonsisti fl-użu ta' echo
biex jissostitwixxi l-fajl assoċjat mal-parametru. Fi kliem ieħor, il-metodi li ġejjin huma ekwivalenti biex jiskonnettjaw il-funzjonalità ta' twassil tal-pakketti fis-sistema tagħna (li, bil-mod, għandu jkun il-valur default meta kaxxa ma tkunx suppost tgħaddi t-traffiku bejn in-netwerks):
# echo 0 > /proc/sys/net/ipv4/ip_forward # sysctl -w net.ipv4.ip_forward=0
Huwa importanti li wieħed jinnota li l-parametri tal-kernel li huma ssettjati bl-użu ta’ sysctl
se jiġu infurzati biss matul is-sessjoni attwali u jisparixxu meta s-sistema terġa’ tiġi startjata.
Biex tissettja dawn il-valuri b'mod permanenti, editja /etc/sysctl.conf
bil-valuri mixtieqa. Pereżempju, biex tiddiżattiva t-twassil tal-pakketti f'/etc/sysctl.conf kun żgur li din il-linja tidher fil-fajl:
net.ipv4.ip_forward=0
Imbagħad ħaddem il-kmand li ġej biex tapplika l-bidliet għall-konfigurazzjoni tat-tħaddim.
# sysctl -p
Eżempji oħra ta’ parametri importanti tar-runtime tal-kernel huma:
fs.file-max
jispeċifika n-numru massimu ta' mankijiet tal-fajls li l-kernel jista' jalloka għas-sistema. Skont l-użu maħsub tas-sistema tiegħek (web/database/file server, biex insemmu ftit eżempji), tista 'tkun trid tibdel dan il-valur biex tissodisfa l-ħtiġijiet tas-sistema.
Inkella, inti tirċievi messaġġ ta 'żball \Wisq fajls miftuħa fl-aħjar, u tista' tipprevjeni li s-sistema operattiva tibda fl-agħar.
Jekk minħabba żball innoċenti ssib ruħek f'din l-aħħar sitwazzjoni, ibda fil-modalità ta' utent wieħed (kif spjegat fil-Parti 14 – Monitor u Issettja l-Użu tal-Limit tal-Proċess Linux ta 'din is-serje.
kernel.sysrq
jintuża biex jippermetti ċ-ċavetta SysRq fit-tastiera tiegħek (magħrufa wkoll bħala ċ-ċavetta tal-iskrin tal-istampar) sabiex tippermetti li ċerti kombinazzjonijiet ta’ ċwievet jinvokaw azzjonijiet ta’ emerġenza meta s-sistema ma tkunx qed tirreaġixxi.
Il-valur default (16) jindika li s-sistema se tonora l-kombinazzjoni Alt+SysRq+key
u twettaq l-azzjonijiet elenkati fid-dokumentazzjoni sysrq.c misjuba f'kernel.org (fejn iċ-ċavetta hija ittra waħda fil- medda b-z). Pereżempju, Alt+SysRq+b
se jerġa' jibda s-sistema bil-qawwa (uża dan bħala l-aħħar għażla jekk is-server tiegħek ma jirrispondix).
Twissija! Tippruvax tagħfas din il-kombinazzjoni ta' ċwievet fuq magna virtwali għax tista' ġġiegħel is-sistema ospitanti tiegħek terġa' tibda!
Meta ssettjat għal 1, net.ipv4.icmp_echo_ignore_all jinjora t-talbiet ping u jwaqqagħhom fil-livell tal-kernel. Dan jidher fl-immaġni hawn taħt - innota kif it-talbiet ping jintilfu wara li jiġi stabbilit dan il-parametru tal-kernel:
Mod aħjar u eħfef biex jiġu stabbiliti parametri ta' runtime individwali huwa l-użu ta' fajls .conf ġewwa /etc/sysctl.d
, billi tiġborhom skont il-kategoriji.
Pereżempju, minflok ma nissettjaw net.ipv4.ip_forward=0 u net.ipv4.icmp_echo_ignore_all=1 f'/etc/sysctl.conf, nistgħu noħolqu fajl ġdid bl-isem net.conf
ġewwa /etc/ sysctl.d:
# echo "net.ipv4.ip_forward=0" > /etc/sysctl.d/net.conf # echo "net.ipv4.icmp_echo_ignore_all=1" >> /etc/sysctl.d/net.conf
Jekk tagħżel li tuża dan l-approċċ, tinsiex tneħħi dawk l-istess linji minn /etc/sysctl.conf
.
Sommarju
F'dan l-artikolu spjegajna kif timmodifika l-parametri tar-runtime tal-kernel, kemm persistenti kif ukoll b'mod mhux persistenti, billi tuża sysctl, /etc/sysctl.conf, u fajls ġewwa /etc/sysctl.d.
Fid-doks sysctl tista' ssib aktar informazzjoni dwar it-tifsira ta' aktar varjabbli. Dawk il-fajls jirrappreżentaw l-aktar sors komplut ta' dokumentazzjoni dwar il-parametri li jistgħu jiġu stabbiliti permezz ta' sysctl.
Dan l-artiklu sibt utli? Żgur nittamaw li għamilt. Toqgħodx taħsibha biex tgħarrafna jekk għandek xi mistoqsijiet jew suġġerimenti biex ittejjeb.