一部のPRODサーバーでCPU使用率を取得しようとしていて、SunOSサーバー上の特定の値に達すると警告を受け取ります。 10進数を他の数字と比較するスクリプト
は以下しようとしてこれを行うには:#!/usr/bin/sh
CPU=10
prstat -a 3 1 | awk '{print $1,$2,$9;}' | head -5 > top5.txt
cat top5.txt | awk '{print $3;}' | sed '1d' > re.txt
if [ `cat re.txt` -gt $CPU ];
then
echo "this is TEST"
fi
コンテンツをtop5.txtファイルから:re.txtファイルから
cat test.txt
PID USERNAME CPU
20845 sql 2.5
25690 sql 0.3
986 splunk 0.2
5 root 0.1
内容:
cat re.txt
2.5
0.3
0.2
0.1
取得エラー:
" [: 0.3%: unknown operator"
最初の2つのコマンドが実行され、期待される結果が得られますが、条件(> 10)をチェックするためにループしているときにファイル "re.txt"の値が10進数の場合、比較できません。
誰かがこのような値をファイルから読み取る方法を比較する方法を教えてください。 ADVで
おかげで....
こんにちはPSは、私はスクリプトに非常に多くの専門家ではない午前:前述のすべての条件を満たしている場合は、ここで
は{print "this is test"}
を実行例です。あなたは何が何であり、どの部分が何をしているのかを説明してください。ここで理解するのに少し助けが必要です。 – Kabir
@Kabir最初に希望の結果が得られるかどうかお知らせください。 –
シェルに提案されたコマンドを入れて、以下のエラーが出るまで実行してください:cat thread.sh #!/ usr/bin/sh prstat -a 3 1 | awk -v cpu = 10 'NR <= 5 && NR!= 1 && $ 3> cpu {print "これはテストです"} 'awk:1行目の構文エラー awk:1行目付近の救済 – Kabir