ESXi hostで稼働しているVMのバックアップ/リストアにghettoVCB.shを利用していますが 5.1にUpdateしたら動作しなくなってしまいました
ghettoVCB.sh – Free alternative for backing up VM’s for ESX(i) 3.5, 4.x+ & 5.x
http://communities.vmware.com/docs/DOC-8760
/vmfs/volumes/datastore/lamw-ghettoVCB-518cef7 # ./ghettoVCB.sh -g ghettoVCB.conf -f vms_to_backup
Logging output to “/tmp/ghettoVCB-2012-09-19_01-58-03.log” …
You’re not running ESX(i) 3.5, 4.x, 5.x!
利用していたバージョンはlamw-ghettoVCB-518cef7.tar.gzです
スクリプトを確認したところ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
ESX_VERSION=$(vmware -v | awk '{print $3}') if [[ "${ESX_VERSION}" == "5.0.0" ]]; then VER=5 elif [[ "${ESX_VERSION}" == "4.0.0" ]] || [[ "${ESX_VERSION}" == "4.1.0" ]]; then VER=4 else ESX_VERSION=$(vmware -v | awk '{print $4}') if [[ "${ESX_VERSION}" == "3.5.0" ]] || [[ "${ESX_VERSION}" == "3i" ]]; then VER=3 else echo "You're not running ESX(i) 3.5, 4.x, 5.x!" exit 1 fi fi |
vmware -vでESXiのバージョンを確認しているところがありました
実行してみると下記の結果が表示されます
~ # vmware -v
VMware ESXi 5.1.0 build-799733
~ #
ならばと下記の様に書き換えてしまいました
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
ESX_VERSION=$(vmware -v | awk '{print $3}') if [[ "${ESX_VERSION}" == "5.0.0" ]] || [[ "${ESX_VERSION}" == "5.1.0" ]]; then VER=5 elif [[ "${ESX_VERSION}" == "4.0.0" ]] || [[ "${ESX_VERSION}" == "4.1.0" ]]; then VER=4 else ESX_VERSION=$(vmware -v | awk '{print $4}') if [[ "${ESX_VERSION}" == "3.5.0" ]] || [[ "${ESX_VERSION}" == "3i" ]]; then VER=3 else echo "You're not running ESX(i) 3.5, 4.x, 5.x!" exit 1 fi fi |
取り敢えずこれで実行してみました。バックアップの取得は完了したのですがログに気になるメッセージが表示されています
/vmfs/volumes/datastore/lamw-ghettoVCB-518cef7 # ./ghettoVCB.sh -g ghettoVCB.conf -f vms_to_backup
Logging output to “/tmp/ghettoVCB-2012-09-18_02-06-30.log” …
Insufficient arguments.
./ghettoVCB.sh: line 25: whoami: not found
ash: root: unknown operand
2012-09-18 02:06:30 — info: ============================== ghettoVCB LOG START ==============================2012-09-18 02:06:30 — info: CONFIG – USING GLOBAL GHETTOVCB CONFIGURATION FILE = ghettoVCB.conf
2012-09-18 02:06:30 — info: CONFIG – VERSION = 2011_11_19_1
スクリプトを確認すると
1 2 3 4 5 |
if [ ! $(whoami) == "root" ]; then logger "info" "This script needs to be executed by \"root\"!" echo "ERROR: This script needs to be executed by \"root\"!" exit 1 fi |
どうもwhoami commandを使用して実行しているユーザがrootかどうか確認しているようですが、このwhoami commandが無いようです
~ # whoami
-ash: whoami: not found
~ #
取り敢えず代替えにwho commandを使用するように書き換えました
whoamiが無いのでこの部分をばっさり削除してもいいとは思いますが
1 2 3 4 5 6 7 8 9 10 11 12 |
~ # who am i BusyBox v1.19.0 (2012-02-29 14:20:08 PST) multi-call binary. Usage: who [-a] Show who is logged on -a Show all ~ # who root char/pty/t0 00:00 Sep 20 01:40:32 192.168.1.5 ~ # |
1 2 3 4 5 |
if [ ! $(who | awk '{print $1}') == "root" ]; then logger "info" "This script needs to be executed by \"root\"!" echo "ERROR: This script needs to be executed by \"root\"!" exit 1 fi |
実行してみるとエラーはなくなりましたが、正式に対応したら入れ替えようと思います
/vmfs/volumes/datastore/lamw-ghettoVCB-518cef7 # ./ghettoVCB.sh -g ghettoVCB.conf -f vms_to_backup
Logging output to “/tmp/ghettoVCB-2012-09-20_02-36-13.log” …
Insufficient arguments.
2012-09-20 02:36:14 — info: ============================== ghettoVCB LOG START ==============================2012-09-20 02:36:14 — info: CONFIG – USING GLOBAL GHETTOVCB CONFIGURATION FILE = ghettoVCB.conf
2012-09-20 02:36:14 — info: CONFIG – VERSION = 2011_11_19_1
I love the way you wrote this article. This is wonderful. I do hope you intend to write more of these types of articles. Thank you for this interesting content!