FreeBSD Daily Topics

2013年7月17日 新しいシステム管理コマンド「sysrc」登場

この記事を読むのに必要な時間:およそ 1.5 分

release

A new management command sysrc(8) available

FreeBSD 9.2-RELEASEでの導入を目指して,FreeBSD 10-CURRENTおよびFreeBSD 9-STABLEに対して新しい管理コマンド「sysrc(8)」が追加されました。sysrc(8)は/etc/rc.confおよび/etc/rc.conf.localファイル(以下rc.conf(5)と表記)の内容をコマンドラインから操作するためのコマンドです。

FreeBSDはシステムの設定やサービスの設定をrc.conf(5)で集中管理できるところが便利です。/etc/rc.confを読めば対象のシステムがどのような状態かわかりますので,サーバ管理に役立ちます。

これまでrc.conf(5)はエディタで書き換えたり,コマンドを組み合わせて処理していました。sysrc(8)を使うことで,これをコマンド一発で処理できるようになります。システム管理の自動化においてとても有益なコマンドです。次のsysrc(8)の利用例を掲載します。

rc.conf(5)に新しく設定を追加

# grep sshd_enable /etc/rc.conf /etc/rc.conf.local
# sysrc sshd_enable=YES
sshd_enable: NO -> YES
# grep sshd_enable /etc/rc.conf /etc/rc.conf.local
/etc/rc.conf:sshd_enable="YES"
#

rc.conf(5)から項目そのものを削除

# sysrc -x sshd_enable
# grep sshd_enable /etc/rc.conf /etc/rc.conf.local
#

rc.conf(5)の設定内容を書き換える

# grep sshd_enable /etc/rc.conf
sshd_enable="NO"
# sysrc sshd_enable=YES
sshd_enable: NO -> YES
# grep sshd_enable /etc/rc.conf
sshd_enable="YES"
# sysrc sshd_enable
sshd_enable: YES
#

sysrc(8)はrc_conf_filesで設定されるファイルに対して適用される。デフォルトで/etc/rc.confおよび/etc/rc.conf.local

# sysrc rc_conf_files
rc_conf_files: /etc/rc.conf /etc/rc.conf.local
# grep background_fsck /etc/rc.conf /etc/rc.conf.local 
/etc/rc.conf.local:background_fsck="YES"
# sysrc background_fsck=NO
background_fsck="YES -> NO
# grep background_fsck /etc/rc.conf /etc/rc.conf.local
/etc/rc.conf.local:background_fsck="NO"
#

指定した変数のデフォルト値を表示

# sysrc -D sshd_enable
sshd_enable: NO
#

ユーザが設定したrc.conf(5)の設定内容一覧

# sysrc -a
background_fsck: YES
bsdstats_enable: YES
clear_tmp_enable: YES
devfs_system_ruleset: localrules
dumpdev: AUTO
hostname: parancell.ongs.co.jp
ifconfig_em0: DHCP
keymap: us.pc-ctrl
ldconfig_paths: /usr/lib/compat /usr/local/lib /usr/local/lib/portaudio2 /usr/local/lib/compat/pkg
linux_enable: YES
lpd_enable: YES
moused_enable: NO
nfscbd_enable: YES
nfsclient_enable: YES
nfsuserd_enable: YES
nfsuserd_flags: -domain ongs.co.jp
rctl_enable: YES
rpc_lockd_enable: NO
rpc_statd_enable: NO
rpcbind_enable: YES
smartd_enable: YES
sshd_enable: YES
zfs_enable: YES
#

システムのデフォルト設定も含めたrc.conf(5)設定一覧

# sysrc -A | grep ^sshd
sshd_enable: YES
sshd_flags: 
sshd_program: /usr/sbin/sshd
#

システム管理の自動化においては,エディタで手動編集しているような作業は自動化しにくいタスクです。sysrc(8)のように編集作業をコマンドで実行できるようになると,システム管理の自動化がとても簡単になります。

コメント

コメントの記入