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