Linux豆知識 197

/etc/sysctl.conf

今回は、「/etc/sysctl.conf」について。

このファイルは、前回取り上げた「/proc/sys/」ディレクトリに存在するファイルの初期値を記述するファイルです。「/proc/sys/」ディレクトリには、カーネルの挙動を決める値が格納されたファイルが存在します。これらのファイルの値を参照するには「catコマンド」、書き込むには「echoコマンド」を利用します。

--
# cat /proc/sys/net/ipv4/ip_forward ←/proc/sys/net/ipv4/ip_forward
の値を参照
0 ←/proc/sys/net/ipv4/ip_forwardの値が表示される
# echo "1" > /proc/sys/net/ipv4/ip_forward ←/proc/sys/net/ipv4/
ip_forwardに値「1」を設定
--

なお、/procディレクトリのファイルは仮想ファイルであるため、このディレクトリのファイルをviなどのエディタで編集することは厳禁です。

さて、前回紹介したように、/proc/sys/ディレクトリのファイルはカーネルの挙動を決定するファイルですから、管理者は当然のことながら変更する必要に迫られる場合もあります。しかし、前述のechoコマンドを利用する方法では、OSをシャットダウンすると値が消えてしまい、次回起動時には元の値に戻ってしまいます。そこで、「/etc/sysctl.conf」ファイルの出番となります。

「/etc/sysctl.conf」は、OS起動時に/proc/sys/ディレクトリのファイルに設定する値を記述しておくファイルです。このファイル自体は/procディレクトリにあるファイルではありませんので、viエディタなどで編集することができます。

「/etc/sysctl.conf」の記述例は次の通りです。

# Controls IP packet forwarding
net.ipv4.ip_forward = 0

1行目の#に続く記述はコメントで、無視されます。
2行目がファイルに値を設定するための記述です。この記述は、「net.ipv4.ip_forward」がファイル名を表します。
「net.ipv4.ip_forward」は「/proc/sys/net/ipv4/ip_forward」を表します。つまり、ファイル名から「/proc/sys/」を除去し、「/」を「.」に変えたものを記述します。そして、「=」に続けて設定値を記述します。

このファイルは、初期値を記述しておくだけのファイルですので、このファイルを編集した場合、OSを再起動すれば設定が反映されますが、ファイルを編集しただけでは設定は反映されません。OSを再起動せずに設定変更を反映する、すなわち/proc/sys/にあるファイルに値を書き込むためには、sysctlコマンドを利用します。

# sysctl -p

システムの設定を行うために必須のファイルですので、しっかり押さえておきましょう。


今回のテーマを含む出題範囲を見てみる

LinuCレベル2201試験2.01.5 カーネル実行時における管理とトラブルシューティング

ページトップへ