2011年2月26日土曜日

引越しツール

何度かソフトウェアRAIDのメンバーディスクが壊れたり、RAIDのそのものの容量が足りないなんてことはサーバ管理では日常茶飯事なので、緊急修理が終わると安心して暫くは放ったらかされることもある。そうすると本当に引越しをしないでだらだら運用してしまうのでよろしく無い。思いついた頃にはまた再度ファイルシステムをコピーしなくてはならない。ツールがあった方が楽だ。

ツールを考えたので取り敢えず出してみる。これはファイルシステムの引越しを単純に行うだけのツール。すでにディスクの設定の殆どは終わっててアクセスできる状態になっていることが前提だ

1./etc/migfstab

こんな形式のファイルを作る。移行先は何らかのファイルシステムにマウントする。

移行元物理パーティション 移行元ファイルシステム 移行先物理パーテーション 移行先ファイルシステム

例:

/dev/mirror/gm0s1a / /dev/mirror/gm1s1a /mnt
/dev/mirror/gm0s1d /tmp /dev/mirror/gm1s1d /mnt/tmp
/dev/mirror/gm0s1e /var /dev/mirror/gm1s1e /mnt/var
/dev/mirror/gm0s1f /usr /dev/mirror/gm1s1f /mnt/usr

2.migration.sh

#!/bin/zsh

while read i
do
echo $i | awk '/^\//{ print "/sbin/newfs -U " $3 }'
echo $i | awk '/^\//{ print "mount " $4 " " $3 }'
echo $i | awk '/^\//{ print "dump -L -0 -f- " $2 " | ( cd " $4 "; restore -r -v -f-)"}'
done < "/etc/migfstab"


使用法: いまんところ、サブシェルに喰わせるコマンドを吐き出すようにしているから、シェルコマンドラインにリダイレクトすればよい。

何が行われるか確認したい場合は、単にシェルスクリプトを起動すれば良い。

例: migration.sh | /bin/zsh


10分くらいで作ったけど、何回使うんだろうか。これから出番が増えそうなので(汗 事故が無いように願いたい。 

0 件のコメント: