标签: monitoring

删除并重新创建文件夹时,inotifywait 不起作用

我正在尝试使用 inotifywait 来监视文件夹:

inotifywait -m -r /home/oshiro/Desktop/work_folder
Run Code Online (Sandbox Code Playgroud)

该命令有效,如果我在该文件夹中创建文件,一切似乎都能正常工作。

当文件夹被监控时,如果我删除它,我会得到以下输出:

/home/oshiro/Desktop/work_folder/ MOVE_SELF 
/home/oshiro/Desktop/work_folder/ OPEN,ISDIR 
/home/oshiro/Desktop/work_folder/ CLOSE_NOWRITE,CLOSE,ISDIR 
/home/oshiro/Desktop/work_folder/ MOVE_SELF 
/home/oshiro/Desktop/work_folder/ ATTRIB,ISDIR 
/home/oshiro/Desktop/work_folder/ OPEN,ISDIR 
/home/oshiro/Desktop/work_folder/ DELETE Untitled Document
/home/oshiro/Desktop/work_folder/ DELETE Untitled Document 2
/home/oshiro/Desktop/work_folder/ CLOSE_NOWRITE,CLOSE,ISDIR 
/home/oshiro/Desktop/work_folder/ DELETE_SELF 
Run Code Online (Sandbox Code Playgroud)

如果我然后再次重新创建该文件夹,而监视仍在进行,那么 inotifywait 似乎不会继续监视它,除非我inotifywait -m -r /home/oshiro/Desktop/work_folder再次运行。

我该如何解决这个问题?我基本上想监控一个 USB 记忆棒,该记忆棒将在一天内多次插入和移除。当它被拔掉并重新插入时,我认为 inotifywait 将停止监视它,就像上面的文件夹被删除并重新创建一样,inotifywait 无法继续监视它,除非我再次运行上面的命令,即inotifywait -m -r /home/oshiro/Desktop/work_folder

我应该使用更适合此类任务的东西而不是使用 inotifywait 吗?cron 不适合我的需求,因为我不是基于时间的操作,而是基于事件的操作。

linux monitoring directory mount inotify

2
推荐指数
1
解决办法
3124
查看次数

如何获取 CPU 百分比作为计数器?

我想将 CPU 总利用率作为计数器进行监控。我希望它作为计数器的原因是样本之间的数据不会丢失(并且我可以让绘图端计算速率)。

我最初的方法是使用/proc/uptime公式(uptime-(idle_time/num_core))*100。这通常在大量服务器上似乎是准确的(大约 98% 的时间),但有时我似乎得到了错误的结果。例如,以下内容似乎表明存在负 CPU 使用率,这实际上没有意义:

[root@ny-lb05 ~]# echo -e "scale=10\n ($(cut -f1 -d' ' /proc/uptime)-($(cut -f2 -d' ' /proc/uptime)/16))*100" | bc
5646895.3750000000
[root@ny-lb05 ~]# echo -e "scale=10\n ($(cut -f1 -d' ' /proc/uptime)-($(cut -f2 -d' ' /proc/uptime)/16))*100" | bc
5646891.5625000000
Run Code Online (Sandbox Code Playgroud)

在此服务器上我正在运行:

Linux ny-lb05.ds.stackexchange.com 2.6.32-431.11.2.el6.x86_64 #1 SMP Tue Mar 25 19:59:55 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

有人发现这种计算方法有错误吗?有没有更好的方法来获取 CPU 利用率作为计数器?

更新:
所以我追求的是作为单调递增计数器的总使用时间。我预计总利用率永远不会减少。但以下情况似乎就是这种情况: [root@ny-lb05 ~]# read uptime idle </proc/uptime; echo -e "scale=1000\n ($uptime*16-($idle))" | …

linux cpu monitoring

2
推荐指数
1
解决办法
2769
查看次数

程序运行时记录

我正在运行一台“信息亭”计算机——一个供房间内任何人通用的计算机——我想知道是否有人真的在使用它。是否有日志告诉我 Firefox、Chrome 或其他程序何时运行?

我不是要求他们在程序中做什么的日志,只是他们是否被使用。

欢迎任何其他想法。

logs monitoring kiosk cpu-usage

2
推荐指数
1
解决办法
123
查看次数

有没有一种简单的方法可以查看程序运行后的最高资源使用率(CPU、内存甚至带宽)?

我知道我可以top用来查看整体实时 CPU 和内存使用情况,
以及nload整体实时带宽使用情况。

但我希望查看程序运行后的最大(或平均)CPU、内存和带宽使用情况。
就像time my_command在程序时间花费估算中所做的一样。

在 Linux/Unix 中是否有一种简单的方法可以做到这一点?

cpu memory monitoring bandwidth

2
推荐指数
1
解决办法
116
查看次数

如何监控文件是否被创建?

例如,我需要监视文件/tmp/somefile123是否是在某些事件之后创建的。我尝试使用inotifywait但这里有一个问题:

# inotifywait -q -e create /tmp/somefile?*
Couldn't watch /tmp/somefile?*: No such file or directory
Run Code Online (Sandbox Code Playgroud)

因为完全没有这样的文件,我想知道它是否会在那里!

我该如何解决这个问题?

UPD:也许如果我解释一下我想要达到的目标会更清楚。

我需要以最少的 CPU 消耗编写 shell 脚本 (sh),如下所示:

if [ $(inotifywait -e create $SPECIFIC_FILE) ]; then
    blah-blah-blah some actions
fi
# And then similarly monitor if this file was deleted and then do another actions
Run Code Online (Sandbox Code Playgroud)

我希望脚本会在inotifywait -e create $SPECIFIC_FILE上停止执行,直到这个 $SPECIFIC_FILE 不会被创建,然后会更好

while [ ! -f $SPECIFIC_FILE ]; do
    blah-blah-blah some actions
    sleep 1
done
Run Code Online (Sandbox Code Playgroud)

monitoring files inotify

2
推荐指数
1
解决办法
1288
查看次数

有没有办法找出 UNIX 网络服务器上的客户端正在访问哪些网页?

我的网络服务器运行 CentOS,每次访问我的论坛上的某个页面时,都会httpd锁定,我似乎永远无法查明确切的文件。

有没有办法查看当前在基于 CentOS/UNIX 的服务器上打开请求的页面?

monitoring centos apache-httpd

1
推荐指数
2
解决办法
692
查看次数

文件监控以预防黑客

我们有一个黑客偶尔会尝试入侵一个网站,但到目前为止没有成功,但我想要一种方法来确定该网站是否已被入侵(即,文件被编辑)。攻击类型是 LFI 并试图在某些源文件中注入 iFrame。如果某些文件或目录被修改,我可以在我的 Debian 服务器上安装什么以通过电子邮件提醒我?

linux filesystems security monitoring debian

1
推荐指数
1
解决办法
164
查看次数

测试脚本/程序/应用程序以检查我的网站是否上线

我刚刚在 CentOS 中使用 Apache 部署了我的网络服务器,我想知道是否有人对如何检查服务器出现故障的每个指定时间有什么好主意,然后我可以在发生这种情况时使用 postfix 给我发电子邮件,这样我就可以回去了立即到我的服务器并解决问题,看看是什么导致了问题。我猜很多网站会使用一些软件/脚本来让他们在客户开始抱怨问题之前知道他们的服务何时出现故障。

monitoring centos webserver

1
推荐指数
1
解决办法
319
查看次数

最近五分钟上传了多少?

我不需要以太网的某种实时视觉状态 - 我想在最后五分钟上传少于 X 时运行我的脚本。所以我只需要从某个命令中获取一个数字。你能推荐什么?

我使用 Ubuntu 14.04。

linux networking monitoring ethernet

1
推荐指数
1
解决办法
60
查看次数

进程终止时自动重新启动进程?

我有一个在树莓派上运行的进程。在 ssh 进入进程后,像这样启动:

nohup .../blah/blah &
Run Code Online (Sandbox Code Playgroud)

IIUC 这允许我注销 pi 并且进程继续运行。但是它有时会死掉,我必须登录并手动重新启动它。有没有办法监控它并让它自己重新启动?

process monitoring nohup background-process raspberry-pi

1
推荐指数
1
解决办法
2306
查看次数