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

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


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

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

唐突ですが、スラッシュドットに、 日本のWebブラウザのシェアに関する記事が載っていました。

IEの独占状態が崩れつつある国内Webブラウザシェア
http://slashdot.jp/it/article.pl?sid=09/05/12/0415222

調査した会社の発表資料を見てみますと、ブラウザのシェアだけでなく、 OS や画面サイズなどのシェアの調査結果も記載されており、 いろいろと個人的に面白いと思うところがありました。

  • Windows Vista は 23.00% …思ったほど普及していない。
  • Linux は 0.36% …少ないけど、それでも前より増えている。
  • Firefox が 18% より、IE がトータルで 66% の方が驚いた。
  • XGA(1024x768) が 30.92%、SXGA(1280x1024) 44.35% で、SXGA の方が主流になった。

わたしは、ここ数年はずっと XGA サイズを使ってきましたが、 公開している壁紙は、SXGA サイズも用意した方がよいかも、と思いました。

技術者なのに、一番のツボが画面サイズだったことに、われながら驚愕をしつつも、 はりきってまいりたいと思います。

今回のお題 - inotify でディレクトリを監視してみる

前回は、dnotify を使って、ディレクトリの監視を行いました。

Vol.156 - dnotify でディレクトリを監視する
http://www.usupi.org/sysad/156.html

ファイルができたりなくなったり変更されたりすると、 即座に通知されるのは便利だなあ、というお話でした。
しかし、操作内容までは教えてもらえないため、自力で調べる必要があるというのは、 ちょっと不便でしたね。

さて、時は流れまして、Linux カーネル 2.6.13 で、 新たに inotify という監視機構が組み込まれました。
inotify は、dnotify と同様に、 ファイルやディレクトリに対して変更が行われると通知してくれる機構です。
ただ、dnotify と異なるのは、 操作されたファイルと操作内容も知らせてくれることです。

inotify を使えば、もう少し楽に、かつ詳細な監視ができそうですね。
というわけで今回は、inotify を使用して、ディレクトリの状態の変化を知る方法を、 ご紹介したいと思います。


まずは、inotify を利用するためのツールをインストールしましょう。
今回は、inotify-tools というツールを使用したいと思います。

幸い、Fedora や Ubuntu, Debian など、主要なディストリビューションには、 inotify-tools のパッケージが存在します。
su コマンドなどで root 権限を得てからか、sudo コマンド経由で、 以下のようにインストールしてください。

  # yum install inotify-tools      (RedHat 系の場合)
  # apt-get install inotify-tools  (Debian 系の場合)

残念ながら、わたしが普段使っている Vine や CentOS には、 パッケージが見当たりません。
ですので、以下からソース・アーカイブを入手し、パッケージを作成して対処しました。

inotify-tools
http://inotify-tools.sourceforge.net/

ただし、ソース・アーカイブには SPEC ファイルが含まれません。
ですので、わたしは、以下を inotify-tools.spec として使用しました。
(バージョン 3.13 用ですので、違うバージョンのパッケージを作成する場合は、 SPEC ファイルを修正するなどしてください。)

inotify-tools.spec

これらを所定の位置に置いて、rpmbuild コマンドを実行すれば、 なんの問題もなくパッケージが作成されました。

  $ mv inotify-tools-3.13.tar.gz ~/rpmbuild/SOURCES/
  $ mv inotify-tools.spec ~/rpmbuild/SPECS/
  $ rpmbuild -bb ~/rpmbuild/SPECS/inotify-tools.spec
  $ sudo rpm -i ~/rpmbuild/RPMS/i386/inotify-tools-3.13-1.i386.rpm

ただ、某レンタルサーバで使用している CentOS では、 パッケージ作成中にテストでコケてしまいました。
どうやら、テスト中にメモリが足りなくなってしまうようです。
ですので、libinotifytools/src/test.c の258行目の INNER_LIMIT の値を、 1000 くらいに減らして対処しました。
(同じ問題に遭遇するひとはほとんどいないと思いますが、念のため記載しておきます。 もし遭遇して途方に暮れた際には、ご連絡ください。)


さて、inotify-tools パッケージをインストールしますと、 inotifywait と inotifywatch というコマンドが使えるようになります。

inotifywait は、指定したファイルやディレクトリに変化があると、 その旨出力してくれるコマンドです。
inotifywatch は、指定したファイルやディレクトリに対する操作内容をまとめ、 統計結果を出力してくれるコマンドです。

今回目標とするのは、ディレクトリを監視して、 なにか操作されたらすぐ通知してもらうことです。ですので、以降では、 inotifywait コマンドを使って、目標に近付いていきたいと思います。

 

早速、inotifywait コマンドを使ってみたいと思います。

まず、/tmp/test というディレクトリを作成し、 /tmp/test を指定して inotifywait コマンドを実行してみます。

  $ mkdir /tmp/test
  $ inotifywait /tmp/test
  Setting up watches.  
  Watches established.

フォアグラウンドで実行中になりますので、別の端末から、 /tmp/test/a というファイルを作ってみましょう。

  $ touch /tmp/test/a

すると、inotifywait コマンドを実行中の端末に、以下が実行されます。

  /tmp/test/ CREATE a
  $

ただし、一発来たところで、inotifywait が終了してしまいます。
一発で終了せず、ずっと実行しつづけてほしいときには、 -m オプションをつけて実行します。

  $ inotifywait -m /tmp/test
  ...
  /tmp/test/ CREATE a
  /tmp/test/ OPEN a
  /tmp/test/ ATTRIB a
  /tmp/test/ CLOSE_WRITE,CLOSE a

ただ、デフォルトでは、すべての操作を対象とします。
すべてではなく、特定の操作だけを監視したい場合は、 -e オプションを使用します。
たとえば、ファイルの生成、削除、変更および移動の操作だけを監視するには、 以下のように実行します。

  $ inotifywait -m -e create,delete,modify,move /tmp/test

試しに、別の端末から、ファイルを削除してみましょう。

  $ rm /tmp/test/a

すると、以下だけが出力されます。

  /tmp/test/ DELETE a

また、ファイルを作成してファイル名を変更してみます。

  $ touch /tmp/test/a && mv /tmp/test/a /tmp/test/b

すると、以下のように出力されます。

  /tmp/test/ CREATE a
  /tmp/test/ MOVED_FROM a
  /tmp/test/ MOVED_TO b

ちなみに、パーミッションや時刻情報等の属性は監視していませんので、 chmod コマンドなどで変更しても、なにも出力されません。
(もしそれらを監視したい場合は、attrib を指定してください。)

  $ chmod 444 /tmp/test/b

それから、あるディレクトリ以下すべてを対象としたい場合は、 dnotify コマンドと同様、-r オプションを指定します。

  $ inotifywait -mr /tmp/test
  Setting up watches.  Beware: since -r was given, this may take \
  a while!
  Watches established.

他に、出力フォーマットを変更する、--format や -c というオプションもあります。 …が、ここでは割愛させていただきます。


inotifywait コマンドの使いかたがわかったところで、次に、 監視の自動化を試みたいと思います。

早速ですが、以下のスクリプトを作成してみました。

  #!/bin/sh
  /usr/bin/inotifywait -e create,delete,modify,move,attrib \
      -mrq /etc | while read line; do
      path=`echo $line | /usr/bin/awk '{print $1}'`
      echo $line | /usr/bin/Mail -s "[notice] $path" $USER
  done

/etc を監視し、inotifywait がなにか出力したら、 それをメールで通知するためのスクリプトです。
たとえば、これを /usr/local/sbin/inotify.sh という名前で保存して、 まずは手動で実行してみましょう。

  # chmod 700 /usr/local/sbin/inotify.sh
  # /usr/local/sbin/inotify.sh

すると、何か操作が行われると、メールが送られてきます。
…が、1つの操作ごとに、メールが送られてきてしまいます。
当初の目的は達成しているっぽいですが、メールがたくさん送られてくるのは、 あまりうれしくないように思います。


ですので、ちょっと改良を加えてみました。

  #!/bin/sh
  NOTIFYPATH=/etc
  TIMEOUT=5
  MAILTO=root
  /usr/bin/inotifywait -e modify,attrib,create,delete \
      -mrq $NOTIFYPATH | while [ 1 ]; do
      messages=""
      while read -t $TIMEOUT line; do
          messages="${messages}$line@RET@"
      done
      if [ -n "$messages" ]; then
          echo $messages | sed 's/@RET@/\n/g' | \
              /usr/bin/Mail -s "[notice] $NOTIFYPATH" $MAILTO
      fi
  done

TIMEOUT で指定した秒数(上記では 5秒)分をまとめて、 ひとつのメールで送るようにしてみました。

たとえば、以下を実行して、/etc/X11/foo を1秒だけ存在させてみます。

  # touch /etc/X11/foo; sleep 1; rm -f /etc/X11/foo

すると、以下の内容のメールが、1通だけ送られてきます。
(前のスクリプトだと、各行毎にメールが飛んできます。)

  /etc/X11/ CREATE foo
  /etc/X11/ ATTRIB foo
  /etc/X11/ DELETE foo

これなら、実用に堪えられそうです。
あとは、前回と同様、たとえば init から自動的に実行されるように設定すれば、 目標に達成できた、と言えるのではないかと思います。
(/etc/inittab に追加して、kill -HUP 1 を実行します。)


以上、inotify でディレクトリを監視する方法を、ご紹介しました。

inotify や dnotify の詳細を理解したいと思われた貴兄は、 以下などを参照してください。

http://www.linux.or.jp/JM/html/LDP_man-pages/man7/inotify.7.html
http://www.linux.or.jp/JM/html/LDP_man-pages/man2/fcntl.2.html

自分でプログラムを作成しなくても、機能の詳細を確認し、 ツールの中で何が行われているかを推測することは、大事なことだと思います。

あわよくば、スクリプトなどを自分で作成して、 inotify や dnotify を活用していただければと思います。(ぜひ、実践してください!)

宿題の答え

前回の宿題は、

  dnotify で監視していることを気づかれないよう細工してみましょう。

でした。

前回、init を使って、自動かつ繰り返し実行させましたが、ps コマンドで見ると、 dnotify で監視していることがバレバレでした。

  $ ps ax | grep dnotify
  13939 ?      Ss   0:00 /usr/bin/dnotify -CDMRBr /etc -e \
  /usr/local/sbin/dirnotify.sh {}
  ...

では、実行するもの全体をシェルスクリプトにしてしまえば、隠蔽できるでしょうか。

  #!/bin/sh
  /usr/bin/dnotify -CDMRBr /etc -e /usr/local/sbin/dirnotify.sh {}

これを、たとえば /usr/local/sbin/notify.sh という名前にして (実際はもっとわかりにくい名前すべきだと思いますが)、

  # chmod 700 /usr/local/sbin/notify.sh

/etc/inittab の、前回追加した行をコメントアウトし、あらためて以下を追加します。

  dn:235:respawn:/usr/local/sbin/notify.sh

そして、以下の手順で、init さんにお知らせします。

  # kill -HUP 1
  # kill <dnotifyのPID>

しかしながら、ps コマンドで確認すると、ばっちり出てきます。
(よく考えたら、sh から dnotify を起動してますので、当り前ですね。)

  $ ps ax | grep dnotify
  19974 ?      S    0:00 /usr/bin/dnotify -CDMRBr /etc -e \
  /usr/local/sbin/dirnotify.sh {}
  ...

 

それでは、dnotify コマンドをコピーして、違う名前にしてみましょう。
(安直なネーミングですが、先ほどと同様、目をつぶってください。)

  # cp /usr/bin/dnotify /usr/local/sbin/yfitond
  # chmod 500 /usr/local/sbin/yfitond

上記のようにコピーして、先ほどの notify.sh を以下に変更します。

  #!/bin/sh
  /usr/local/sbin/yfitond -CDMRBr /etc -e /usr/local/sbin/dirnotify.sh {}

そして、notify.sh を kill しますと…

  # kill <notify.shのPID>
  # ps ax | grep dnotify
  ...

一応見えなくなりました。
ただし、ps コマンドの出力一覧を見ますと、

  $ ps axw
  ...
  21110 ?      Ss   0:00 /bin/sh /usr/local/sbin/notify.sh
  21111 ?      S    0:00 /usr/local/sbin/yfitond -CDMRBr /etc -e \
  /usr/local/sbin/dirnotify.sh {}
  ...

…ああ、オプションの指定が、dnotify の風貌のままです。
勘のいいひとなら、瞬時に見破ってしまうと思われます。

 

しかし、うっかり宿題にしてしまった以上、これでは引き下がれません。
ここは、dnotify のソースコードを修正するという反則技を使って、 隠蔽を試みたいと思います。

で、ここからは、模範解答ほど遠い内容になっております。
すごーく参考程度に、見るだけにしていただけますと幸いです。

さて、まず、以下からパッチを得ます。(即席で作りました。)

http://www.usupi.org/sysad/157_dnotify_intiki_patch.txt

このパッチを当てますと、引数を与えても与えなくても、 上記オプションがそのまま渡されるようになります。
以下の手順で、インチキ dnotify を作成してください。

  $ cd ~/rpmbuild/BUILD/dnotify-0.18.0/src
  $ patch -p0 < ~/157_dnotify_intiki_patch.txt
  $ make

コンパイルとリンクが通ったら、/usr/local/sbin/yfitond2 という名前でコピーします。

  # cp dnotify /usr/local/sbin/yfitond2
  # chmod 500 /usr/local/sbin/yfitond2

そして、notify.sh を以下のようにします。(さっぱりしますね!)

  #!/bin/sh
  /usr/local/sbin/yfitond2

すると、あからさまなオプションが見えなくなりました。

  $ ps axw
  ...
  21425 ?      Ss   0:00 /bin/sh /usr/local/sbin/notify.sh
  21426 ?      S    0:00 /usr/local/sbin/yfitond2
  ...

これで解決なのか、という疑問を拭いされていない気もしますが、一応、 目的地にはたどり着いたということにして、終わりにしたいと思います。
(strings /proc//exe や ls -l /proc//fd などで、 バレバレかもしれませんが…。今度から、宿題はよく考えて出そうと思います。)

今回の宿題

今回の宿題は、

  実体のないファイルシステムなどを inotifywait で監視するとどうなる
  か、試してみましょう。

です。

たとえば、procfs や sysfs など、 特殊なファイルシステム上のファイルやディレクトリを監視するとどうなるのか、 試してみてください。

あとがき

日経新聞に、「時間割引率」に関する記事が、掲載されていました。

ある価値のモノを、いま受け取るのと将来受け取るのとでは、当然、 いま受け取るほうを選ぶと思いますが、 その価値が将来どのくらい下がるのかを示す率が、時間割引率だ…と思います。
(掲載されていた新聞をリサイクルに出してしまいましたので、 かすかな記憶をたよりに書いています…間違っていたらすみません。)

この率は、ひとによっても、対象や状況によっても変わります。
たとえば、時間割引率の高いひとは、とにかくいま欲しい、と考える傾向が高いため、 「せっかちなひと」だと言えます。

また、太ったひとは、将来のスリムな体型を維持することより、 目の前にあるデザートを食べたいことを選びがちなため、 「時間割引率が高い」と言えると思います。

こんなふうに、時間割引率の考え方は、いろんなことに当てはまります。

さて、この間、わが子に、目先の欲望にとらわれすぎちゃいけないよ、 ということを説くのに、時間割引率の話をしてみました。
説明がヘタなわたくしでも、いろいろな例を織りまぜることで、 それなりにはわかってもらえたようでした。

そんな中、ふと思ったことがあります。
時間割引率の考え方はもちろん重要ですが、時間割引率で説明できることを集約して、 「時間割引率」と名付けたことこそが重要なのではないか、ということです。

同じような過ちを繰り返したときに、 「欲望にとらわれてはいけない」という話をくどくど言うよりも、 「時間割引率」とだけ言ったほうが、言うほうも楽ですし、 言われるほうもそのヒトコトだけで済みます。

時間割引率の本来の使いかたとはかけ離れているかもしれませんが、わが家的には、 この使いかたで、しばらくいってみようと思います。

 

今回も、ここまで読んでいただき、誠にありがとうございました。
次回は、6月7日(日) 頃にお会いしましょう!

 

「いますぐ実践! 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://usupi.org/k/ (モバイル栗日記)


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

トップ

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

プロフィール

▼ リンク

独学Linux
Linuxデスクトップ環境に関する情報が満載です。 メルマガもありますよ。
Server World
CentOS 5 をサーバとしたときの設定例が、これでもかというくらいたくさん載っています。 CentOS以外のディストリビューションや、Solaris10の例も充実しています。
Cyberam Documents Project
Linuxに関するTipsやLinuxコマンドリファレンス、Linuxによるサーバ構築や セキュリティ情報を記載しています。 また、Oracleなどのデータベース情報もあります。 なんと言いますか、ものすごい情報量に、圧倒されます。
LINUXで自宅サーバーを構築・導入(Fedora9)
Fedora9のインストールの仕方から管理方法まで、詳しく載っています。 SearchManには情報がもりだくさんです。
マロンくん.NET
〜サーバ管理者への道〜
Linuxをサーバとして使用するための、いろいろな設定方法が載っています。 マロンくんもかわいいです。 なんといっても、マロンくんという名前がいいですね!!
Ubuntu通信
Linux(主にUbuntu)と自作PCに関する投稿型情報サイトです。 最新のディストリビューションから役立つソフト、ゲームに至るまで、 私の知らない最新のソフトなどが紹介されています。
日経Linux
今や数少なくなってしまったLinuxの雑誌。ニュースやガイドもあります。
Linux Square − @IT
@ITが提供する、Linux の情報が満載。 載っていない設定方法はないんじゃないでしょうか。
SourceForge.JP Magazine
Linux に限らず、オープンソース関連の記事が網羅されています。
ITmediaエンタープライズ:Linux Tips 一覧
Tips というより FAQ 集でしょうか。わからないことがあれば覗きましょう。
IBM developerWorks : Linux
開発者向けですが、勉強になりますよ。
Yahoo!ニュース - Linux
Yahoo!のLinuxに関するニュース一覧です。
栗日記
システム管理とかと全然関係ありませんが、毎日栗の絵を描いています。
システム管理につかれちゃったとき、癒されたいときに、ご覧ください。:-)
WEB RANKING - PC関連
ランキングに参加してみました。押してやってください。

▼ 作ってみました

Add to Google

▼ せんでん




▼ 最近読んだ本

ブタのいどころ ブタのいどころ
小泉吉宏
  考えるきっかけになりそうな
アサーティブ-「自己主張」の技術 アサーティブ-「自己主張」の技術
大串亜由美
  言わなくてもわかるはいかんですね
最後の授業 最後の授業 ぼくの命があるうちに
Randy Pausch
  なんて前向きなんだ…
共感の時代へ 共感の時代へ
Frans de Waal
  サルに負けないようにしよう
入門git 入門git
Travis Swicegood
  git 使ってみよう!(今更だけど)
実験でわかる電子工学入門 実験でわかる電子工学入門
大塚友彦, 永吉浩, 潮秀樹
  トランジスタのことがわかったかも
論語活学 論語活学
渡部昇一
  難しい論語がわかりやすかった
ソフトウェアテスト入門 ソフトウェアテスト入門
ソフトウェア・テスト編集部
  テストの大事さを再確認
何のために働くのか 何のために働くのか
北尾 吉孝
  古典を読もうと思います
教室の悪魔 教室の悪魔
山脇 由貴子
  想像以上です…まず止めねば
過去の本...

[X]
「マイクロソフトでは出会えなかった天職」 John Wood
「伝える本」 山本高史
「センネン画報その2」 今日マチ子
「おとなの小論文教室」 山田ズーニー
「民間防衛」 スイス政府
「理性の限界−不可能性・不確実性・不完全性」 高橋昌一郎
「ユダの福音書を追え」 Herbert Krosney
「ヘッテルとフエーテル」 マネー・ヘッタ・チャン
「「そ・わ・か」の法則」 小林正観
「抜擢される人の人脈力」 岡島 悦子
「喜ばれる」 小林 正観
「「体を温める」と病気は必ず治る」 石原結實
「マネジメント 務め、責任、実践」 Peter F. Drucker
「心と脳の正体に迫る」 天外伺朗, 瀬名秀明
「マネジメント革命」 天外伺朗
「すごい会議」 大橋禅太郎
「ワインバーグの文章読本」 Gerald M. Weinberg
「マルチコアCPUのための並列プログラミング」 フィックスターズ
「ほんの少しの時間…忙しいあなたのための瞑想」 Christina Rodenbeck
「21世紀に生きる君たちへ」 司馬 遼太郎
「史上最強の人生戦略マニュアル」 Phillip C.McGraw
「新エディターシップ」 外山 滋比古
「キラー・プレゼンテーション」 Mark Gottlieb
「ザ・コピーライティング」 John Caples
「北欧素顔のデザイナーに出会う旅」 鈴木緑
「プログラミングErlang」 Joe Armstrong
「統計はこうしてウソをつく」 Joel Best
「「勉強しろ」と言わずに子供を勉強させる方法」 小林公夫
「プログラミングPerl<VOLUME1>」 Larry Wall, Tom Christiansen, Jon Orwant
「粘土道 完全版」 片桐 仁
「PERL HACKS」 chromatic, Damian Conway, Curtis "Ovid" Poe
「家計3表生活防衛術」 國貞 克則
「みえないかたち」 吉岡 徳仁
「VM(OSシリーズ)」 岡崎 世雄, 全先 実
「駄美術ギャラリー」 現代美術二等兵
「レイモン・サビニャック自伝」 Raymond Savignac
「ママのためのシュタイナー教育入門」 Doris Schuerer
「あなたに平和が訪れる 禅的生活のすすめ」 Thich Nhat Hanh
「アップルを創った怪物-もうひとりの創業者、ウォズニアック自伝」
      Steve Wozniak
「出現する未来」 Peter Senge, C. Otto Scharmer, Joseph Jaworski,
      Betty Sue Flowers
「ボロボロになった覇権国家」 北野幸伯
「ザ・シークレット」 Rhonda Byrne
「実戦マーケティング思考」 佐藤 義典
「カリスマ教師の心づくり塾」 原田 隆史
「ビジュアライジング・データ - Processingによる情報視覚化手法」 Ben Fry
「道路の決着」 猪瀬直樹
「未来世療法」 Brian L. Weiss
「表情分析入門」 Paul Ekman, Wallace V. Friesen
「アイデアのつくり方」 James W. Young
「思考の整理学」 外山滋比古
「ナゲキバト」 Larry Barkdull
「21世紀の国富論」 原 丈人
「Ship It! ソフトウェアプロジェクト成功のための達人式ガイドブック」
      Jared Richardson, William Gwaltney Jr.
「マイクロトレンド」 Mark J. Penn, E. Kinney Zalesne
「即戦力の人心術」 Michael Abrashoff
「組込みソフトエンジニアを極める」 酒井由夫
「私 デザイン」 石岡瑛子
「Ex-formation RESORT」 原研哉ゼミ
「シッダールタ」 Hermann Hesse
「新宿駅最後の小さなお店ベルク」 井野朋也
「入門LDAP/OpenLDAP」 デージーネット
「エイジレス革命」 Deepak Chopra
「免疫革命」 安保徹
「悪い笛-エハイク2」 吉田戦車
「ハリー・ポッターと死の秘宝」 J.K.Rowling
「賢者の書」 喜多川 泰
「セキュリティウォリア」 Cyrus Peikari, Anton Chuvakin
「CORE MEMORY」 John Alderman, Mark Richards
「新訳 星の王子さま」 サン=テグジュベリ / 倉橋 由美子
「センネン画報」 今日 マチ子
「粟津潔 デザインする言葉」 粟津潔
「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の創りかた」 渡波 郁
「非常識な成功法則」 神田 昌典
…これ以前は記録してません…

▼ 気に入ってる本

Ship It! Ship It! ソフトウェアプロジェクト成功のための達人式ガイドブック
Jared Richardson, William Gwaltney Jr.
  組込みにも適用したい!したい!
Java並行処理プログラミング Java並行処理プログラミング
Brian Goetz, Joshua Bloch, Doug Lea
  Javaや並行処理を甘く見ていました。すごい
ビジュアライジング・データ ビジュアライジング・データ - Processingによる情報視覚化手法
Ben Fry
  Processingすごくよいです
センネン画報その2 センネン画報その2
今日マチ子
  前作もよいがもっといい!
出現する未来 出現する未来
Peter Senge, C. Otto Scharmer, Joseph Jaworski, Betty Sue Flowers
  難しいけど到達したいです
図解 実戦マーケティング戦略 図解 実戦マーケティング戦略
佐藤 義典
  栗日記も戦略的に行こう!
やぎの目ゴールデンベスト やぎの目ゴールデンベスト
林 雄司
  よめも爆笑してました
アルケミスト アルケミスト
パウロ・コエーリョ
  ヘコみそうなとき読みます
X51.ORG THE ODYSSEY X51.ORG THE ODYSSEY
佐藤 健寿
  X51.ORGの集大成
影響力の武器 影響力の武器
ロバート・B・チャルディーニ
  思わず納得します