スクリプトを実行すると、次のエラーが発生します。
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"