ちょっと古いPCにCentOSを入れてNAS(samba)として使っていたところ、先日、家のブレーカーが落ちたときに起動しなくなりました。
保存していたデータは、NTFSフォーマットの外付けUSBハードディスクに、rsyncで毎日自動バックアップしていたため、そのままWindows機に挿し込んですぐに使えましたが、元通りにした後の対策として、小さいUPS(OMRON BY35S)を導入することにしました。
自動シャットダウンにはSimple Shutdown(オープンソース)を使いました。
設定値はほぼデフォルト。シャットダウン時に実行される外部コマンドで、ヤフオクで買ったFortigate60Cも一緒にシャットダウンしようと思います。このFortigate、ネットワーク機器にしては珍しく停止処理を勧められます。
これにはexpectが使えそうです。
#yum -y install expect でインストールしておきます。
Fortigateでの実際の操作は以下
FGT60C login: admin
Password: ********
Welcome !
FGT60C # execute shutdown
This operation will shutdown the system !
Do you want to continue? (y/n)
y を入力すればシャットダウンが始まります。
以下のスクリプトに実行権限をつけて
/usr/lib/ssd/master/Shutdown.cfgのExternalCommandに設定しておきました。
#!/usr/bin/expect
#--------------------------
set ip "192.168.11.1"
set user "admin"
set pass "xxxxxx"
set timeout 30
#-------------------------
spawn telnet $ip
expect "login:"
send "$user\r"
expect "Password:"
send "$pass\r"
expect "#"
send "exec shutdown\r"
expect "(y/n)"
send "y\r"
テストもOKでした。