#!/bin/bash
# Disk Space Monitoring for more than 96%
# Aand shuting down servers
# Declare Variebles
used_space=0
mount_point="/apps/"
threshold=$96%
DOMAIN_HOME=/apps/oracle/product/Middleware/user_projects/domains/cbs_idm_dom
EMAIL_ADDR=user@host
MW_BASE=/apps/oracle/product/Middleware
used_space=`df -k $mount_point | grep % | awk {'print $4'} | sed 's/%//g'`
#print "Free space available under \"$mount_point\" is `expr 100 - $used_space`%.\n"
if [ $used_space >= $threshold ]
echo $MESSAGE | mailx -s "Alert:Server disk is full - shutting down server." $EMAIL_ADDR
#sleep 60
then
#Shutdown OID in this host
# STOP
source $MW_BASE/wlserver_10.3/server/bin/setWLSEnv.sh
#STOP OPMN
#$MW_BASE/idm_inst/bin/opmnctl stopall > /apps/oracle/product/Middleware/scripts/logs/stop_idm_inst.log &
#$MW_BASE/idm_sync/bin/opmnctl stopall > /apps/oracle/product/Middleware/scripts/logs/stop_idm_sync.log &
#Stop Weblogic
$DOMAIN_HOME/bin/stopManagedWebLogic.sh wls_ods1 > /apps/oracle/product/Middleware/scripts/logs/stop_wls_ods2.log &
else
echo "INVALID OPTION"
fi;
答え1
エラーの原因はこの行のペアです。
threshold=$96%
...
if [ $used_space >= $threshold ]
1つ目は、私が思うものと全く異なるものとしてしきい値を設定します。主に文字列を引用しなかったためですが、部分的には意味$
論的に理解されていない文字列があるためです。
threshold=$96%
echo ">$threshold<" # >6%<
私が欠けているコードは、実際には比較ではなく比較を実行できるように...
設定します。used_space=97
テスト出力を>
ファイルにリダイレクト=
した後、テストの一部として以下を評価します。
[ 97 6% ]
吐き出したもの-bash: [: 97: unary operator expected
。あなたは-ge
運送業者を探しているかもしれません(利用可能な運送業者の詳細を確認または入手するman bash
こともできます)。man test