• ベストアンサー

dfコマンドを使ったシェル

いつもお世話になっております。 今回は、dfコマンドを使用した制御について質問です。 dfコマンドにて調べたい領域のcapacityが90%以上なら処理を実施し、90%以下になるまで繰り返すというものを作りたいのですが、何かいい意見は御座いますでしょうか? 例: df -k /temp if (capactiy>90%)then 圧縮処理 eles 終了 endif 以上の処理を90以下になるまで繰り返す。 恐縮ですが、ご教授お願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • Xiangji
  • ベストアンサー率100% (4/4)
回答No.2

こんな感じでどうでしょう。 CAPACITY=`df -k /temp | awk '{if ( $6 == "/temp" ) print $5}' | sed 's/%//'` while { "${CAPACITY}" -gt 90 } do 圧縮処理 CAPACITY=`df -k /temp | awk '{if ( $6 == "/temp" ) print $5}' | sed 's/%//'` done 圧縮処理しても90%を切らない場合のことも考えたほうがいいですね・・・

kakeru_333
質問者

お礼

大変参考になりました。 ようやくシェルが完成しました。 ありがとう御座います。

その他の回答 (1)

  • galoon
  • ベストアンサー率28% (38/133)
回答No.1

df コマンドと read コマンドを組み合わせたらいかがでしょうか? df の出力も制御する必要がありますので tail コマンドも必要かも。 例) df -k /tmp | tail -1 | read env1 env2 env3 env4 env5 ... echo $env1 echo $env2 echo $env3 echo $env4 echo $env5 ※出力だけのサンプルです。 各コマンドは man コマンドを参照してください。(書ききれない ^^; )

kakeru_333
質問者

お礼

参考になりました。 ありがとう御座います。

関連するQ&A