Это работает, с помощью тех же основных идей в качестве сценария:
#!/bin/ksh
fname=$1
for batchname in $(grep -i "Processing batch" $fname | cut -d "'" -f2)
do
Batch_state=`grep -c -i "Batch '$batchname' was successful" $fname`
if [[ "$Batch_state" -ge 1 ]];then
S_Time=$(grep "Processing.*$batchname" $fname | awk '{print $2}')
E_Time=$(grep -A 1 "Processing.*$batchname" $fname | tail -n 1 | awk '{print $2}')
echo -e "$batchname\t$S_Time\t$E_Time"
else
echo $batchname encountered an error
fi
done
А как насчет использования pgrep
для поиска процесса, mongod
.
$ pgrep mongod
Я не пробовал mongodb. Но из этого ответа здесь я вижу варианты ps
, как вы упомянули в своем вопросе. Кроме того, вы упомянули только статус службы mongodb
. Однако вы также можете попробовать /etc/init.d/mongod status
.
проверьте либо:
ps -edaf | grep mongo # "ps" flags may differ on your OS
, либо
/etc/init.d/mongod status
, или
service mongodb status
, чтобы узнать, запущен ли mongod.
проверьте файл журнала /var/log/mongo/mongo.log
, чтобы убедиться, что сообщалось о каких-либо проблемах