我正在寻找一个良好的方式,监测和日志挂载在一个CentOS 6.5框。由于我对Linux脚本还不熟悉,所以我不知道是否有一些已经存在并得到证明的东西可以直接插入,或者是否有一个好的方法,我应该将我的研究引导到自己的构建上。
最后,我希望运行的是对服务器上的9种挂载中的每一种进行检查,以确认它们是否正常工作。如果有问题,我想将信息记录到一个文件中,可能通过电子邮件发送信息,并检查下一个挂载。5-10分钟后我想再做一次。我知道这可能是不需要的,但如果有问题,或者向供应商表明他们所说的问题并不是问题,我们正在试图收集证据。
发布于 2018-04-04 00:17:44
此shell脚本将测试每个挂载点,如果没有挂载,则将邮件发送到root:
#!/bin/bash
while sleep 10m;
do
status=$(for mnt in /mnt/disk1 /mnt/disk2 /mnt/disk3; do mountpoint -q "$mnt" || echo "$mnt missing"; done)
[ "$status" ] && echo "$status" | mail root -s "Missing mount"
done我在这里的意图不是给出一个完整的关键解决方案,而是给你一个研究的起点。为了满足您的精确需求,您需要了解bash和shell脚本、cron作业以及Unix的其他非常有用的工具。
它是如何工作的
#!/bin/bash
这表明这是一个bash脚本。while sleep 10m; do
这将每10分钟重复循环中的命令一次。status=$(for mnt in /mnt/disk1 /mnt/disk2 /mnt/disk3; do mountpoint -q "$mnt" || echo "$mnt missing"; done)
这个循环通过挂载点/mnt/disk1、/mnt/disk2和/mnt/disk3来循环,并测试每个点是否已被挂载。如果不是,则创建消息并将其存储在shell变量status中。
您将希望用挂载点列表替换/mnt/disk1 /mnt/disk2 /mnt/disk3,不管它们是什么。
这使用了mountpoint命令,这是现代linux版本的标准命令。它是util-linux包的一部分。它可能在旧装置上不见了。[ "$status" ] && echo "$status" | mail root -s "Missing mount"
如果status包含任何消息,它们将被邮寄到主题行Missing mount根目录。
mail命令有几个不同的版本。您可能需要调整参数列表以处理系统上的版本。done
这标志着while循环的结束。备注
上面的脚本使用一个while循环,每十分钟运行一次测试。如果您熟悉cron系统,您可能希望使用它来每10分钟运行一次命令,而不是while循环。
https://stackoverflow.com/questions/49640270
复制相似问题