gpt4 book ai didi

mongodb - 如何检查 MongoDB 是否正在从 shell 脚本运行?

转载 作者:行者123 更新时间:2023-12-04 16:16:27 24 4
gpt4 key购买 nike

这是我用来检查 MongoDB 状态的 shell 脚本。 checkmongo.sh 每两分钟执行一次 cron 作业。

#!/bin/bash

echo "shell script called"
if pgrep mongo > /dev/null
then
echo "MongoDB Running"
else
echo "Stopped .. starting MongoDB"
sudo service mongodb start
fi

Cron 作业如下:

*/2 * * * * /etc/init.d/checkmongo.sh> /etc/init.d/cronjob.log 2>&1

无论 MongoDb 是否正在运行,cronjob.log 的内容始终为“MongoDB Running”。我究竟做错了什么 ?请帮忙。谢谢

最佳答案

维奈,

一些事情:

1 -- 您是要检查 MongoDB 是否正在运行还是要检查它是否正在响应查询?

您当前的设计只会告诉您是否有名称中包含单词“mongo”的进程正在运行。我会设计一个“金丝雀查询”,您可以使用 mongo shell 运行它并使用结果来确定 MongoDB 是否正在运行。因此,在极少数情况下,MongoDB 守护程序可能正在运行但没有响应,您可能会收到警报。

2 -- 您的进程正在检查单词“mongo”,mongoDB 数据库的可执行文件是“mongod”。

您的脚本名为“checkmongo”。每次脚本运行时,都会运行一个“checkmongo”进程,并且 if 条件将始终为真。该脚本正在检测自身而不是 mongod 进程。

将搜索条件更改为mongod

if pgrep mongod > /dev/null

关于mongodb - 如何检查 MongoDB 是否正在从 shell 脚本运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36263335/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com