cronジョブとして実行されたときにnull値を渡すシェルスクリプト[閉じる]

cronジョブとして実行されたときにnull値を渡すシェルスクリプト[閉じる]

次のコマンドを使用してページスペース値を取得するには、使用されているページスペースの割合を確認する必要があります。これには以下のコードを使用しましたが、このスクリプトを実行すると関数に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) ))。バックティックは必要ありません(シェルが通常の動作に従う場合は必要ありませんが、それがどのシェルかはわかりません)。

おすすめ記事