linux - 如何计算文件在linux上执行的次数

标签 linux stat

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

最佳答案

我不知道如何监视一个文件的执行,但是你可以用 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

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

关于linux - 如何计算文件在linux上执行的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56773883/

相关文章:

c - stat() 不适用于大文件名

c - 谁能给我最新的netlink编程样例?

ios - 如何使用 stat 实用程序而不是 subpathsOfDirectoryAtPath 来计算目录大小

c++ - 如何检查文件是否被压缩?

c++ - Windows下的_stat()到底是怎么工作的

c - 遍历目录并打印一些信息

linux - 代码从32位移植到64位

linux - NPTL 和 POSIX 线程有什么区别?

linux - 如何在表的每一列上循环 awk 命令并输出到单个输出文件?

android - shell脚本中的if []还有其他选项吗?