首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >测试smartmontools的exec命令

测试smartmontools的exec命令
EN

Ask Ubuntu用户
提问于 2018-07-18 14:12:55
回答 1查看 515关注 0票数 1

有没有任何方法可以测试smartd的配置的exec命令,就像测试邮件命令一样?

详细情况:我的用例是我使用莫尼特来监视我的UbuntuServer18.04。在我的smartd.conf中,我告诉smartmontools:

代码语言:javascript
复制
/dev/sda -a -m root -M exec /usr/share/smartmontools/smartd-runner -M test
/dev/sdb -a -m root -M exec /usr/share/smartmontools/smartd-runner

/etc/smartmontools/run.d/中,我有一个名为notify-monit.sh的脚本,当调用它时,它在/etc/monit/reports中创建一个包含smartd报告的文件。然后,在/etc/monit/scripts中,我有另一个bash脚本,由monit作为程序检查调用,如果文件存在,返回1;如果文件不存在,返回0。然后monit检查退出代码并发出警告,如果是!= 0。

这个场景有点复杂,所以我想从A到Z测试它。我手动运行每个脚本,它们分别工作很好,但是在由smartd启动的真实场景中测试它们还是比较安全的。

据我从smartd页面了解到,-M test只会尝试发送一封测试邮件,我在syslog中看到它就是这样做的。只有这个。有没有办法测试整个exec链?

EN

回答 1

Ask Ubuntu用户

回答已采纳

发布于 2018-07-22 17:11:46

在深入研究之后,我可以确认-M test开关运行的是exec命令。

我认为这是有问题的,但实际上测试是正常的。整个机制,当由smartd运行时,只是没有按预期工作,而且没有报告任何错误。run-parts存在一个问题,smartd-runner使用它。在深入研究之后,我进入了线程,在那里有人为run-parts发布了一个指向 bug报告的链接,其中包含了为什么它不支持带有点号的脚本的讨论。

为了解决我的问题,将".sh“结尾从notify-monit.sh中删除就足够了。然后,测试在monit中成功地生成警报。

为解决相同问题的人员提供提示:

  • 您可以在echo中临时使用/usr/share/smartmontools/smartd-runner,然后在/var/log/syslog中检查它,以确保smartd调用了该脚本。
  • 您可以运行run-parts --list --lsbsysinit /etc/smartmontools/run.d以确保run-parts“看到”您的脚本(S)
票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1057267

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档