ディスク容量チェックについて

OKWave

2007-08-16 13:00

ディスク容量チェックについて

Cシェルを用いてディスク容量チェックのツールを作ろうとしています。

df -k で容量(capacity)が80%以上の場合、ファイルシステム名と容量を出力したいと考えています。

ちなみに色々調べていると、Bシェルでほぼ似たような処理を見つけました。(以下抜粋)

df -m | grep / | while read READDATA
do 
RATE=`echo "${READDATA}" | awk -F' ' '{print $5}'`
RATE1=`echo "${RATE}" | awk -F'%' '{print $1}'`
VOL1=`echo "${READDATA}" | awk -F' ' '{print $6}'`
if [ $RATE1 -gt $CMAX ];then
echo '('${VOL1}') DISK_SPACE_ERROR ' "${RATE1}" %
cwc_secall.sh DISK_SPACE_${VOL1}
else
echo '('${VOL1}') DISK_SPACE_OK ' "${RATE1}" %
fi

Cシェルで上記のようにreadコマンドがうまく使えません。
長くなりましたが、どなたかご教授願います。

良回答

こんばんは。
コマンドの出力結果を1行ずつ処理するときは、こんな風にしてます。

# cat sample.csh

#!/bin/csh

foreach line ( "`/bin/df -k | egrep '^/'`" )
  set device = `echo ${line} | awk -F' ' '{print $1}'`
  set percent = `echo ${line} | awk -F' ' '{print $5}'`

  echo $device " : " $percent
end


# ./sample.csh
/dev/dsk/c0d0s0 : 63%
/devices : 0%
/dev/dsk/c0d0p0:boot : 15%
/usr/lib/libc/libc_hwcap1.so.1 : 63%
/dev/dsk/c0d0s1 : 10%
/dev/dsk/c0d0s5 : 32%
/export/home/hoge : 63%

あとは、$percentから「%」を削除して、if文で「80」と数値比較するだけです。

ZDNET Japan 記事を毎朝メールでまとめ読み(登録無料)

ホワイトペーパー

新着

ランキング

  1. ビジネスアプリケーション

    レガシーデータ基盤からの脱却が AI 活用の鍵--先進企業に学ぶクラウド移行の成功事例

  2. ビジネスアプリケーション

    AI 人材育成を単なる研修で終わらせない--事業を動かす AI スキル構築の 5 つのステップ

  3. ビジネスアプリケーション

    汎用 AI をビジネス仕様に。業務データを活かす AI アプリ開発の新しい前提「データ基盤」

  4. 仮想化

    コンテナ化だけで十分なのか。商用パッケージ運用の負荷を左右するOpenShiftの価値

  5. 経営

    月15万円から始めるSOC。セキュリティ人材を雇えない企業の、取引を止めない経営判断

NEWSLETTERS

エンタープライズコンピューティングの最前線を配信

ZDNET Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]