Úvod
sysctl je softwarový nástroj některých unixových operačních systémů, který čte a upravuje atributy systémového jádra, jako je jeho:
- Číslo verze
- Maximální limity
- Nastavení zabezpečení.
Je k dispozici jak jako systémové volání pro zkompilované programy, tak jako administrátorský příkaz pro interaktivní použití a skriptování. Linux navíc odhaluje sysctl jako virtuální souborový systém.
Tento článek ukazuje, jak používat sysctl příkaz k zobrazení a úpravě parametrů jádra za běhu.
Zobrazení parametrů jádra pomocí sysctl
Chcete-li zobrazit všechny aktuální parametry jádra, použijte tento příkaz:
sysctl -a
[root@unixcop ~]# sysctl -a
abi.vsyscall32 = 1
crypto.fips_enabled = 0
debug.exception-trace = 1
debug.kprobes-optimization = 1
dev.cdrom.autoclose = 1
dev.cdrom.autoeject = 0
dev.cdrom.check_media = 0
dev.cdrom.debug = 0
dev.cdrom.info = CD-ROM information, Id: cdrom.c 3.20 2003/12/17
dev.cdrom.info =
dev.cdrom.info = drive name: sr0
dev.cdrom.info = drive speed: 1
........
....
Toto je seznam, kde každý řádek obsahuje název parametru a jeho hodnotu, jak je uvedeno výše.
Zkontrolujte hodnotu jednoho parametru jádra pomocí sysctl
Hodnotu jednoho parametru můžete zkontrolovat vyvoláním jeho názvu jako argumentu pro sysctl .
Poznámka :Pouze uživatel root může upravit jejich hodnoty.
Příklad:
Zkontrolujte maximální hodnotu limitu rychlosti raidového zařízení.
[root@unixcop ~]# sysctl dev.raid.speed_limit_max
dev.raid.speed_limit_max = 200000
[root@unixcop ~]#
Můžete také použít grep příkaz k vyhledání hodnoty parametru, jak je uvedeno níže:
sysctl -a | grep dev.raid.speed_limit_max
sysctl příkaz čte informace z /proc/sys adresář.
/proc/sys je virtuální adresář obsahující souborové objekty, které lze použít k zobrazení a nastavení aktuálních parametrů jádra.
Hodnotu parametru můžete také zobrazit zobrazením obsahu příslušného souboru. Jediný rozdíl je v tom, jak je soubor reprezentován.
Příklad:
sysctl dev.raid.speed_limit_max a cat /proc/sys/dev/raid/speed_limit_max zobrazí stejný výstup jako níže.
Upravte parametry jádra pomocí sysctl
Chcete-li upravit parametr jádra, spusťte příkaz sysctl následovaný parametrem a hodnotou, kterou chcete změnit na
Syntaxe pro úpravu hodnoty:
sysctl -w parameter=value
Příklad :
[root@unixcop ~]# sysctl net.ipv6.route.gc_timeout
net.ipv6.route.gc_timeout = 50
[root@unixcop ~]#
[root@unixcop ~]# sysctl -w net.ipv6.route.gc_timeout=60
net.ipv6.route.gc_timeout = 60
[root@unixcop ~]#
[root@unixcop ~]# sysctl net.ipv6.route.gc_timeout
net.ipv6.route.gc_timeout = 60
[root@unixcop ~]#
Poznámky :
Pokud hodnota obsahuje prázdné místo nebo speciální znaky, uzavřete hodnotu do dvojitých uvozovek.
Můžete také předat více parametr=hodnota ve stejném příkazu.
Tady to je
Změna bude úspěšně přidána, ale není trvalá. Po restartu systému se načte výchozí hodnota.
Takže
Chcete-li nastavit parametr trvale, budete muset změny zapsat do /etc/sysctl.conf nebo jiný konfigurační soubor pod /etc/sysctl.d protože se jedná o zahrnutý soubor nebo dílčí soubor z hlavního konfiguračního souboru.
sysctl -w net.ipv6.route.gc_timeout=60 >> /etc/sysctl.conf
-p volba umožňuje načíst změny z konfiguračního souboru, jak je uvedeno:
[root@unixcop ~]# sysctl -p /etc/sysctl.d/79-sysctl.conf
net.ipv6.route.gc_timeout = 60
[root@unixcop ~]#
Závěr
To je vše
Ukázali jsme, jak používat sysctl příkaz, který vám umožní prohlížet a měnit parametry linuxového jádra.