2010年4月25日日曜日

rep2をオンメモリーにして高速化2

タイトルはrep2の話ですが起動時、終了時のスクリプトの実行方法を書きます。
シャットダウンスクリプト、スタートアップスクリプトとも呼ばれます。

Linuxの起動、終了時の処理は/etc/inittabに書かれています。
例えばshutdown -r nowと再起動コマンドを実行した場合
ランレベルは6になりPCの電源が落ち、立ち上がったときに2になりますつまり
inittabの↓のが有効になり(書式についてはman inittab参照)
/etc/init.d/rc 6が実行されます(6という引数とともにrcスクリプトが実行されるという意味)
l6:6:wait:/etc/init.d/rc 6

次に2になった場合は
↓が有効になり/etc/init.d/rc 2が実行されます
l2:2:wait:/etc/init.d/rc 2

再起動の場合は6→2という遷移
停止の場合は0になって電源ボタンを押した後に2になります

停止の前にHDDにデータ(rep2)を退避し、
起動後にHDDからメモリに展開すればよさそうです
今回は/etc/init.d/rcの先頭に以下のスクリプトを仕込みました
if [ "$1" = "0" ] || [ "$1" = "6" ]
then
rsync -av --delete /dev/shm/rep2mem/ /var/www/rep2_bk/
elif [ "$1" = "2" ]
then
mkdir /dev/shm/rep2mem
rsync -av --delete /var/www/rep2_bk/ /dev/shm/rep2mem/
fi

/etc/init.d/rcに書かないでやる方法はこちら

参考リンク
http://wikiwiki.jp/disklessfun/?exec-cmd

0 件のコメント: