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

时间:2015-07-20 15:59:58

标签: linux apache redhat

我是Red Hat noob。我的Apache服务器无法运行。当我打开错误日志时,我唯一看到的是" / usr / binall / SSFEXISTS:第52行:不是tty:没有这样的文件或目录"

我做了一些研究,发现SSFEXISTS是我们公司使用的一个非常古老的软件使用的脚本。我试图找出它输出错误的原因。

  1. 该错误的哪一部分可能来自?

  2. 如何找到变量$ CPSICWDATE的值。它在哪里定义?有没有办法可以让它回应价值?

  3. 感谢您的帮助!

    # 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 个答案:

答案 0 :(得分:0)

  1. 错误是由于这一行:
  2. trap 'stty $OLDSTTY <$TTY >/dev/null 2>&1;exit $RET' 0 2 3

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

    1. 您可以使用以下命令打印错误日志的值:
    2. echo >&2 "The value of CPSICWDATE is $CPSICWDATE."

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