最近、同じオペレーティング システムである FreeBSD 8.2 で動作する新しい専用サーバーに移行しました。root アカウントへのアクセス権があり、すべての権限が適切に設定されています。
私の問題は、古いサーバーで実行していた bash スクリプトが新しいマシンで機能しないことです。スクリプトの実行中に表示される唯一のエラーは次のとおりです。
# sh script.sh
script.sh: 3: Syntax error: word unexpected (expecting ")")
コード自体は次のとおりです。
#!/usr/local/bin/bash
PORTS=(7777:GAME 11000:AUTH 12000:DB)
MESSG=""
for i in ${PORTS[@]} ; do
PORT=${i%%:*}
DESC=${i##*:}
CHECK=`sockstat -4 -l | grep :$PORT | awk '{print $3}' | head -1`
if [ "$CHECK" -gt 1 ]; then
echo $DESC[$PORT] "is up ..." $CHECK
else
MESSG=$MESSG"$DESC[$PORT] wylaczony...\n"
if [ "$DESC" == "AUTH" ]; then
MESSG=$MESSG"AUTH is down...\n"
fi
if [ "$DESC" == "GAME" ]; then
MESSG=$MESSG"GAME is down...\n"
fi
if [ "$DESC" == "DB" ]; then
MESSG=$MESSG"DB is down...\n"
fi
fi
done
if [ -n "$MESSG" ]; then
echo -e "Some problems ocurred:\n\n"$MESSG | mail -s "Problems" yet@another.com
fi
私は実際には bash でコーディングしていないので、なぜこれが起こったのかわかりません...