• ベストアンサー

Linuxで最後に書き込まれたファイルを調べる方法

CentOSで、インストールした最新のパッケージ5つを調べるのに下記コマンドで調べれることが分かりました。 rpm -qa --last | head -5 パッケージではなく、最後に書き込まれた(=最新書き込み)ファイル5つをコマンドで調べたりすることは出来ないでしょうか? apache等であれば、ログファイルの場所やpidファイルはわかるのですが、 偶にサービスの「ログファイルやpidファイル」の場所が分からないときに、 最新の書き込みファイルを検索できれば、ログファイル等の場所を調べれると考えているのです。 ご教授お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

そもそも、 >新の書き込みファイルを検索できれば、ログファイル等の場所を は、言葉は適切ではないが、本末転倒でしょう。 アプリや、サービスのログなら、それぞれのマニュアルやリソースキッドなどを見れば記載されているし、設定ファイルに記載されています。 OSが標準で書き込み先を用意してあるが、そのような場所へは、標準で付属しているデーモンやアプリなどが書き込みしていることが多い。/var の配下がUNIXからの書き込み先。 また、多くは「 .log」等の拡張子が、Linux上のアプリでもついている物だ(バイナリーだと、.dat とか別種類のフォーマットである場合が多い)。 本題です。 UNIXの時代から、 find と言うコマンドが存在します。 http://www.zontheworld.com/linux/find.html などのリファレンスサイトをみればわかるかと。実際にはコマンドラインで man で確かめてください。 -mtime 、 -mmin などのオプションを使えば達成する。もちろんGUIツールでやっても同じ結果になると思うが。 注意事項としては、ルートから検索するのは愚の骨頂だ(UNIX系なので、ルートにファイル等を作成する馬鹿はいないと思うが<=いやたまにいるんだよなあ)。そうとうパフォーマンスを落とす。 コマンドラインからだと、バックグランドで実行する事だ。 ログファイルなので、ファイルだけを検索するよう指定しよう。または表示するようにする。 他には http://search.yahoo.co.jp/search?p=%22CentOS%22+%22%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E6%A4%9C%E7%B4%A2%22&aq=-1&oq=&ei=UTF-8&fr=ie8sc&n=10&x=wrt をみれば、わかるはず 「一般にunixで利用されるファイル検索コマンド”find”は強力だが動作が遅い.」 なんて、こめんともあるが、その通りだ。ただちょっと御幣がある。動作が遅いのではなく、マシンのパフォーマンスが劣化するのだ。コマンドは、アセンブラで書かれている、高速で軽快な物だ。 しかし、インデックス等を利用しないので、すべてをスキャンしてしまう。何せ古いコマンドなもんで。20世紀の遺物と呼んでもいいかもしれない。 なので http://search.yahoo.co.jp/search?p=%22CentOS%22+%22%E3%82%A4%E3%83%B3%E3%83%87%E3%83%83%E3%82%AF%E3%82%B9%E4%BD%9C%E6%88%90%22&aq=-1&oq=&ei=UTF-8&fr=ie8sc&n=10&x=wrt なんて検索すると面白いかもしれない。Windowsだと Windows Searchです。このサービスが作るインデックスをエクスプローラーで検索すると利用される。 それを自作する事になる。 と言うことで、そんな苦労するより、マニュアル、設定ファイル見たほうがよっぽど早くたどりつくんですけどね。 まず、OSから調べた方がいいでしょう。それから、デーモン、ベンダーのアプリ等(Aparcheなど)。

ShiftTail
質問者

お礼

findコマンドですか。 教えて頂いたリンク等を参考に、挑戦してみたいと思います。 ご教授ありがとうございました。

その他の回答 (3)

  • Toshi0230
  • ベストアンサー率51% (836/1635)
回答No.4

私もアプローチ方法が違う、という意見に一票。 なんでかというと、「最新の更新ファイルが、求めているファイルであるという保証がない」ので。 ログファイルやpidファイルなどは、勝手な場所に作成されることはありません。 設定ファイルや起動時のオプションで指定された場所(指定がなければデフォルトの場所)に作成されますので、設定ファイルやマニュアルを見る方が早いです。

ShiftTail
質問者

お礼

pidファイル限定というわけではなく、例で挙げさせていただきました。 もし最新書き込みファイルが探せるのであれば、 色々と便利だと思ったのです。 情報ありがとうございました。

  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.3

#1の方のいわれるとおりfindでできますけど、findはアセンブラで書かれてるわけじゃありませんので。Cソースをコンパイルしてるものだからネイティブアプリケーションではありますけど。

ShiftTail
質問者

お礼

アプリケーションであるのですね。 探してみることにします。 情報ありがとうございました。

回答No.2

No1ですが、locateの説明を省いてしまった。 http://x68000.q-e-d.net/~68user/unix/pickup?locate をみれば、一目瞭然。まあ、目的が目的だけに、DBの更新がいつかと言う、インデックスの作成より、ややっこしかもしれない。

関連するQ&A