• 締切済み

cshで下記のシェルスクリプトを作ろうとしています。

cshで下記のシェルスクリプトを作ろうとしています。 スクリプト作成初心者なため質問させてください。 /home/log/FILEA.log(このファイルはある方法で他サーバーのdf -k /dataの出力結果を1分ごとにコピーしています。 Filesystem kbytes used avail capacity Mounted on ebisu:/shares/product/data 767922632 680047616 87875016 89% /data FILEA.logを読み込んで、Mounted が90%以上であった場合に、 /home/nakam-te/volumuというGUIファイルを実行して表示させたいと思っています。 whileやreadを使用して作ればよいのではと思いますが、初めてのスクリプトなので 記述方法がわからなくて困っています。 アドバイスをいただければ幸いです。 よろしくお願いします。

みんなの回答

  • ken-etsu
  • ベストアンサー率46% (55/119)
回答No.1

丸投げすぎるんじゃ? まず、/home/log/FILEA.logの最新行を取り出す方法。最新行は、一番最後の行ですから、 $ tail -1 /home/log/FILEA.log で取り出せます。 > FILEA.logを読み込んで、Mounted が90%以上であった場合に、 「Mounted」ってなんですか?dfの出力の「Mounted on」欄は、ディレクトリのパス(この場合だと /data)ですよ。パーセンテージが表示されているのは、「capacity」欄ですね。 「capacity」欄は、dfコマンドの出力結果の空白区切りで5番目の項目ですから、 $ awk '{print $5}' で取り出すことができます。 ただし、この出力結果には「%」という文字が付いてますので、 $ tr -d % に渡して%を取ります。 これが90以上かどうかを判定すればいいわけですから、 $ if [ 値 -ge 90 ]; then コマンド; fi のような構文で判定すればいいはずです。