mq_res
#score-addScore-high 队列大于 500 重启phpwork
# php work and mq 机器不在同一台上
#有可能的话 另外两个mq 机器也要check 一下
[root@mq01 sh]# cat mq_res.sh
#!/bin/bash
#Author: linuxsa.org
docker ps | grep rabbitmqCluster01
#if [ $? -eq 0 ]
if [ $? -ne 0 ]
then
echo "No rabbitmq was found ,exit now"
exit 1
fi
qu=` docker exec -i rabbitmqCluster01 rabbitmqadmin --username=admin --password=886 list queues | grep score-addScore-high |awk '{print $4}'`
#if [ $qu -eq 0 ]
if [ $qu -gt 50 ]
#if [ $qu -gt 500 ]
#if $qu gt 500
then
echo " qu is 500,and then restart the score-high"
echo "*****"
function restartmq
{
salt 'prod-sns-es' cmd.run 'docker ps | grep php-worker'
if [ $? -ne 0 ]
then
echo "No phpworker was found ,exit now"
exit 1
fi
salt 'prod-sns-es' cmd.run 'docker exec -i docker-for-services_php-worker_1 supervisorctl restart production1.rabbitmq.recovery.addScoreHigh:production1.rabbitmq.recovery.addScoreHigh_00'
salt 'prod-sns-es' cmd.run 'docker exec -i docker-for-services_php-worker_1 supervisorctl restart production1.rabbitmq.recovery.addScoreHigh:production1.rabbitmq.recovery.addScoreHigh_01'
salt 'prod-sns-es' cmd.run 'docker exec -i docker-for-services_php-worker_1 supervisorctl restart production1.rabbitmq.recovery.addScoreHigh:production1.rabbitmq.recovery.addScoreHigh_02'
salt 'prod-sns-es' cmd.run 'docker exec -i docker-for-services_php-worker_1 supervisorctl restart production1.rabbitmq.recovery.addScoreHigh:production1.rabbitmq.recovery.addScoreHigh_03'
echo "mq has restart "
DATE_TIME=`date +"%Y-%m-%d %H:%M.%S"`
echo "${DATE_TIME}" >>/data/logs/timelist
}
restartmq;
fi
基础
-eq //等于
-ne //不等于
-gt //大于 (greater )
-lt //小于 (less)
-ge //大于等于
-le //小于等于
命令的逻辑关系:
在linux 中 命令执行状态:0 为真,其他为假
逻辑与: &&
第一个条件为假时,第二条件不用再判断,最终结果已经有;
第一个条件为真时,第二条件必须得判断;
逻辑或: ||
逻辑非: !
see also
shell脚本监控rabbitmq队列消息数量(堵塞情况)
RabbitMQ通过HTTP API获取队列消息内容