“Php-worker容器源问题错误”与“Php-worker重启脚本”:页面之间的差异

来自linuxsa wiki
(页面间差异)
跳转到导航 跳转到搜索
Evan留言 | 贡献
 
Evan留言 | 贡献
 
第1行: 第1行:
 
=mq_res=
[[category:Container]]
=问题来了=
build的时候  The command '/bin/sh -c apt-get update' returned a non-zero code: 100
 
=解决=
<pre>
<pre>
#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


https://www.cnblogs.com/sunnytrudeau/p/10771607.html
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


</pre>


login 到已在跑的php-work 发现了 源不对版本  应该是 9.6才对
=基础=
root@eb8ca27cc:/etc/apt# cat sources.list
<pre>
deb http://mirrors.163.com/debian/ stretch main non-free contrib
-eq          //等于
deb http://mirrors.163.com/debian/ stretch-updates main non-free contrib
#deb http://mirrors.163.com/debian/ stretch-backports main non-free contrib
deb-src http://mirrors.163.com/debian/ stretch main non-free contrib
deb-src http://mirrors.163.com/debian/ stretch-updates main non-free contrib
deb-src http://mirrors.163.com/debian/ stretch-backports main non-free contrib
#deb http://mirrors.163.com/debian-security/ stretch/updates main non-free contrib
#deb-src http://mirrors.163.com/debian-security/ stretch/updates main non-free contrib
root@eb8ca:/etc/apt# ls


-ne          //不等于


我的解决思路办法  去掉  还有相关 update 的也要注释掉 
-gt            //大于 (greater )
cat  php-worker/Dockerfile
#
#--------------------------------------------------------------------------
# Image Setup
#--------------------------------------------------------------------------
#


FROM bluepolaris/php72:v1.1.1
-lt            //小于  (less)


# 1.0.2 增加 bcmath, calendar, exif, gettext, sockets, dba,
-ge            //大于等于
# mysqli, pcntl, pdo_mysql, shmop, sysvmsg, sysvsem, sysvshm 扩展
RUN docker-php-ext-install -j$(nproc) bcmath calendar exif gettext \
sockets dba mysqli pcntl pdo_mysql shmop sysvmsg sysvsem sysvshm


#
-le            //小于等于
#--------------------------------------------------------------------------
# Final Touch
#--------------------------------------------------------------------------
#


# Add supervisord.conf
命令的逻辑关系:
COPY supervisord.conf /etc/supervisor/supervisord.conf


在linux 中 命令执行状态:0 为真,其他为假


###########################################################################
逻辑与: &&
# superlance for monitor supervisor
第一个条件为假时,第二条件不用再判断,最终结果已经有;
###########################################################################
第一个条件为真时,第二条件必须得判断;
逻辑或: ||
逻辑非: !


COPY setuptools-0.6c11-py2.7.egg /tmp/setuptools-0.6c11-py2.7.egg
</pre>
RUN chmod +x /tmp/setuptools-0.6c11-py2.7.egg
=see also=
RUN /tmp/setuptools-0.6c11-py2.7.egg
[https://blog.csdn.net/u014087707/article/details/53976576 shell脚本监控rabbitmq队列消息数量(堵塞情况)]
 
ADD superlance-1.0.0.tar.gz /tmp/
RUN cd /tmp/superlance-1.0.0 && python setup.py install
 
COPY sendEmail /usr/local/bin/sendEmail
 
###########################################################################
# Crontab
###########################################################################
 
RUN rm -f /etc/apt/sources.list
RUN rm -f /etc/apt/sources.list.d/buster.list
COPY  sources.list /etc/apt/
RUN  apt update 
RUN  apt-get clean
RUN  apt-get install -y apt-transport-https
RUN  apt install -y cron vim
#RUN apt-get install -y vim cron
RUN ["service","cron","start"]
 
USER root
 
COPY ./crontab /etc/cron.d
 
RUN chmod -R 644 /etc/cron.d
 
 
USER root
 
ENTRYPOINT ["/usr/bin/supervisord", "-n", "-c",  "/etc/supervisor/supervisord.conf"]
 
 
RUN usermod -u 1000 www-data
#
#--------------------------------------------------------------------------
# Check PHP version
#--------------------------------------------------------------------------
#
 
RUN php -v | head -n 1 | grep -q "PHP ${PHP_VERSION}."
 
#
#--------------------------------------------------------------------------
# Final Touch
#-------------------------------------------------------------
 
我添加的源 
 
/php-worker# cat sources.list
deb http://mirrors.163.com/debian/ stretch main non-free contrib
#deb http://mirrors.163.com/debian/ stretch-updates main non-free contrib
#deb http://mirrors.163.com/debian/ stretch-backports main non-free contrib
deb-src http://mirrors.163.com/debian/ stretch main non-free contrib
#deb-src http://mirrors.163.com/debian/ stretch-updates main non-free contrib
#deb-src http://mirrors.163.com/debian/ stretch-backports main non-free contrib
#deb http://mirrors.163.com/debian-security/ stretch/updates main non-free contrib
#deb-src http://mirrors.163.com/debian-security/ stretch/updates main non-free contrib
   


</pre>
[https://blog.csdn.net/chihujiang3132/article/details/100929946 RabbitMQ通过HTTP API获取队列消息内容]
[[category:ops]]

2019年12月27日 (五) 07:21的最新版本

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获取队列消息内容