いますぐ実践! Linuxシステム管理

[バックナンバーのトップへ] [Linux システム管理のトップへ]


いますぐ実践! Linux システム管理 / Vol.097 / 読者数:1014名

こんばんは、うすだです。

自分で言うのもなんですが、毎週毎週、からからに乾いたぞうきんを絞るようにして、 ネタを放出してまいりました。

しかし、当メルマガの本来の目的は、システム管理を任されたけど、 なにをすればいいかのわからない、という迷える小羊なかたのため、 習うより慣れろ的にすぐ実行して試せることを、ご紹介することでした。

というわけで、唐突ではありますが、初心に戻ろうと思います。
自分がシステム管理者として経験した、こうすると便利だったということの中で、 OS やディストリビューションにあまり依存しなかったものを、 なるべくわかりやすく、お送りする所存でございます。

ですので、今までよりも内容に歯応えが感じられないな、 と思われる貴兄もいらっしゃるかもしれません。そのときはご了承ください。

…なんて、風呂敷を広げてしまいましたが、いきなりネタにつまり、 来週早々逆戻りしてしまう、ということが考えられなくもないわけですが…。

まあ、とにかくがんばってまいりますので、
今週も、はりきってるところを見てやってくださいまし。

今週のお題 - 各ユーザのホームの容量を監視する

わたしがシステム管理をほぼ本業としていた頃は、サーバでも、 ディスクの容量が数GB というのが普通でした。(何年前だ…?)
ですので、当然、だれかがディスクを浪費すると、ホームがあふれ出し、 その他大勢のユーザさんが途方に暮れる、という光景が見られました。

現代においては、個人の PC でさえ、数百GB が当たり前となりました。
しかしながら、ディスクはあれば使うものです。それが無限でない限り、 必ずいつかは、容量不足という境地に達してしまうように思います。

クォータを導入して、きっちり上限を定めれば、 あとは自動的に処理されるようになります。しかし、 ソフトリミットがあるといってもあまり融通がききませんし、 抵抗勢力に阻まれて導入自体できないという問題があるかもしれません。

Vol.085 - ファイルシステムの使用量を制限する
http://www.usupi.org/sysad/085.html
Vol.086 - ファイルシステムの使用量を制限する / スーパー
http://www.usupi.org/sysad/086.html

というわけで今週は、ホームを監視して、 浪費しているひとをすぐに発見できるような仕込みをしてみたいと思います。


さて、ファイルシステムの空き容量を知りたいときに実行するコマンドといえば、 df ですよね。

  # df
  Filesystem         1K-blocks      Used Available Use% Mounted on
  /dev/hda2          76095208K 68826576K  3403204K  96% /
  /dev/hda1             51206K    11890K    36672K  25% /boot
  none                 321884K        0K   321884K   0% /dev/shm

こんな感じで、各ファイルシステムの容量と使用量、残りの空き容量などが、 一覧で出力されます。
引数にディレクトリを指定すると、 そのディレクトリが所属するファイルシステムだけを出力してくれます。

  # df /home
  Filesystem         1K-blocks      Used Available Use% Mounted on
  /dev/hda2          76095208K 68826576K  3403204K  96% /

この例ですと、/home は / に含まれますので、/ の結果が出力されます。


かたや、あるディレクトリ以下のディスク使用量を知るためのコマンドといえば、 du ですね。

  # du -sk /home/usu
  232352  /home/usu

-s オプションで合計のみ出力、-k オプションで単位を 1kB に指定しています。 つまり、/home/usu 以下は 232,352 kB の容量があります。

また、複数のディレクトリを指定すると、それぞれの結果を出力してくれます。

  # du -sk /home/*
  169236  /home/jin
  75492   /home/kentaro
  240     /home/test
  ...後略...

ただ、そのままですと、指定した引数の順番で出力されます。
使用量の多い順に並んでいたほうが便利、という貴兄は、 sort コマンドを用いてください。

  # du -sk /home/* | sort -nr
  232352  /home/usu
  169236  /home/jin
  75492   /home/kentaro
  ...後略...

ちなみに、sort のオプションは、-n で数値を対象、-r で逆順、です。
これを、メールで報告させるには、さらに Mail コマンドに渡します。

  # du -sk /home/* | sort -nr | Mail -s "/home usage" root

これを cron で定期的に実行させれば、 それなりには監視していることになりそうです。


ただ、このままでは、ぜんぜん危機的状況でないときも、 定期的にメールが飛んできてしまいます。
できることなら、使用量がある割合以上になったときにだけ報告させて、 メールの量を減らしたいですよね。

しかし、使用% だけを得るには、どうすればいいのでしょうか。
いくつか方法がありそうですが、 ここでは sed コマンドを使ってみようと思います。
先ほどの df コマンドの出力から、必要な行だけを出力します。

  # df /home | tail -1
  /dev/hda2          76095208K 68826576K  3403204K  96% /

ここで、sed コマンドを使って、数字% という文字列の、 数字の部分だけを取り出します。

  # df /home | tail -1 | sed "s/^.* \([0-9]*\)%.*$/\1/"
  96

…おお、取り出せました。
この結果が、ある閾値以上のときだけ、 du コマンドを実行すればいいということになります。


以上をまとめますと、こんなシェルスクリプトになります。

  #!/bin/sh
  [ $# -ge 1 ] && HOMEDIR=$1 || HOMEDIR="/home"
  [ $# -eq 2 ] && HOMETHR=$2 || HOMETHR=95
  HOMEUSE=`df $HOMEDIR | tail -1 | sed "s/^.* \([0-9]*\)%.*$/\1/"`
  if [ $HOMEUSE -ge $HOMETHR ]; then
      du -sk $HOMEDIR/* | sort -nr
  fi

1つでも引数があると、最初の引数をホームディレクトリに設定します。
特に指定しなければ、ホームディレクトリは /home です。
引数が2つの場合は、第2引数を閾値として使います。 そうでなければ 95% に設定します。
変数 HOMEUSE には、先ほどの使用% が入ります。これが閾値以上なら、 ホーム直下の各ディレクトリの使用量を du コマンドで計測します。

ただ、このままでは、標準出力に出力されます。
メールで報告させたい場合は、たとえば以下のようにしてみましょう。

  #!/bin/sh
  [ $# -ge 1 ] && HOMEDIR=$1 || HOMEDIR="/home"
  [ $# -ge 2 ] && HOMETHR=$2 || HOMETHR=95
  [ $# -eq 3 ] && MAILTO=$3  || MAILTO=root
  HOMEUSE=`df $HOMEDIR | tail -1 | sed  "s/^.* \([0-9]*\)%.*$/\1/"`
  if [ $HOMEUSE -ge $HOMETHR ]; then
      du -sk $HOMEDIR/* | sort -nr | Mail -s "$HOMEDIR usage" $MAILTO
  fi

第3引数でメールの宛先を指定します。指定しなければ root 宛にメールが届きます。


以上、ホームの使用量をチェックして、浪費しているひとがいないか確認する方法を、 さらっとご紹介しました。

よくわからんなーという貴兄は、上記でご紹介した、 コマンドライン上で試せるものを、まずは実行してみてください。

ちょっと物足りないなーという貴兄は、チェックする頻度について考えてみる、 というのはいかがでしょうか。(閾値に近いほど頻繁にチェックするとか、 一度メールしたら頻度を下げるとか、まだ考えることがありそうです。)

宿題の答え

先週の宿題は、

  view を使う場合と listen-on を使う場合の利点を、考えましょう。

でした。

view を使う場合の利点は、こんなところでしょうか。

  • ネットワークに関係なく、クライアント毎に、細かく分けられる。
    (listen-on はネットワーク・インターフェース毎。)
  • 1つの設定ファイルにまとめて記述できる。
    (listen-on はそれぞれに設定ファイルが必要。)

かたや、listen-on を使う場合の利点は、こんなところでしょうか。

  • 全く別のプロセスとして動作するため、お互いの情報が漏洩しない。
  • view の中で指定できない設定を行うことができる。
    (options でしか設定できないもの(たとえば blackhole など)や、 ログをそれぞれに分けるなど。)

…あ、あれ、意外と思いつかないものですね。
すみませんが、こんなのはどう? とかありましたら、ご連絡いただけますと幸いです。

今週の宿題

今週の宿題は、

  ホームの残りの空き容量が、指定された kB 以下のときに、ホーム以下
  の各ディレクトリの使用量をメールするスクリプトを作りましょう。

です。

今週のお題では、使用量の割合で判断していましたので、ここでは、 絶対的な空き容量で判断させてみたいと思います。

あとがき

冒頭でえらそーに申し上げましたように、 初心に回帰したつもりの内容をお送りしましたが、いかがでしたでしょうか。
ひとことでも結構ですので、感想をいただけますと、幸いです。

読者のかたには、どうみても玄人さんなひとがいらっしゃいます。
なるべくナチュラルに、ニュートラルにと思いながら、書いていたつもりでしたが、 どうも玄人さんの方々を意識し過ぎて、 ニッチなネタ(?)を追い求めて迷走していたような気がします。

そういう情報は、検索すればそれなりにありますし、逆に、 ちょっとしたスクリプトを書いて楽をする、という情報は、 あまり見当たらないように思います。 (検索にうまく引っかからないだけかもしれませんが。)

ともかく、そういったあたりが、このメルマガを書く動機だったよなぁ、 ということに、今週気づきまして、ちょい路線変更を試みようと思ったのでした。

そもそも、あまり感想などをいただくことがほとんどないのですが、 もしニッチネタのほうがいいよ、というご意見が多ければ、 またぞうきん絞り的内容に戻そうと思います。

しつこいですが、ご意見などありましたら、どしどしお寄せください。
よろしくお願いします。

 

今週も、ここまで読んでいただき、ありがとうございました。
それでは、また来週に、お会いしましょう!

 

「いますぐ実践! Linux システム管理」の解除は、以下からできます。
http://www.usupi.org/sysad/ (まぐまぐ ID:149633)

バックナンバーは、こちらにほぼ全部そろっています。
http://www.usupi.org/sysad/backno.html

「栗日記」−栗の絵を毎日描いてますが、土日はみるひとが少ないなー。
http://www.usupi.org/kuri/ (まぐまぐ ID:126454)
http://usupi.seesaa.net/ (栗日記ブログ)
http://www.fumido.co.jp/kuriniki/ (栗日記ぎゃらりー)


[バックナンバーのトップへ] [Linux システム管理のトップへ]

トップ

バックナンバー
    [日付順] [目的別]

プロフィール

▼ リンク

独学Linux
Linuxデスクトップ環境に関する情報が満載です。 メルマガもありますよ。
Server World
CentOS 5 をサーバとしたときの設定例が、これでもかというくらいたくさん載っています。 CentOS以外のディストリビューションや、Solaris10の例も充実しています。
LINUXで自宅サーバーを構築・導入(Fedora8)
Fedora8のインストールの仕方から管理方法まで、詳しく載っています。 SearchManには情報がもりだくさんです。
マロンくん.NET
〜サーバ管理者への道〜
Linuxをサーバとして使用するための、いろいろな設定方法が載っています。 マロンくんもかわいいです。 なんといっても、マロンくんという名前がいいですね!!
日本の Linux 情報
日本の、Linux 総本山的なところです。
Linux Square − @IT
@ITが提供する、Linux の情報が満載。 載っていない設定方法はないんじゃないでしょうか。
Open Tech Press
Linux に限らず、オープンソース関連の記事が網羅されています。
ITmediaエンタープライズ:Linux Tips 一覧
Tips というより FAQ 集でしょうか。わからないことがあれば覗きましょう。
IBM developerWorks : Linux
開発者向けですが、勉強になりますよ。
Yahoo!ニュース - Linux
Yahoo!のLinuxに関するニュース一覧です。
栗日記
システム管理とかと全然関係ありませんが、毎日栗の絵を描いています。
システム管理につかれちゃったとき、癒されたいときに、ご覧ください。:-)
WEB RANKING - PC関連
ランキングに参加してみました。押してやってください。

▼ 作ってみました

Add to Google

▼ せんでん





▼ 最近読んだ本

ハリー・ポッターと不死鳥の騎士団 ハリー・ポッターと不死鳥の騎士団
J.K.Rowling
  ハリポ月刊なので読み直してます
ハリー・ポッターと炎のゴブレット ハリー・ポッターと炎のゴブレット
J.K.Rowling
  ハリポ月刊なので読み直してます
ハリー・ポッターとアズカバンの囚人 ハリー・ポッターとアズカバンの囚人
J.K.Rowling
  ハリポ月刊なので読み直してます
ハリー・ポッターと秘密の部屋 ハリー・ポッターと秘密の部屋
J.K.Rowling
  ハリポ月刊なので読み直してます
ハリー・ポッターと賢者の石 ハリー・ポッターと賢者の石
J.K.Rowling
  ハリポ月刊なので読み直してます
アルケミスト アルケミスト
パウロ・コエーリョ
  また読んだ
賢者の書 賢者の書
喜多川 泰
  違った視点から見られてよかった
セキュリティウォリア セキュリティウォリア
Cyrus Peikari, Anton Chuvakin
  やや冗長…ためにはなりました
CORE MEMORY CORE MEMORY
John Alderman, Mark Richards
  この筐体でPC作ってほしい!
新訳 星の王子さま 新訳 星の王子さま
サン=テグジュベリ
倉橋 由美子
  つまらない大人になったのか…
.....

[X]
「センネン画報」 今日 マチ子
「粟津潔 デザインする言葉」 粟津潔
「Binary Hacks」 高林 哲,鵜飼 文敏,佐藤 祐介,浜地 慎一郎,首藤 一幸
「Make: Volume01」 オライリー・ジャパン
「セーラが町にやってきた」 清野 由実
「手紙屋」 喜多川 泰
「Linuxカーネル2.6解読室」 高橋 浩和,小田 逸郎,山幡 為佐久
「人蕩し術」 無能 唱元
「子育てハッピーアドバイス2」 明橋 大二, 太田 知子
「ラッセル幸福論」 B. Russell
「それでも人生にイエスと言う」 Viktor Emil Frankl
「子育てハッピーアドバイス」 明橋 大二, 太田 知子
「考具」 加藤 昌治
「北欧デザイン<3>」 渡部 千春
「北斎の謎を解く」 諏訪 春雄
「体感美術館」 平野 暁臣
「チベット永遠の書」 Theodore Illion
「リナックスの革命」 Pekka Himanen
「人月の神話」 Frederick Phillips,Jr. Brooks
「ヤバい経済学」 Steven D. Levitt, Stephen J. Dubner
「小布施ッション<2001-2002>」 セーラ・マリ カミングス
「アンパンマン伝説」 やなせ たかし
「夢をかなえるゾウ」 水野 敬也
「ゲーム開発者のためのAI入門」 David M. Bourg, Glenn Seemann
「北欧デザイン<2>」 渡部 千春
「北欧デザイン<1>」 渡部 千春
「ヒューマン2.0」 渡辺 千賀
「中国・ロシア同盟がアメリカを滅ぼす日」 北野 幸伯
「超ロング・セラー 絶滅寸前商品」 湯浅 豊彦
「The BUG(ザ・バグ)」 すずき ひろのぶ,かとう みつあき
「デザインのデザイン」 原 研哉
「マキアヴェッリ語録」 塩野 七生
「ハンバーガーを待つ3分間の値段」 斎藤 由多加
「星の旅人-スペイン「奥の細道」-」 黛 まどか
「食品の裏側」 安部 司
「On Lisp」 Paul Graham
「ぼくが医者をやめた理由 つづき」 永井 明
「あなたならどうする?」 Jack Nikolaschka
「セキュアプログラミング−失敗から学ぶ設計・実装・運用・管理」
      Mark G. Graff, Kenneth R. van Wyk
「「左利き」は天才?−利き手をめぐる脳と進化の謎
      David Wolman
「自分の中に毒を持て」 岡本 太郎
「アトピーの薬を減らす本」 田中 貴子
「岡本太郎「明日の神話」修復960日間の記録」 吉村 絵美留
「X51.ORG THE ODYSSEY」 佐藤 健寿
「アレルギーっ子の暮らし応援BOOK」 佐藤 のり子
「沖縄文化論」 岡本 太郎
「「伝説の社員」になれ!」 土井 英司
「コンピュータの構成と設計(上)」 Patterson & Hennessy
「カラスのジョンソン」 明川 哲也
「ドリルを売るには穴を売れ」 佐藤 義典
「頭がよくなる照明術」 結城 未来
「クロフォードのインタラクティブデザイン論」 Chris Crawford
「いじめの根を絶ち子どもを守るガイド」 Barbara Coloroso
「非常識のすすめ―逆発想の仏教論」 ひろさちや
「Linuxアドバンストネットワーク構築ガイド - HAサーバ構築編」
      デージーネット
「イノベーションの達人!」 Tom Kelly, Jonathan Littman
「クリエーター50人が語る創造の原点」 小原 啓渡
「欺術 - 史上最強のハッカーが明かす禁断の技法」 Kevin Mitnick
「楽しい気象観察図鑑」 武田 康男
「入門 Ajax」 高橋 登史朗
「リリカルな自画像」 岡本 太郎
「やぎの目ゴールデンベスト」 林 雄司
「初めてのPython 第2版」 Mark Lutz,David Ascher
「鼻兎」 小林 賢太郎
「なぜ、これがアートなの?」 Amelia Arenas
「芸術起業論」 村上 隆
「まほう色の瞳」 Enrique Barrios
「ラーメンズつくるひとデコ」 ラーメンズ
「R25 つきぬけた男たち」 R25編集部
「美の呪力」 岡本 太郎
「しろのあお」 上大岡 トメ
「ザ・ゴール」 Eliyahu M. Goldratt
「ハッカーと画家」 Paul Graham
「岡本太郎に乾杯」 岡本 敏子
「Fedore Core Expert」 Software Design
「誰も知らない男」 ブルース・バートン
「子どもが育つ魔法の言葉」 ドロシー・ロー・ノルト
「国家の罠」 佐藤 優
「夜回り先生」 水谷 修
「やぎの目絵日記」 林 雄司
「7つの習慣」 スティーブン・R. コヴィー
「まろ、ん?−大掴源氏物語」 小泉 吉宏
「ザ・サーチ グーグルが世界を変えた」 ジョン・バッテル
「ポストモダン・マーケティング」 スティーブン ブラウン
「機動戦士ガンダムさん」 大和田 秀樹
「小エロのひみつ - Webやぎの目研究発表」 林 雄司
「これ、誰がデザインしたの?」 渡部千春
「60分間・企業ダントツ化プロジェクト」 神田 昌典
「ガルシアへの手紙」 エルバート ハバード
「人生は素晴らしいものだ」 オグ・マンディーノ
「ザ・マインドマップ」 トニー・ブザン,バリー・ブザン
「ワインバーグのシステム思考法」 G.M.ワインバーグ
「渋谷ではたらく社長の告白」 藤田 晋
「渋井真帆の日経新聞読みこなし隊」 渋井 真帆
「コラム息切れ」 小野 法師丸
「早朝起業」 松山 真之介
「変な人が書いた驚くほどツイてる話」 斎藤 一人
「35歳から仕事で大切にしたいこと」 村井 勉
「金融広告を読め」 吉本 佳生
「発想する会社!」 トム・ケリー,ジョナサン・リットマン
「エハイク」 吉田 戦車
「人生の旋律」 神田 昌典
「仕事の思想」 田坂 広志
「CPUの創りかた」 渡波 郁
「非常識な成功法則」 神田 昌典
…これ以前は記録してません…

▼ 気に入ってる本

夢をかなえるゾウ 夢をかなえるゾウ
水野 敬也
  いままでで最高の「笑える」成功本
Linuxデバイスドライバ Linuxデバイスドライバ
Alessandro Rubini,
Jonathan Corbet
  ドライバ作らなくてもためになる
Firefoxの改造テクニック! Firefoxの改造テクニック!
大浦 淳
  いま栗日記拡張を考えてます
Apacheモジュール プログラミングガイド Apacheモジュール プログラミングガイド
小山 浩之
  Apacheの中身もわかるよ
図解 実戦マーケティング戦略 図解 実戦マーケティング戦略
佐藤 義典
  栗日記も戦略的に行こう!
やぎの目ゴールデンベスト やぎの目ゴールデンベスト
林 雄司
  よめも爆笑してました
アルケミスト アルケミスト
パウロ・コエーリョ
  ヘコみそうなとき読みます
X51.ORG THE ODYSSEY X51.ORG THE ODYSSEY
佐藤 健寿
  X51.ORGの集大成
チベット永遠の書 チベット永遠の書
Theodore Illion
  いろんな意味ですごい!!
影響力の武器 影響力の武器
ロバート・B・チャルディーニ
  思わず納得します