次のコマンドを使用してページスペース値を取得するには、使用されているページスペースの割合を確認する必要があります。これには以下のコードを使用しましたが、このスクリプトを実行すると関数にnull値が渡されます。
MAX=`free -m | grep Swap | gawk '{ print $2 }'`
MIN=`free -m | grep Swap | gawk '{ print $3+300 }'`
DIV=`echo $MIN/$MAX*100|bc -l`
PAGESPACE=`print $(( round(DIV) ))`
PAGESPACE
私の関数の1つにパラメータとして渡しています。
機能:
monPar 0 0 $PAGESPACE 80 90 db1adm "PAGE SPACE" now
このスクリプトを手動で実行すると、正しい値が提供されます。問題は、このスクリプトがcrontabで実行されたときに発生します。このスクリプトは関数にゼロ値を渡します。
ベストアンサー1
cronジョブが正しく機能しない最初の問題は、cronジョブで明示的に設定するか、すべてのユーティリティに絶対パスを使用$PATH
してください
。$PATH
2番目に可能性の高い問題は、シェルをチェックすることです。これはround(DIV)
一般的なシェル算術演算子ではないため、cronが使用するシェルでは使用できない可能性があります。
また、をPAGESPACE=
実行してこれを簡素化できますPAGESPACE=$(( round(DIV) ))
。バックティックは必要ありません(シェルが通常の動作に従う場合は必要ありませんが、それがどのシェルかはわかりません)。