我正在尝试找出正在写入文件的脚本/用户/进程。 我有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
答案 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'