Update Nlbench_beta.sh

This commit is contained in:
Jensfrank 2024-07-02 21:51:46 +08:00 committed by GitHub
parent 011c06d040
commit 700aeb9298
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# 定义版本 # 定义版本
VERSION="2.1.0" VERSION="2.2.0"
# 定义颜色 # 定义颜色
RED='\033[0;31m' RED='\033[0;31m'
@ -41,6 +41,15 @@ install_dependencies() {
echo -e "${GREEN}依赖项检查和安装完成。${NC}" echo -e "${GREEN}依赖项检查和安装完成。${NC}"
} }
# 获取IP地址
get_ip_address() {
ipv4_address=$(curl -s --max-time 5 ipv4.ip.sb)
[ -z "$ipv4_address" ] && ipv4_address=$(ip -4 addr show | grep -oP '(?<=inet\s)\d+(\.\d+){3}' | grep -v '127.0.0.1' | head -n1)
ipv6_address=$(curl -s --max-time 5 ipv6.ip.sb)
[ -z "$ipv6_address" ] && ipv6_address=$(ip -6 addr show | grep -oP '(?<=inet6\s)[\da-f:]+' | grep -v '^::1' | grep -v '^fe80' | head -n1)
}
# 检测VPS地理位置 # 检测VPS地理位置
detect_region() { detect_region() {
local country local country
@ -97,19 +106,6 @@ show_welcome() {
echo "" echo ""
echo -e "${RED}---------------------------------By'Jensfrank---------------------------------${NC}" echo -e "${RED}---------------------------------By'Jensfrank---------------------------------${NC}"
echo "" echo ""
echo "一键脚本将测试以下项目,可以自动全部测试,或者自定义选择测试项目:"
echo "1. Yabs"
echo "2. 融合怪"
echo "3. IP质量"
echo "4. 流媒体解锁"
echo "5. 响应测试"
echo "6. 多线程测试"
echo "7. 单线程测试"
echo "8. 回程路由"
echo ""
echo -e "${RED}按任意键进入测试选项...${NC}"
read -n 1 -s
clear
} }
# Markdown 转义函数 # Markdown 转义函数
@ -121,15 +117,14 @@ escape_markdown() {
run_yabs() { run_yabs() {
echo "执行YABS测试..." echo "执行YABS测试..."
yabs_result=$(wget -qO- yabs.sh | bash) yabs_result=$(wget -qO- yabs.sh | bash)
echo "$yabs_result" > yabs_result.txt echo "$yabs_result" | escape_markdown > yabs_result.txt
} }
# 执行融合怪测试 # 执行融合怪测试
run_fusion() { run_fusion() {
echo "执行融合怪测试..." echo "执行融合怪测试..."
fusion_result=$(curl -L https://gitlab.com/spiritysdx/za/-/raw/main/ecs.sh -o ecs.sh && chmod +x ecs.sh && bash ecs.sh) fusion_result=$(curl -L https://gitlab.com/spiritysdx/za/-/raw/main/ecs.sh -o ecs.sh && chmod +x ecs.sh && bash ecs.sh)
fusion_result=$(echo "$fusion_result" | awk '/A Bench Script/{f=1} f; /短链/{f=0}') echo "$fusion_result" | awk '/A Bench Script/{f=1} f; /短链/{f=0}' | escape_markdown > fusion_result.txt
echo "$fusion_result" > fusion_result.txt
} }
# 执行IP质量测试 # 执行IP质量测试
@ -142,9 +137,9 @@ run_ip_quality() {
local end_line=$(echo "$ip_quality_result" | grep -n '按回车键返回主菜单' | head -n 1 | cut -d ':' -f 1) local end_line=$(echo "$ip_quality_result" | grep -n '按回车键返回主菜单' | head -n 1 | cut -d ':' -f 1)
if [ -n "$start_line" ] && [ -n "$end_line" ]; then if [ -n "$start_line" ] && [ -n "$end_line" ]; then
ip_quality_result=$(tail -n +"$start_line" <<< "$ip_quality_result" | head -n $(($end_line - $start_line)) | sed -E 's/\x1b\[[0-9;]*[a-zA-Z]//g') ip_quality_result=$(tail -n +"$start_line" <<< "$ip_quality_result" | head -n $(($end_line - $start_line)) | escape_markdown)
elif [ -n "$start_line" ]; then elif [ -n "$start_line" ]; then
ip_quality_result=$(tail -n +"$start_line" <<< "$ip_quality_result" | sed -E 's/\x1b\[[0-9;]*[a-zA-Z]//g') ip_quality_result=$(tail -n +"$start_line" <<< "$ip_quality_result" | escape_markdown)
fi fi
echo "$ip_quality_result" > ip_quality_result.txt echo "$ip_quality_result" > ip_quality_result.txt
@ -155,44 +150,40 @@ run_streaming() {
echo "执行流媒体解锁测试..." echo "执行流媒体解锁测试..."
region=$(detect_region) region=$(detect_region)
streaming_result=$(bash <(curl -L -s media.ispvps.com) $region) streaming_result=$(bash <(curl -L -s media.ispvps.com) $region)
streaming_result=$(echo "$streaming_result" | awk '/项目地址/{f=1} f; /检测脚本当天运行次数/{f=0}') echo "$streaming_result" | awk '/项目地址/{f=1} f; /检测脚本当天运行次数/{f=0}' | escape_markdown > streaming_result.txt
echo "$streaming_result" > streaming_result.txt
} }
# 执行响应测试 # 执行响应测试
run_response() { run_response() {
echo "执行响应测试..." echo "执行响应测试..."
response_result=$(bash <(curl -sL https://nodebench.mereith.com/scripts/curltime.sh)) response_result=$(bash <(curl -sL https://nodebench.mereith.com/scripts/curltime.sh))
echo "$response_result" > response_result.txt echo "$response_result" | escape_markdown > response_result.txt
} }
# 执行三网测速(多线程) # 执行三网测速(多线程)
run_speedtest_multi() { run_speedtest_multi() {
echo "执行三网测速(多线程)..." echo "执行三网测速(多线程)..."
speedtest_multi_result=$(bash <(curl -sL bash.icu/speedtest) 1) speedtest_multi_result=$(bash <(curl -sL bash.icu/speedtest) 1)
speedtest_multi_result=$(echo "$speedtest_multi_result" | sed -e '1,/序号\:/d' -e '/测试进行中/d' -e '/^\s*$/d') echo "$speedtest_multi_result" | sed -e '1,/序号\:/d' -e '/测试进行中/d' -e '/^\s*$/d' | escape_markdown > speedtest_multi_result.txt
echo "$speedtest_multi_result" > speedtest_multi_result.txt
} }
# 执行三网测速(单线程) # 执行三网测速(单线程)
run_speedtest_single() { run_speedtest_single() {
echo "执行三网测速(单线程)..." echo "执行三网测速(单线程)..."
speedtest_single_result=$(bash <(curl -sL bash.icu/speedtest) 2) speedtest_single_result=$(bash <(curl -sL bash.icu/speedtest) 2)
speedtest_single_result=$(echo "$speedtest_single_result" | sed -e '1,/序号\:/d' -e '/测试进行中/d' -e '/^\s*$/d') echo "$speedtest_single_result" | sed -e '1,/序号\:/d' -e '/测试进行中/d' -e '/^\s*$/d' | escape_markdown > speedtest_single_result.txt
echo "$speedtest_single_result" > speedtest_single_result.txt
} }
# 执行回程路由测试 # 执行回程路由测试
run_traceroute() { run_traceroute() {
echo "执行回程路由测试..." echo "执行回程路由测试..."
traceroute_result=$(wget -N --no-check-certificate https://raw.githubusercontent.com/Chennhaoo/Shell_Bash/master/AutoTrace.sh && chmod +x AutoTrace.sh && bash AutoTrace.sh) traceroute_result=$(wget -N --no-check-certificate https://raw.githubusercontent.com/Chennhaoo/Shell_Bash/master/AutoTrace.sh && chmod +x AutoTrace.sh && bash AutoTrace.sh)
traceroute_result=$(echo "$traceroute_result" | sed -e '/测试项/,+9d' -e '/信息/d' -e '/^\s*$/d') echo "$traceroute_result" | sed -e '/测试项/,+9d' -e '/信息/d' -e '/^\s*$/d' | escape_markdown > traceroute_result.txt
echo "$traceroute_result" > traceroute_result.txt
} }
# 生成Markdown文件 # 生成Markdown文件
generate_markdown() { generate_markdown() {
local output_file="vps_test_results_$(date +%Y%m%d_%H%M%S).md" local output_file="nodeloc_vps_test_$(date +%Y%m%d_%H%M%S).md"
{ {
echo "# VPS 测试结果" echo "# VPS 测试结果"
echo "测试时间:$(date)" echo "测试时间:$(date)"
@ -204,50 +195,50 @@ generate_markdown() {
echo "[tabs]" echo "[tabs]"
echo "[tab=\"YABS\"]" echo "[tab=\"YABS\"]"
echo "\`\`\`" echo "\`\`\`"
cat yabs_result.txt | escape_markdown cat yabs_result.txt
echo "\`\`\`" echo "\`\`\`"
echo "[/tab]" echo "[/tab]"
echo "[tab=\"融合怪\"]" echo "[tab=\"融合怪\"]"
echo "\`\`\`" echo "\`\`\`"
cat fusion_result.txt | escape_markdown cat fusion_result.txt
echo "\`\`\`" echo "\`\`\`"
echo "[/tab]" echo "[/tab]"
echo "[tab=\"IP质量\"]" echo "[tab=\"IP质量\"]"
echo "\`\`\`" echo "\`\`\`"
echo "########################################################################" echo "########################################################################"
cat ip_quality_result.txt | escape_markdown cat ip_quality_result.txt
echo "\`\`\`" echo "\`\`\`"
echo "[/tab]" echo "[/tab]"
echo "[tab=\"流媒体\"]" echo "[tab=\"流媒体\"]"
echo "\`\`\`" echo "\`\`\`"
cat streaming_result.txt | escape_markdown cat streaming_result.txt
echo "\`\`\`" echo "\`\`\`"
echo "[/tab]" echo "[/tab]"
echo "[tab=\"响应\"]" echo "[tab=\"响应\"]"
echo "\`\`\`" echo "\`\`\`"
cat response_result.txt | escape_markdown cat response_result.txt
echo "\`\`\`" echo "\`\`\`"
echo "[/tab]" echo "[/tab]"
echo "[tab=\"多线程测速\"]" echo "[tab=\"多线程测速\"]"
echo "\`\`\`" echo "\`\`\`"
cat speedtest_multi_result.txt | escape_markdown cat speedtest_multi_result.txt
echo "\`\`\`" echo "\`\`\`"
echo "[/tab]" echo "[/tab]"
echo "[tab=\"单线程测速\"]" echo "[tab=\"单线程测速\"]"
echo "\`\`\`" echo "\`\`\`"
cat speedtest_single_result.txt | escape_markdown cat speedtest_single_result.txt
echo "\`\`\`" echo "\`\`\`"
echo "[/tab]" echo "[/tab]"
echo "[tab=\"回程路由\"]" echo "[tab=\"回程路由\"]"
echo "\`\`\`" echo "\`\`\`"
cat traceroute_result.txt | escape_markdown cat traceroute_result.txt
echo "\`\`\`" echo "\`\`\`"
echo "[/tab]" echo "[/tab]"
@ -338,13 +329,12 @@ main() {
esac esac
done done
output_file="vps_test_results_$(date +%Y%m%d_%H%M%S).md" generate_markdown
generate_markdown "$output_file"
# 清理临时文件 # 清理临时文件
rm -f yabs_result.txt fusion_result.txt ip_quality_result.txt streaming_result.txt response_result.txt speedtest_multi_result.txt speedtest_single_result.txt traceroute_result.txt rm -f yabs_result.txt fusion_result.txt ip_quality_result.txt streaming_result.txt response_result.txt speedtest_multi_result.txt speedtest_single_result.txt traceroute_result.txt
echo "测试完成!结果已保存到 $output_file" echo "测试完成!结果已保存到 nodeloc_vps_test_$(date +%Y%m%d_%H%M%S).md"
} }
# 执行主函数 # 执行主函数