AIXでは、「df」コマンドを使用してディスク消費情報を確認してください。

AIXでは、「df」コマンドを使用してディスク消費情報を確認してください。

多くのスペースを占めるファイルシステムを取得しようとしています。dfフラグ(Gigabyte View)を持つコマンドを使用してこの操作を実行しようとしていますが、-g予想される値を取得できません。

df -g | sed 's/%//g'| awk '+$5>=75 {print}' | head -10

次のコマンドを使用するとエラーが発生します。

df -g | sed 's/%//g'| awk '{print $5>=75}' | head -4

エラーメッセージ:

Syntax Error The source line is 1.
The error context is
               {print >>>  $5>= <<<
awk: 0602-502 The statement cannot be correctly parsed. The source line is 1.

以下は、AIXのdf -gコマンドの出力です。

/tmp>df -g | sed 's/%//g'| awk '$5 >= 75 { print }' | head -4
Filesystem    GB blocks      Free Used    Iused Iused Mounted on
/dev/hd4          10.50     10.05    5    16492     1 /
/dev/hd2          25.50     18.15   29    64361     2 /usr
/dev/hd9var        2.50      0.72   72     4521     3 /var

全体を見る:

Filesystem    GB blocks      Free %Used    Iused %Iused Mounted on
/dev/hd4          10.50     10.05    5%    16492     1% /
/dev/hd2          25.50     18.15   29%    64357     2% /usr
/dev/hd9var        2.50      1.39   45%     4512     2% /var
/dev/hd3          21.50     20.24    6%     1495     1% /tmp

AIX 7.1 PowerPC_POWER8で試してみました。何が間違っているのかわかりません!

答え1

tr2回使用しないで、awkawkを1回だけ使用してください。

df -g | awk '{ sub("%", "", $4); if ($4 >= 75) { print $4, $7 }}' | sort -n

これにより、フィールド4のパーセント記号が空の文字列に置き換えられます(削除)。残りの値が75以上の場合、フィールド4と7が印刷され、パイプでソートされます。

メモリベースの改善ステファンの答えの一つ:

df -g | awk '$4+0 >= 75 { print $4, $7 }' | sort -n

「+0」を追加すると、厳密な文字列ベースの比較ではなく、数値比較が強制されます。

タイトルを維持するには、条件を次のように変更してください。

df -g | awk 'NR < 2 || $4+0 >= 75 { print $4, $7 }' | sort -n

答え2

コードに焦点を当てるawk

awk '{print $5>=75}'

おそらく

awk '$5 >= 75 { print }'

5番目のフィールドの値が75以上であれば、現在の入力レコードが出力されます。

得られた出力で判断すると、パーセンテージを含む4番目のフィールドのようですので、$4代わりに確認したい場合があります。$5

df -g | tr -d '%' | awk '$4 >= 75 { print }' | head -4

エラーメッセージを見ると:awkOpenBSDで使用されています(AIXとまったく同じように文句を言っているようですawk)、元のコードには印刷できないため、構文エラーがあります$5 >= 75(括弧に入れない限り、この場合は0と評価されます(false)または1 (true)).mawk行動は同じです。

GNUはawk元のコードの構文を受け入れますが、それでもユーザーが望むものではありません。

答え3

以下はエラーです... "ファイルシステムGBブロックの空き容量がIusedマウントされたIusedを使用してインストールされました。"

解決策は次のとおりです。

# df -g | grep Filesystem | sed 's/%//g'| awk '{print $5>=75}' | head -4

関連情報