ディスク容量チェックについて
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」と数値比較するだけです。
記事提供:OKWave
「Solaris系OS」 のバックナンバー
-
mailxとsendmailは別のもの?
古いシステムで、メール送信にmailxコマンドを使用しています。sendmailを脆弱性の理由で、止めたいのですが、sendmailデーモンを止めても、mailxコマンドには影響ないですか? -
Solaris9の時間がずれました
-
cronに登録していたアプリケーションが起動できなくなりました
-
Sun製サーバでntp関連パッチが当てられているかどうかを知りたい
-
Solaris10でツールのインストールが出来ず困っています
- Solaris系OS 一覧へ »
ホワイトペーパー
ZDNet Japan Essential Topic
-
【一流企業が用意する活躍の舞台】
各社のキーマンが考えるキャリア*公開中! -
コラボレーション基盤特集
Notes置換とバージョンアップの情報はこちら
企画特集
[PR]
-
ERPパッケージの導入を成功させるコツ
成功させるコツをクイズ形式のWebcastで配信中 -
エンタメCGM「gooメーカー☆メーカー」
【第2回】メーカー/占いのコンテンツを作ってみた! -
ZDNet Japan Green IT
サミットだけでは終わらせない!エンタープライズの取り組みはこれからだ! -
これからの時代のセキュリティ対策
くるぞ!in the cloudソリューション -
Techno Exchange
RackableとCTCの地球にやさしい関係 -
グリーンITの第一歩は見える化です
経営・財務・情報システムの3つの視点から環境対応を考える -
なぜ社内文書は無秩序に分散するのか?
真の文書管理を考える3か条に迫る!
ZDNet Japan イベント
- 開催日:2008年10月23日(木)
- イベント一覧へ»