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コマンドがうまく使えません。
長くなりましたが、どなたかご教授願います。
No.2ベストアンサー
- 回答日時:
こんばんは。
コマンドの出力結果を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」と数値比較するだけです。
awkの中で削除するか、変数に取り出した後、sed等で削除してください。
No.3
- 回答日時:
こんばんは
cshでは、while readのような利用はできないみたいですね。下記が参考になるかもしれません。
参考1.
http://www.kiso.tsukuba.ac.jp/~makimura/text/nod …
参考2.
http://www.lab3.kuis.kyoto-u.ac.jp/misc/guide/ma …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux 次の要件を満たすにはどのように修正したらよろしいでしょうか 1 2022/11/24 20:57
- その他(プログラミング・Web制作) awkの正規表現での最左最短マッチング 3 2022/07/01 00:10
- PHP preg_matchで Warning: Undefined variableが出ます 1 2022/11/15 17:06
- その他(プログラミング・Web制作) 単純なコマンドプロンプトが動きません。 2 2022/04/19 15:21
- その他(プログラミング・Web制作) zshの例外処理 1 2022/06/02 16:36
- PHP PHP MySql ページング 2 2022/09/20 06:38
- UNIX・Linux Linuxについて質問です。 以下のhistoryの出力結果から、sedコマンドのファイル名tmp1 1 2023/02/03 20:11
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- PHP アップロード画像数でCSSを分けることに成功したのですが、画像の横に文字を並べることが出来ません。 3 2023/07/28 17:16
- その他(プログラミング・Web制作) ログインシェル時のSHELL環境変数 1 2022/06/08 19:21
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ubuntu(linux)のシャットダウン...
-
ubuntuのシャットダウンが進ま...
-
Ubuntu系とCentOS系の違いはな...
-
Ubuntuで数字だけのユーザーア...
-
ubuntuで デイスク/deb/loopと...
-
bashでシングルクォート内の変...
-
AWSでSSH接続をしたいのですが...
-
プログラミングPC、LinuxのOSパ...
-
Linux(Fedora30)のブートディ...
-
Rasberry pi のオンボードNICの...
-
新しく買ったWin11のPCでLinux...
-
[Linux初心者]Ubuntu22.04.3LTS...
-
Windowsのローカルディレクトリ...
-
en_US.UTF-8ロケールってどのPO...
-
Ubuntu on Xorgのログインについて
-
ワイルドカードの使い方
-
VertualBox でのLinux Mint の...
-
TCPWrapper のインストールにつ...
-
ホストオンリーアダプタで接続...
-
Kali Linuxで起動できない - Mi...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
bashでシングルクォート内の変...
-
ubuntu(linux)のシャットダウン...
-
AWSでSSH接続をしたいのですが...
-
Linuxのパーティション番号の変...
-
ubuntuで デイスク/deb/loopと...
-
自作のウェブサイトを友人に見...
-
ubuntuのシャットダウンが進ま...
-
[Linux初心者]Ubuntu22.04.3LTS...
-
Ubuntu系とCentOS系の違いはな...
-
Ubuntu on Xorgのログインについて
-
Windowsのローカルディレクトリ...
-
tarで纏める際に、複数場外した...
-
Linux のシェルスクリプトの強...
-
Ubuntuで数字だけのユーザーア...
-
linuxサーバーのキャッシュをク...
-
shellscript内のコマンドを、su...
-
ssl_request_logの必要性について
-
ubuntuのサーバー(virtual box)...
-
Kali Linuxで起動できない - Mi...
-
ホストオンリーアダプタで接続...
おすすめ情報