首页 > 解决方案 > 如何计算文件在linux上执行的次数

问题描述

我有一个可执行文件,我想知道它被执行了多少次。该文件位于网络文件系统上。有没有办法通过使用 Linux 实用程序之一的脚本来做到这一点?我的限制是我想避免更改文件本身。例如,我不会添加一个带有计数器的文件,该文件将由可执行脚本更新。而且我不会让可执行脚本调用一些 API 来增加例如数据库中的计数器。

标签: linuxstat

解决方案


我不确切知道如何观察文件的执行,但你可以通过inotify观察它被打开的次数来构造一些东西:

你可以有这样的脚本:

#! /bin/bash

EXEC_CNT=0
FILE_TO_WATCH=/path/to/your/file
while inotifywait -e open "$FILE_TO_WATCH" 
do 
   ((EXEC_CNT++))
   echo "$FILE_TO_WATCH opened $EXEC_CNT times" 
   # Or to store in a file:
   # echo "$FILE_TO_WATCH opened $EXEC_CNT times" >> "$FILE_TO_WATCH.log"
done

在网络共享的情况下,此脚本必须在共享其文件系统的计算机上运行。


推荐阅读