当我执行脚本时,出现以下错误:
Ksh:第 1 行:jrcmd:未找到
当我在 weblogic 服务器中执行相同的命令时,我得到输出,但在脚本内执行相同的命令时,它会给出错误消息。
这是脚本:
#!/bin/ksh
process_id=`ssh -q account@servername -n "pa -ef |grep weblogic|great -v "grep""|awk '{print $2}'
ssh -q account@servername -n "jrcmd $process_id print_threads > /tmp/thread.txt"
我可以期待任何答复吗?
答案1
如果您jrcmd
从脚本内部调用,则必须提供可执行文件的完整路径,jrcmd
而脚本中的情况并非如此。
代码在 Weblogic 中运行的原因是 的路径jrcdm
已经被识别$JROCKIT_HOME/bin/jrcmd
。当您在终端中运行脚本时,必须提供jrcdm
其完整路径。
打开终端并设置环境,例如:
setenv JROCKIT_HOME weblogic/bin/ #replace weblogic/bin/ by the correct path to jrcdm.
然后运行该脚本,该脚本应如下所示:
#!/bin/ksh
process_id=`ssh -q account@servername -n "pa -ef |grep weblogic|great -v "grep""|awk '{print $2}'
ssh -q account@servername -n "$JROCKIT_HOME/jrcmd $process_id print_threads > /tmp/thread.txt"