2012-05-09 5 views
3

どのプロセスが前にファイルを書いたかを知る方法はありますか?私は、複数のプロセスがファイルに書き込むように見えるという問題があります。私はプロセスの1つを知っていますが、誰がファイルに書き込んでいるのかはわかりません。私はlinux/ubuntuです。どのプロセスが指定されたファイルに書き込まれたかによってOSがログを取得する方法はありますか?Linux上のファイルにどのプロセスが書き込まれているかを見つける方法

+2

fuserは、ファイルに現在書き込んでいるプロセスを通知するので、私が見る限りでは役に立ちました。 – doon

+0

デフォルトではシステムにこのようなログはありません。このようなログを自分で作成する必要があります。私の提案された答えを見てください。 – Huygens

答えて

5

小さな監視プロセスを作成します。これは、現在ファイルにアクセスしているユーザーを定期的にログに記録します。

あなたはfuserを使用して小さなスクリプトを書くことができます。ここでは簡単な例である(改善する)

#!/bin/bash 

log=~/file-access.log 

while true 
do 
    fuser your_file >> $log 
    sleep 0.2s 
done 

しかし、このファイルへの書き込みプロセスが定着してそれを検出する機会を持ってするのに十分な時間がかかることをあなたは幸運にする必要があります。

+0

ありがとう、 '/ sbin/fuser'は私のためにやったよ... – Patrick

0

いいえ、事後にどのプロセスがファイルに書き込んだのかを追跡するのはデフォルトでは何もありません。

自由に複製することができれば、inotifyなどの方法でファイルの書き込みを監視できます。

関連する問題