我想通过调用特定的 url 来对服务进行健康检查。感觉最简单的解决方案是使用 cron 每分钟左右进行一次检查。如果出现错误,cron 会向我发送电子邮件。
我尝试为此使用 cUrl,但我无法让它仅在出现错误时输出消息。如果我尝试将输出定向到 /dev/null,它会打印出进度报告。
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 5559 100 5559 0 0 100k 0 --:--:-- --:--:-- --:--:-- 106k
Run Code Online (Sandbox Code Playgroud)
我尝试查看 curl 选项,但我找不到任何适合您希望它对成功保持沉默但对错误发出噪音的情况的任何内容。
有没有办法让 curl 做我想做的事,或者我应该看看其他一些工具吗?
这是一个简单的问题,但我第一次不得不真正解决它:找到哪些特定文件/inode 是大多数 I/O 的目标。我希望能够获得一般系统概述,但如果我必须提供 PID 或 TID,我可以接受。
我想不用strace对弹出的程序做任何操作iotop。最好使用与iotop按文件逐项列出的工具相同的工具。我可以lsof用来查看邮递员打开了哪些文件,但它不指示哪个文件正在接收 I/O 或接收了多少。
我在其他地方看到有人建议使用它,auditd但我不想这样做,因为它会将信息放入我们的审计文件中,我们将其用于其他目的,这似乎是我应该能够研究的问题通过这种方式。
我现在遇到的具体问题是 LVM 快照填充太快。我已经解决了这个问题,但希望能够以这种方式修复它,而不是仅仅ls对所有打开的文件描述符进行分析/proc/<pid>/fd以查看哪个增长最快。
我的主目录中突然出现了三个文件,分别是“client_state.xml”、“lockfile”和“time_stats_log”。最后两个是空的。我想知道他们是怎么到那里的。这不是第一次发生,但最后一次是几周前;我删除了文件,没有任何损坏或抱怨。我一直想不起来我在报道的时候在做什么stat $filename。有什么办法可以找出他们来自哪里?
或者,有没有办法监视主目录(但不是子目录)以创建文件?
有没有办法显示进程的连接?类似的东西:
show PID
Run Code Online (Sandbox Code Playgroud)
其中show是执行此操作的命令,并且PID是进程的 ID。我想要的输出由进程的所有连接(实时)组成。例如,如果进程尝试连接到173.194.112.151,则输出为173.194.112.151。
一个更具体的 Firefox 示例:
show `pidof firefox`
Run Code Online (Sandbox Code Playgroud)
使用 Firefox,我首先访问google.com,然后访问unix.stackexchange.com,最后访问192.30.252.129。当我关闭浏览器时,输出必须是:
google.com
stackexchange.com
192.30.252.129
Run Code Online (Sandbox Code Playgroud)
(显然对于浏览器这个输出是不现实的,因为还有很多其他相关的连接,但这只是一个例子。)
我看过这个答案。
您应该考虑使用 inotifywait,例如:
Run Code Online (Sandbox Code Playgroud)inotifywait -m /path -e create -e moved_to | while read path action file; do echo "The file '$file' appeared in directory '$path' via '$action'" # do something with the file done
我的问题是,上面的脚本监视目录以创建任何类型的文件,但是如何修改inotifywait命令以仅在创建特定类型/扩展名的文件(或移动到目录中)时报告 - 例如它应该.xml创建任何文件时报告。
我试过的:
我已经运行了inotifywait --help命令,并阅读了命令行选项。它具有--exclude <pattern>和--excludei <pattern>命令来排除某些类型的文件(通过使用正则表达式),但我需要一种方法来只包括某些类型/扩展名的文件。
有什么方法可以检查内核杀死了我的哪些进程?有时我登录到我的服务器,发现应该运行一整夜的东西在 8 小时后停止了,我不确定是应用程序在做还是内核在做。
如何监控传入的HTTP端口请求80?我已经使用DynDNS和在我的本地机器上设置了网络托管Nginx。我想知道每天在我的服务器上发出多少请求。
目前我正在使用这个命令:
netstat -an | grep 80
Run Code Online (Sandbox Code Playgroud) 是否有 Unix/Linux 等效的Process Monitor,无论是 GUI 还是 CUI?
如果它有所作为,我正在研究 Ubuntu,但如果其他系统(Mac、Fedora 等其他 Linux 变体等)有等价物,那么了解其中任何一个也很有用。
Process Monitor用于监视系统调用(例如文件创建或写入),而 Process Explorer用于监视进程状态(类似于 System Monitor)。我要的是前者,不是后者。:-)
有一个目录,A其内容经常被其他人更改。
我创建了一个个人目录B,用于保存A.
目前,我只是偶尔运行rsync需要的档案从备份A到B。不过,我担心一些文件将被添加的可能性A,然后从取出A之前,我对他们在复制到机会B。
防止这种情况发生的最佳方法是什么?理想情况下,我希望每次A更改内容时都运行当前的备份脚本。
monitoring ×10
linux ×3
process ×3
files ×2
networking ×2
backup ×1
bandwidth ×1
curl ×1
debian ×1
directory ×1
filesystems ×1
inotify ×1
io ×1
ip ×1
kill ×1
logs ×1
profiling ×1
router ×1
shell ×1
shell-script ×1
software-rec ×1
web ×1