【官方教程】API对接商品使用宝塔任务一键监控
视多官方 1月前

本功能需要使用V7.1.7及以上版本

 

一、登录宝塔,点击计划任务-添加任务,任务类型选择:shell脚本,任务名称随意写,执行周期选择:每月,执行用户:root

二、脚本内容输入下面的内容:

#!/bin/bash

API_ENDPOINT="这里填写你的外部监控地址"

INTERVAL_SECONDS=5
while true; do
  echo "Fetching URLs from API: $API_ENDPOINT with additional parameter type =1"
  response=$(curl -s "${API_ENDPOINT}&type=1")
  urls=$(echo "$response" | grep -oP '(?<="urls":\[)[^\]]*' | tr -d '"' | tr ',' '\n')

  if [ -z "$urls" ]; then
    echo "Failed to fetch URLs or empty response."
    exit 1
  fi

  url_count=$(echo "$urls" | wc -l)
  echo "Fetched $url_count URLs."
  sleep $INTERVAL_SECONDS

  for url in $urls; do
    clean_url=$(echo "$url" | sed 's/\\//g')
    echo "Accessing $clean_url"
    content=$(curl -s "$clean_url")
    code=$(echo "$content" | grep -oP '(?<="code":)\s*[0-9]+')
    msg=$(echo "$content" | grep -oP '(?<="msg":")[^"]*')
    time=$(echo "$content" | grep -oP '(?<="time":")[^"]*')
    gid=$(echo "$content" | grep -oP '(?<="gid":")[^"]*')
    echo "$code|$msg|$time|$gid"
    sleep $INTERVAL_SECONDS
  done

  echo "===================="
done

三、将上面的shell脚本代码中的第二行替换成你的外部监控地址(注意不要删掉前后的双引号),如下图所示:

四、保存任务,然后点击执行即可,系统会一个一个去监控,间隔时间5秒,如需修改监控频率,请修改INTERVAL_SECONDS后面的数字,建议默认为5秒即可

 

 

常见问题

问:原理是什么?

答:系统会自动获取你后台的所有监控的URL,比如获取到有20个,获取到后系统会每隔5秒监控这些url,20个需要耗时100秒(按照默认频率5秒计算),20个全部监控完成后,系统会再次重新获取你后台的所有url,然后再去监控,依次类推,无限循环

 

问:如果我后台新增了对接商品,要不要重新弄?

答:不需要,新弄的也会生效,但是可能有延迟,具体可以看上面的问题,有介绍原理

 

问:会不会占用服务器性能

答:几乎不占用,但是取决于你的商品数量,监控的商品数量越多,占用内存也会多一些,正常来说影响不大

最新回复 (0)
返回
视多官方