使用shell脚本监控服务器docker部署的服务是否正常运行:curl: (1) Protocol 'http not supported or disabled in libcurl

首先,正常运行情况下,适用下述curl指令可以正常返回结果:

curl -XPOST 'http://127.0.0.1:my_port/my_project/search' -d '{"id":100897}'

编写shell脚本如下:

search=`curl -o /dev/null -s -m 10 --connect-timeout 10 -w %{http_code} "http://my_ip_addtr:my_port/my_project/search" -d "{'id':100897}"`
if [[ "$search" == "200" ]];
then
        echo "my_project is running"
else
        cd /shell path/ && docker stack rm my_project
        sleep 20s
        cd /path/command/ && sh run.sh
        echo "my_project failed"
fi

大致逻辑就是使用curl判断接口是否可正常访问,如果返回码为200,则正常,否则则接口出现问题,需要重启。

重启步骤:先删除docker,然后进入到启动docker 服务的路径下,运行启动脚本。

在编写下面这句代码时:

search=`curl -o /dev/null -s -m 10 --connect-timeout 10 -w %{http_code} "http://my_ip_addtr:my_port/my_project/search" -d "{'id':100897}"`

先是按照最开始的测试指令格式写成了:

search=`curl -o /dev/null -s -m 10 --connect-timeout 10 -w %{http_code} "'http://my_ip_addr:my_port/my_project/search' -d '{"id":100897}'"`

提示如下错误:

curl: (1) Protocol 'http not supported or disabled in libcurl

查询该错误,发现有说是curl里面不支持单引号,需要改为双引号,然后就修改成上面的上面格式,测试通过。

监控脚本写完之后,便是把该脚本加入到crontab监控任务中了。该过程可以去查看crontab定时任务。我这个设置的是每五分钟执行一次,就是一行指令:先执行crontab -e进入监控任务配置文件位置:

*/5 * * * * cd /path/command && sh cront_check.sh >> /path/command/cront.log

前面是监控脚本路径,后面是监控日志打印位置。

完了。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值