本功能需要使用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,然后再去监控,依次类推,无限循环
问:如果我后台新增了对接商品,要不要重新弄?
答:不需要,新弄的也会生效,但是可能有延迟,具体可以看上面的问题,有介绍原理
问:会不会占用服务器性能
答:几乎不占用,但是取决于你的商品数量,监控的商品数量越多,占用内存也会多一些,正常来说影响不大