在Red Hat Linux Apache Server脚本中识别错误并查找变量值



我是一个红帽新手。我的Apache服务器不工作了。当我打开错误日志时,我看到的唯一内容是"/usr/binall/SSFEXISTS: line 52: not a tty: No such file or directory"

我做了一些研究,发现SSFEXISTS是我们公司使用的一个非常老的软件所使用的脚本。我想弄清楚为什么它输出一个错误。

  1. 这个错误可能来自脚本的哪个部分?

  2. 我如何找到变量$CPSICWDATE的值。它在哪里定义?有没有办法让它回显这个值?

谢谢你的帮助!

# Date created............: 8/24/95
# Last modification.......: 11-8-01 - added -PC option
#                           Now returns FOUND/NOT FOUND/DONT KNOW (if old cw)
# Purpose.................: Returns "FOUND" if the file exists "NOT FOUND"
#                           if it doesn't.
RET=0
TTY=`tty`
OLDSTTY=`stty -g 2>/dev/null`
trap 'stty $OLDSTTY <$TTY >/dev/null 2>&1;exit $RET' 0 2 3
CheckForPCFile()
{
  if [ $CPSICWDATE -gt 990947 ]
  then
    # loop until received Special End of Doc Code
   stty icrnl -clocal ixon -ixoff -ixany -opost -echo -isig icanon eof 
________________________________________
   <$TTY 2>/dev/null
    awk 'BEGIN {printf("%c%c%s%c%c", 235,188,"'"$1"'",188,235);}' >$TTY
   while [ "$x" != FILEEXISTSYES ] && [ "$x" != FILEEXISTSNO ]
  do
    read x
  done
stty $OLDSTTY <$TTY 2>/dev/null
if [ "$x" = FILEEXISTSYES ] 
 then 
  echo FOUND
 else
  echo "NOT FOUND"
  RET=1
fi 
 else
echo "DONT KNOW"
RET=2
  fi
}
case "$1" in
  -[Pp][Cc]) CheckForPCFile "$2" ;;
      *) if [ -f "$1" ]
          then
            echo FOUND 
           else
            echo "NOT FOUND "
            RET=3
         fi ;;
esac
exit $RET   **NOTE:  This is line 52**
  1. 错误是由于这一行:

trap 'stty $OLDSTTY <$TTY >/dev/null 2>&1;exit $RET' 0 2 3

它设置一个stty命令,在脚本退出时运行,它在第52行执行。

  • 你可以打印出错误日志的值:
  • echo >&2 "The value of CPSICWDATE is $CPSICWDATE."

    脚本输出错误,因为它不打算从web服务器运行。它期望在连接到某种遗留系统的终端中运行,例如通过sshtelnet或拨号。它本身并不致命

    最新更新