Linuxコマンド辞典 sysctlコマンド(システム管理)
稼働システムのカーネルパラメータを表示/変更する「sysctl」コマンドの概要と使い方を記載しています。
RHEL Fedora CentOS Vine Deblan Ubuntu Plamo
参考サイト:Man page of INSTALL
目次
概要・使用方法
書式
$ sysctl [オプション]
カーネルのパラメータの出力や設定を行います。システム稼働中のカーネルパラメータは、/proc/sys以下にテキストファイルで表現されています。これらのパラメータを変更するために利用します。カーネルパラメータは「/proc/sys/」以下に、net/ipv6/conf/default/accept_raのようなファイルで記述されます。指定する際は「/」を[.]に変更し、net.ipv6.conf.default.accept_raとしても通用します。sysctlで設定した内容はOSをシャットダウン-再起動するまで適用されます。再起動してもパラメータを保持したい場合は、/etc/sysctl.confに記述するか、/etc/sysctl.d/以下に「.conf」拡張子のファイルを用意して変数設定を用意します。
コマンドは、管理者権限で実行する必要があります。
オプション
-e –ignore | エラーを表示しない |
-n 変数名 –values 変数名 | 指定した変数の値のみを表示する |
-N 変数名 –names 変数名 | 変数名のみを表示する |
-w 変数名=パラメータ –write | 変数を設定する |
-p [ファイル] –load[=ファイル] | ファイルが指定されていればそれを変数リストとして読み込む、指定がなければ「/etc/sysctl.conf」を読み込む。「-」を指定すると標準入力を利用する。 |
-a | 指定されたパラメータすべてを表示する |
-q –quiet | 変数に値を設定した際の出力をしない |
-b –binary | 値のみを改行せずに出力する |
–system | 設定ファイルを読み込み直す |
-r 正規表現 –pattern 正規表現 | 正規表現にマッチした行を出力する |
設定されているパラメータをすべて表示する
$ sysctl -a
$ sudo sysctl -a
実行結果
[root@localhost ~]# 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
・
・
・
sudoを使用した場合。
[sunarin@localhost ~]$ sudo 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
・
・
・
設定されているパラメータを特定して表示する
$ sysctl net.ipv6.conf.eth0.accept_ra
実行結果
[root@localhost conf]# sysctl net.ipv6.conf.eth0.accept_ra
net.ipv6.conf.eth0.accept_ra = 0
パラメータを指定して設定する
$ sysctl -w net.ipv6.conf.eth0.accept_ra=1
実行結果
[root@localhost conf]# sysctl -w net.ipv6.conf.eth0.accept_ra=1
net.ipv6.conf.eth0.accept_ra = 1
[root@localhost conf]# sysctl net.ipv6.conf.eth0.accept_ra
net.ipv6.conf.eth0.accept_ra = 1
[root@localhost conf]#
正規表現を利用して変数を表示する
$ sysctl net.ipv6.conf.eth0.accept_ra
実行結果
[root@localhost conf]# sysctl -a -r net.ipv6.conf.all.\(accept_ra$\|forwarding\)
net.ipv6.conf.all.accept_ra = 1
net.ipv6.conf.all.forwarding = 0
[root@localhost conf]#
/etc/sysctl.conf以外のファイルを読み込んでパラメータを設定する
$ sysctl -p ./tmp_sysctl.conf
実行結果
[root@localhost ~]# sysctl net.ipv6.conf.eth0.accept_ra
net.ipv6.conf.eth0.accept_ra = 0
[root@localhost ~]# sysctl -p ./tmp_sysctl.conf
net.ipv6.conf.eth0.accept_ra = 1
[root@localhost ~]# sysctl net.ipv6.conf.eth0.accept_ra
net.ipv6.conf.eth0.accept_ra = 1