2021-10-01 02:17:38 +08:00
|
|
|
|
#!/bin/sh /etc/rc.common
|
|
|
|
|
|
2022-10-18 20:28:10 +08:00
|
|
|
|
#
|
2023-03-02 16:26:13 +08:00
|
|
|
|
# Copyright (C) 2020-2023 sirpdboy <herboy2008@gmail.com> https://github.com/sirpdboy/netspeedtest
|
2022-10-23 20:25:46 +08:00
|
|
|
|
|
2022-10-18 20:28:10 +08:00
|
|
|
|
# This is free software, licensed under the Apache License, Version 2.0 .
|
|
|
|
|
#
|
2021-10-01 02:17:38 +08:00
|
|
|
|
|
2022-10-18 20:28:10 +08:00
|
|
|
|
START=99
|
|
|
|
|
USE_PROCD=1
|
|
|
|
|
|
2023-01-14 20:16:49 +08:00
|
|
|
|
PROG=/usr/bin/homebox
|
2021-10-01 02:17:38 +08:00
|
|
|
|
EXTRA_COMMANDS="nstest"
|
2022-10-18 20:28:10 +08:00
|
|
|
|
|
2024-03-07 20:27:54 +08:00
|
|
|
|
TMP_T=/var/netspeedtest_nstest.tmp
|
|
|
|
|
BINSPEEDTEST='/usr/bin/speedtest'
|
|
|
|
|
LOCK=/var/lock/netspeedtest_nstest.lock
|
2022-10-18 20:28:10 +08:00
|
|
|
|
LOG=/var/log/netspeedtest.log
|
2024-03-07 20:27:54 +08:00
|
|
|
|
MAX_LOG=500
|
2021-10-01 02:17:38 +08:00
|
|
|
|
limit_log() {
|
|
|
|
|
local logf=$1
|
2024-03-07 20:27:54 +08:00
|
|
|
|
local max=$2
|
2021-10-01 02:17:38 +08:00
|
|
|
|
[ ! -f "$logf" ] && return
|
2024-03-07 20:27:54 +08:00
|
|
|
|
sc=${max:-$MAX_LOG}
|
2021-10-01 02:17:38 +08:00
|
|
|
|
local count=$(grep -c "" $logf)
|
|
|
|
|
if [ $count -gt $sc ];then
|
|
|
|
|
let count=count-$sc
|
|
|
|
|
sed -i "1,$count d" $logf
|
|
|
|
|
fi
|
|
|
|
|
}
|
|
|
|
|
|
2024-03-07 20:27:54 +08:00
|
|
|
|
init_log() {
|
|
|
|
|
local logf=$1
|
|
|
|
|
[ ! -f "$logf" ] && echo "" > $logf
|
|
|
|
|
}
|
2023-01-14 20:16:49 +08:00
|
|
|
|
|
2024-03-07 20:27:54 +08:00
|
|
|
|
echone() {
|
|
|
|
|
echo -ne $* >> $LOG
|
2021-10-01 02:17:38 +08:00
|
|
|
|
}
|
|
|
|
|
|
2024-03-07 20:27:54 +08:00
|
|
|
|
|
2021-10-01 02:17:38 +08:00
|
|
|
|
nstest() {
|
2022-10-18 20:28:10 +08:00
|
|
|
|
[ -f $LOCK ] && exit
|
2024-03-07 20:27:54 +08:00
|
|
|
|
limit_log $LOG 500
|
|
|
|
|
init_log $LOG
|
2022-10-18 20:28:10 +08:00
|
|
|
|
touch $LOCK
|
2024-03-07 20:27:54 +08:00
|
|
|
|
echo -ne "\n ——————————speedtest测速"—————————— >> $LOG
|
2022-10-18 20:28:10 +08:00
|
|
|
|
/usr/bin/speedtest --share > $TMP_T
|
|
|
|
|
echo -ne "\n 测服信息:$(cat $TMP_T | grep 'Hosted by'| cut -c10- | awk -F: '{printf $1}') 延时:$(cat $TMP_T | grep 'Hosted by' | awk -F: '{printf $2}')" >> $LOG
|
|
|
|
|
echo -ne "\n 下行速率:$(cat $TMP_T | grep 'Download:' |awk -F: '{printf $2}' )" >> $LOG
|
|
|
|
|
echo -ne " ---- 上行速率:$(cat $TMP_T | grep 'Upload:' |awk -F: '{printf $2}' )" >> $LOG
|
2024-03-07 20:27:54 +08:00
|
|
|
|
echo -ne "\n 测试结果图片链接:$(cat $TMP_T | grep 'results:' | cut -c16- ) \n" >> $LOG
|
|
|
|
|
echo -ne "\n 测试时间:`date +%Y-%m-%d" "%H:%M:%S` \n" >> $LOG
|
|
|
|
|
echo -ne " ——————————————————————————————\n" >> $LOG
|
|
|
|
|
echo -ne $(cat $TMP_T | grep 'results:' | cut -c16- )
|
2022-10-18 20:28:10 +08:00
|
|
|
|
rm -f $LOCK
|
2021-10-01 02:17:38 +08:00
|
|
|
|
}
|
|
|
|
|
|
2024-03-07 20:27:54 +08:00
|
|
|
|
tcptest(){
|
|
|
|
|
NDATA=`date +%Y-%m-%d' '%H:%M:%S`
|
|
|
|
|
echo -ne "\n $NDATA 服务器:$1 ---- 端口:$2 ---- TCP延时:$3 Ms \n" >> $LOG
|
|
|
|
|
}
|
|
|
|
|
|
2022-10-18 20:28:10 +08:00
|
|
|
|
get_config() {
|
|
|
|
|
config_get_bool enabled $1 enabled 1
|
|
|
|
|
config_get_bool logger $1 logger 1
|
2021-10-01 02:17:38 +08:00
|
|
|
|
}
|
|
|
|
|
|
2023-01-14 20:16:49 +08:00
|
|
|
|
homebox_prepare() {
|
|
|
|
|
pgrep -f homebox | xargs kill -9 >/dev/null 2>&1
|
2023-02-21 08:38:33 +08:00
|
|
|
|
killall homebox
|
|
|
|
|
killall homebox
|
2022-10-18 20:28:10 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
start_service() {
|
|
|
|
|
config_load netspeedtest
|
2024-03-07 20:27:54 +08:00
|
|
|
|
config_foreach get_config netspeedtest
|
2024-02-27 15:28:09 +08:00
|
|
|
|
[ "x$enabled" != "x1" ] && {
|
|
|
|
|
homebox_prepare
|
|
|
|
|
exit
|
|
|
|
|
}
|
2022-10-18 20:28:10 +08:00
|
|
|
|
procd_open_instance
|
2023-01-14 20:16:49 +08:00
|
|
|
|
procd_set_param command $PROG
|
2022-10-18 20:28:10 +08:00
|
|
|
|
[ "x$logger" == x1 ] && procd_set_param stderr 1
|
2023-03-02 16:26:13 +08:00
|
|
|
|
# procd_set_param respawn
|
2022-10-18 20:28:10 +08:00
|
|
|
|
procd_close_instance
|
2021-10-01 02:17:38 +08:00
|
|
|
|
}
|
2022-10-18 20:28:10 +08:00
|
|
|
|
|
|
|
|
|
service_triggers() {
|
2022-10-23 20:25:46 +08:00
|
|
|
|
procd_add_reload_trigger "netspeedtest"
|
2022-10-18 20:28:10 +08:00
|
|
|
|
}
|