how to find what processes have written to a file on Linux

file, linux

Solution

Create a small monitoring process which will log periodically who is currently accessing the file.

You can write a small script using fuser. Is here a quick example (to be improved)

#!/bin/bash

log=~/file-access.log

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

But you will have to be lucky that the process writing to this file takes enough time to have the chance to detect it with fuser.

Problem

Is there a way to find out which process wrote to a give file earlier. I am having a problem where multiple processes seem to be writing to a file. I know one of the processes but not sure who else is writing to the file. I am on linux/ubuntu. Is there a way a log is mantained by the OS on what processes have written to a specified file

Original source