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日20點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日16時04分25秒UTC 2012 i686的GNU/Linux的
lsb_release -Rd
說明:的Debian GNU/Linux的6.0.4(擠)
版本:6.0.4
的bash --version
GNU的bash,版本4.1.5(1)-release(1486-PC-Linux的GNU)
服務器之間有什麼區別?錯誤消息看起來很模糊,就像你有正確的Bash版本,但是底層架構不支持進程替換......也許。 'uname -a','lsb_release -rd','bash --version'等的輸出可能對診斷有用。 – tripleee 2012-03-19 19:08:08
@tripleee完成。結賬編輯 – ParoX 2012-03-19 19:11:40
@tripleee還應該注意的是'ps ax | grep'[p] sfront -p。* -r /home/.*/palace'| sed's | 。* \([0-9] * \)* /家/\(.*\)/宮* $ | \ 2 |」 | uniq | sort'和'ps ax | grep'[p] server。* -f /home/.*/palace/psdata/pserver.conf'| sed's | 。* \([0-9] * \)* /家/\(.*\)/宮* $ | \ 2 |」 |排序「工作應該在兩臺服務器上。 – ParoX 2012-03-19 19:12:58