• 締切済み

Linuxのサーバで「df」コマンドの結果をメールで送るシェルスクリプト

すみません、教えていただきたいのですが、 Linuxのサーバでdfコマンドを行った結果、使用率が90%を超えた場合に「mail」コマンドでメールを送るシェルスクリプトを作りたいと思っています。 ご協力よろしくお願いします。

みんなの回答

  • 774danger
  • ベストアンサー率53% (1010/1877)
回答No.2

すみません、シェルスクリプトを書く勉強のためですか? それとも純粋にディスクの容量監視をしたいためですか? 後者であれば、mrtgでディスク監視をして、mrtgのしきい値チェック機能でメールを出す設定をすればいけます http://www.marronkun.net/linux/other/snmp_4.html 前者なら、awk等でCapacity部分を切り出してチェックして90を超えていたらメールを出す もう少し、何がわからないかを具体化したほうが的確なコメントがもらえると思いますよ

Largenes
質問者

補足

すみません、前者のシェルスクリプトの勉強のためなんですが、 >awk等でCapacity部分を切り出して この部分はなんとなく分かるのですが、チェックをどうやったら良いのかが分からなくて質問させていただきました。 分かりづらくで申し訳ありません。

  • Gizensha
  • ベストアンサー率34% (207/608)
回答No.1

cronあたりで定期的に”dfを実行して内容を解析するスクリプト"を実行させる。 そのスクリプト中で使用率90%を超えたと判断したらmailコマンドで送信。 手順だけならこんなものですね。 # 代替策として logwatch とか。

Largenes
質問者

お礼

logwatchですか。 これは知らなかったので、今から調べてみたいと思います。 ありがとうございます。 手順的には大まかにはその様な感じだろうなぁ~と思っていたのですが、どうすれば90%を超えたと判断させるのかが分からない状態なんです。

関連するQ&A

  • Linuxシェルスクリプトを新しいコマンドにしたい

    Linux初級者です。よろしくお願いします。 OSにFedora Core 10, シェルにtcshを使用しています。 よく使用するコマンドを、まとめて一括で実行するように、 新しいコマンドを作成したくて、次のようなことをしていたのですが (1)ホームディレクトリにmybinというディレクトリを作成してPATHを通す。 (2)newbin1という以下の内容のシェルスクリプトを作成して、~/mybinに置いておく。 ================================== #!/bin/tcsh -f date #実行コマンド例1 echo $PATH #実行コマンド例2 ================================== (3)chmodコマンドでファイルに実行権限を与える。 上記のような方法で、作成したシェルスクリプト(newbin1)を PATHの通ったディレクトリ(~/mybin)に置いて、 > newbin1 とコマンドを呼び出しても、 "newbin1: コマンドが見つかりません" というエラーになってしまいます。 > which newbin1 とすると、ちゃんとファイルのパスが表示されるのですが、 *********************************************************** 自分で作成したシェルスクリプト(newbin1)を、 新しいコマンドとして認識させるにはどのようにすればよいのでしょうか。 また、そもそもシェルスクリプトを新しいコマンドにすることが 不可能だったりするんでしょうか? ************************************************************ 一括で実行したいコマンドが多い場合に、aliasで割り当てるのが大変なので、 できればaliasコマンドは使わずにできる方法を探しています。 基本的な質問かもしれませんが、よろしくお願い致します。

  • linuxコマンドのdfで

    linuxコマンドのdf -h を使って ディスク使用量が50%以上のものだけ出力するにはどうしたらいいですか? df-h | ここからさっぱりわかりません。 至急お願いします。 コマンドの意味も添えてよろしくお願いします。

  • シェルのdfコマンドで、ディスク使用率の部分を抜き出し、例えば80%を

    シェルのdfコマンドで、ディスク使用率の部分を抜き出し、例えば80%を越えているものだけを表示させるにはどうすればよいのでしょうか? dfコマンドを実行すると ** ** ** 70% ** … というように表示されるのでawk文等で抜き出して数値化すればよいのでしょうか? よろしくお願いします。

    • ベストアンサー
    • AJAX
  • シェルのdfコマンドで、ディスク使用率の数値だけ

    シェルのdfコマンドで、特定パーティションのディスク使用率の数値(%は不要)だけ抜き出したいのですが、どうすればよいのでしょうか?

  • Linux、unix、シェルスクリプトの基礎知識、コマンドについて

    会社でteratermを使ってコマンドベースの仕事をする機会があるため、コマンドやシェルスクリプトについて理解したいと考えています。 そこで疑問がわいてきたため、何点か質問があります。 1)teratermでtelnetで接続してコマンドを打つときはunixのコマンドですか?linuxのコマンドですか? 2)unixとlinuxで簡単なコマンドレベルでの差は無いものと考えて大丈夫でしょうか? 3)勉強するならunix、linuxどっちがお勧めですか? (今のところ参考書として、独習linuxか独習unixを買って勉強しようと思っています。他にお勧めの参考書があれば教えてください。) 4)シェルスクリプトを家でも作成してみたいのですが、ubuntuをインストールして端末上で操作し、作成して試すことはできるのでしょうか? (お勧めの参考書があれば教えてください。) 長くなってしまいましたが、よろしくお願いします。

  • コマンドの結果を変数へ代入@シェルスクリプト

    Linux初心者です。 標記のとおり、シェルスクリプトで、コマンドの結果を変数へ代入することはできるでしょうか? 目的は、あるプログラムの開始時間から終了時間までの経過時間を計算して表示することです。時間を変数に代入しておいて計算したいのですが、方法がわかりません。(入出力のリダイレクト(|や>)、コマンドを引数に渡す方法(``)はわかったのですが...) よろしくお願いいたします。

  • linuxのシェルスクリプト

    linuxのシェルスクリプト シェルスクリプトの質問をどこですればよいのかよくわからないので、ここでさせていただきます。 最近、始めてシェルスクリプトの勉強を始めました。 スクリプトに渡す引数を出力したいと思い、 echo $1 echo $2 echo $3 とかくと、スクリプトに渡した引数が出力されます。 これを、for文で書くと for i in 1 2 3 do echo $i done とねるのですが、これでは1,2,3が出力されてしまいます。 どうなおしたらいいのでしょうか? よろしくお願いいたします。

  • dfコマンドについて教えてください

    どうもこんにちわ。 サーバ(OS:Solaris7)のディスク使用状況の調査を行っています。 dfコマンドで調査を行い、依頼元へ結果を報告したのですが、 「他にも物理デバイスがあるはずだ」とのことを指摘されました。 もしかするとdfコマンドではマウントされているディスクの使用量しかわからないのでしょうか? マウントされていないディスクの使用量を調べるためにはどのようにしたらよいのでしょうか。 お教えいただければ幸いです。

  • シェルスクリプトで選択してコマンド実行結果表示する

    Linuxのシェルスクリプトで、簡易メニュー画面を表示して、番号を入力して、コマンド実行結果を表示すしたいです。 →その後、ファイルに書き込むようにする。  表示が終わったら、再度簡易メニュー画面を表示して、別の番号を入力して再度コマンド実行結果を表示したいです。 (例:1を入力すると、ファイル容量のコマンド結果が表示、2を入力すると、ユーザーの名前コマンド結果を表示する。10を入力すると、終了)

  • シェルスクリプトでバックグラウンドで実行したコマンドの実行結果を取得するには

    OS redhat linux シェル bornシェル シェルスクリプトでバックグラウンドで複数のコマンドを実行し、 すべてのコマンドが正常に終了したら次の処理へ進むみたいな事をしたいのですが、可能でしょうか? 直列にすればよいのですが、処理時間短縮の為、並列に処理したいのです。 宜しくお願いします。