私の構築しているサーバーはホットスワップベイが付いているのですが、Linuxでホットスワップするのはコマンド打たないといけなくてちょっと面倒。
というわけで、対話的にホットスワップできるスクリプトを組んでみました。
このスクリプトでアンマウントとecho 1の書き込みをワンタッチで行うことが出来ます。ついでにsyncもさせています。
#!/bin/sh while true;do list=`df -h |grep /dev/sd` echo "HDD一覧を表示します。" echo "$list\n" while true;do echo "HDD名を入力 /dev/sd 例)a" read name if [ $name ] ; then break fi done echo "/dev/sd$nameでよろしいですか? y/n" read answer case $answer in y) hdd=sd$name dev=/sys/block/$hdd/device/delete if [ ! -e $dev ] ; then echo "/dev/sd$nameが存在しません。" else echo "処理を開始します。" break fi ;; n) echo "最初からやり直します。" ;; *) echo "入力ミスです。" ;; esac done echo "sync中..." sync sync sync sleep 3s echo "/dev/$hddをumount..." sudo umount /dev/$hdd* if [ $(mount |grep $hdd |wc -l) -gt 0 ] ; then echo "umountに失敗しました。" exit 1 else echo "正常にunmountしました。" echo "/dev/$hddの削除..." echo "1" > $dev if [ ! -e $dev ] ; then echo "/dev/$hddを削除しました。" else echo "削除に失敗しました。" fi fi
コピーしたらタグとか全部消えてしまった…。
シェルスクリプトもド素人なのでソースがおかしければご指摘お願い致します。
私の環境ではこれで一応問題なくホットスワップできているようです。
もし参考になれば使ってあげて下さい。
ただ、ディスクを抜き差しするとステータスが変わった的なメッセージが表示されるのですがこれは正常なんですかね…?