おそらくBASHの違いは?古いサーバーで正常に動作し、新しいサーバーでは動作しません。BASH:インストール後に新しいサーバに機能が実行されない
それを決してエコー機能)(get_running_palacesで "それを作った" 代わりに出力
COMM:は/ dev/FD/63:そのようなファイルやディレクトリ
COMM:は/ dev/FD/63:いいえそのようなファイルやディレクトリ
#!/bin/bash
TYPE=$1
get_palaces(){
for PALACE in $(ls -trI shared /home | sort); do
if [ -d "/home/$PALACE/palace" ]; then
echo $PALACE
fi
done
}
# comm -12 file1 file2 Print only lines present in both file1 and file2.
# comm -3 file1 file2 Print lines in file1 not in file2, and vice vers
get_running_palaces(){
echo "made it";
PSFRONT_A=$(ps ax | grep '[p]sfront -p .* -r /home/.*/palace ' | sed 's| *\([0-9]*\).*/home/\(.*\)/palace.*$|\2|' | uniq | sort)
PSERVER_A=$(ps ax | grep '[p]server.* -f /home/.*/palace/psdata/pserver.conf ' | sed 's| *\([0-9]*\).*/home/\(.*\)/palace.*$|\2|' | sort)
ERRORS=$(comm -3 <(echo "${PSERVER_A[*]}") <(echo "${PSFRONT_A[*]}"))
if [ ! -z "$ERRORS" ]; then
comm -3 <(echo "${PSERVER_A[*]}") <(echo "${ERRORS[*]}")
else
echo "$PSERVER_A"
fi
}
case "$TYPE" in
online)
KNOWN_PALACES=$(get_palaces)
ERROR_LESS=$(get_running_palaces)
ONLINE=$(comm -12 <(echo "${KNOWN_PALACES[*]}") <(echo "${ERROR_LESS[*]}"))
[ ! -z "$ONLINE" ] && echo "$ONLINE"
;;
offline)
KNOWN_PALACES=$(get_palaces | sort)
ERROR_LESS=$(get_running_palaces)
OFFLINE=$(comm -3 <(echo "${KNOWN_PALACES[*]}") <(echo "${ERROR_LESS[*]}"))
[ ! -z "$OFFLINE" ] && echo "$OFFLINE"
;;
*)
get_palaces
;;
esac
exit 0;
情報:
新サーバー:
のuname -a
Linuxのwww.ipalaces.org 2.6.32-274.7.1.el5.028stab095.1#1 SMP月10月24日午後08時49分24秒MSD 2011 x86_64のGNU/Linuxの
lsb_release - RD
-bash:lsb_release:コマンドが見つかりません
のbash --version
GNUのbashのは、バージョン4.1.5(1)-release(x86_64版-pc-linux-gnuのよう)
古いサーバー:
のuname -a
Linuxのipalaces.org 2.6.32-5-686#1 SMP月1月16日午後4時04分25秒UTC 2012のi686 GNU/Linuxの
説明-rd lsb_release: Debian GNU/Linuxの6.0.4(スクイーズ)
リリース:6.0.4
のbash --version
GNU bashのは、バージョン4.1.5(1)-release(i486の-pc-linux-gnuのよう)
サーバーの違いは何ですか?エラーメッセージは、あなたが正しいBashバージョンを持っているかのようにぼんやりと見えますが、基本アーキテクチャはプロセス置換をサポートしていません...おそらく。 'uname -a'、' lsb_release -rd'、 'bash --version'などの出力は、診断に役立つかもしれません。 – tripleee
@トリプルを行った。チェックアウト編集 – ParoX
@treepleeeまた、 'ps ax | grep '[p] sfront -p。* -r /home/.*/palace' | | * \([0-9] * \)。*/home/\(。* \)/ palace。* $ | \ 2 | ' |ユニーク|ソート 'と' ps ax | grep '[p]サーバー。* -f /home/.*/palace/psdata/pserver.conf' | | * \([0-9] * \)。*/home/\(。* \)/ palace。* $ | \ 2 | ' |ソートは両方のサーバーで必要に応じて動作します。 – ParoX