什么脚本/用户/进程正在写入文件?

时间:2015-01-05 21:31:07

标签: linux bash scripting

我正在尝试找出正在写入文件的脚本/用户/进程。 我有4台主机安装了相同的NFS 我做了一个scipt并把它放在所有主机上但没有成功 sombody请帮忙 该脚本从5:50到6:10运行,这是我的文件写入的时间段 这是我制作的剧本:

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

check_time_to_run() {
  tempTime=$1
  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

1 个答案:

答案 0 :(得分:1)

根本不要使用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'