linux - 如何计算文件在linux上执行的次数
问题描述
我有一个可执行文件,我想知道它被执行了多少次。该文件位于网络文件系统上。有没有办法通过使用 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
在网络共享的情况下,此脚本必须在共享其文件系统的计算机上运行。
推荐阅读
- c++ - 查找字符串长度的简单程序
- java-8 - 将对象列表 {string, list-of-strings} 转换为字符串流,如“main1 sub1”、“main1 sub2”、“main2 sub3”
- vue.js - 如何在不重置分页的情况下刷新 b-table 组件?
- html - 有没有办法在 Nginx 中显示 HTML 代码而不是执行它?
- mysql - 在 Laravel 6 中搜索
- java - 在paintComponent中使用for循环是否安全?
- javascript - 如何正确使用 d3.js 拖动?
- react-native - React Native 中的二维码扫描器和 Webview
- json - jq:从平面键创建 JSON 对象
- r - R while:仅改变 data.frame 中不匹配条件的组