什么 script/user/process 正在写入文件?

What script/user/process is writing to a file?

我正在尝试找出 script/user/process 正在写入文件的内容。 我有 4 台安装了相同 NFS 的主机 我做了一个 scipt 并将它放在所有主机上但没有成功 有人可以帮忙吗 脚本从 5:50 运行到 6:10 这是我的文件被写入的时间段 这是我制作的脚本:

#!/bin/sh
log=~/file-access.log

check_time_to_run() {
  tempTime=
  if [ $tempTime -gt 555 -a $tempTime -lt 610 ]; then 
    #Intre intervalul 5:55 si 6:10
    lsof /cdpool/Xprint/Liste_Drucker >> $log
  else
    #In afara intervalului
    exit 1
  fi
}

while true; do
  currTime=`date +%k%M`
  check_time_to_run $currTime
  sleep 0.1s
done

根本不要为此使用 shell 脚本。相反,安装 sysdig 和 运行:

sysdig 'fd.filename=/cdpool/Xprint/Liste_Drucker'

...保持打开状态,无论何时向该文件写入或读取任何内容,都会打印一条适当的日志消息。


如果要将打印作业的用户名和进程名称(带参数)打印到文件中,可以使用以下格式字符串:

sysdig \
  -p '%user.name %proc.name - %evt.dir %evt.type %evt.args' \
  'fd.filename=/cdpool/Xprint/Liste_Drucker'