思考実験とD.I.Y.

D.I.Y and Gedankenexperiment

【FreeBSD13.5/13.4】各サーバのシステム設定変更を動的にバックアップする(2)

前に作った”サーバのシステム設定変更動的バックアップ用スクリプト”のいい加減な呼び出し方法に本質的な欠陥があったので修正しようと思います(^^;;;)。【注*1

前に作った、”サーバのシステム設定変更動的バックアップ用スクリプト”[*2]は、”am-utils”が起動していることが前提ですが、起動順序等の理由から、メインファイルサーバー上のスクリプトを実行できない状態になっていました。

そこで、現在のFreeBSDの作成作法に従って起動時実行スクリプトの修正をする事にしました。

1. スクリプトの修正

修正を行うのは、各サーバーが起動時に実行するスクリプトになります。

(1)各サーバー用起動時実行スクリプトの修正

”システム設定変更動的バックアップ用スクリプト”を起動時に実行させると、それなりに時間がかかることがあります。

このスクリプト実行で時間がかかると、sshでの接続はできますが、コンソールが使えるようになるまで時間を要します。

そこで、各サーバーでのスクリプト呼び出しは、バックグラウンドで実行させるようにします。

root@mainsv:# cd /Share/scripts/common ; nfsエクスポートディレクトリに移動。
root@mainsv:# touch Chk_system_setting ; 空のファイルを作成。
root@mainsv:# chmod +x Chk_system_setting ; 実行許可を与える。
root@mainsv:# vi Chk_system_setting ;

 

下記の内容で作成します。

#!/bin/sh

# PROVIDE: Chk_system_setting
# REQUIRE: bgfsck

. /etc/rc.subr

name="Chk_system_setting"
rcvar="Chk_system_setting_enable"
command=/usr/sbin/daemon
command_args=/share/scripts/common/system.setting-backup.sh

load_rc_config $name
run_rc_command "$1"

 

スクリプトの名前を定義。
実行順序を”bgfsck”の後にする。

rc スクリプトが共通に使用するサブルーチンを定義したファイルを読み込む。

スクリプトの名前を変数に定義。
rc.confのどの変数が制御に使用されているかを定義。
バックグランドスクリプト実行させるために、実行するプログラムは”daemon”にする。
daemon”に実行させるスクリプト絶対パスを定義。

コマンドの実行。

2. 各サーバーの設定

(1)各サーバーへのスクリプトをコピー

各サーバーへの設定は、上記で作成した各サーバー用起動時実行スクリプトを”/usr/local/etc/rc.d”にコピーします😀。

root@FreeBSD:# cd /usr/local/etc/rc.d    
root@FreeBSD:# cp /share/scripts/common/Chk_system_setting.    

 

(2)rc.confの修正

vi rc.confを修正します。

root@FreeBSD:# cd /etc    

root@FreeBSD:# vi rc.conf

 

下記の黄色字部分を追加します。

[..]

rpc_statd_enable="YES"
Syncdate_enable="YES"
Chk_system_setting_enable="YES"

 

 

ブログランキング・にほんブログ村へにほんブログ村 IT技術ブログへ

出典・引用・備考

*1:この投稿の内容は、特定の機種並びに特定の環境での確認結果になります。
同等機種や異なる環境での動作他を保証するものではありませんので、ご留意いただけます様お願いいたします。

*2: