small-package/luci-app-netspeedtest/root/etc/init.d/netspeedtest

83 lines
2.0 KiB
Plaintext
Raw Normal View History

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
TMP_T=/var/netspeedtest.tmp
LOCK=/var/lock/netspeedtest.lock
LOG=/var/log/netspeedtest.log
2021-10-01 02:17:38 +08:00
limit_log() {
local logf=$1
[ ! -f "$logf" ] && return
local sc=100
[ -n "$2" ] && sc=$2
local count=$(grep -c "" $logf)
if [ $count -gt $sc ];then
let count=count-$sc
sed -i "1,$count d" $logf
fi
}
init_env() {
2022-10-18 20:28:10 +08:00
[ ! -f "$LOG" ] && echo "" > $LOG
echo 1 > $TMP_T
2023-01-14 20:16:49 +08:00
2021-10-01 02:17:38 +08:00
}
nstest() {
2022-10-18 20:28:10 +08:00
[ -f $LOCK ] && exit
limit_log $LOG 200
2021-10-01 02:17:38 +08:00
init_env
2022-10-18 20:28:10 +08:00
touch $LOCK
2023-03-02 16:26:13 +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
echo -ne "\n 测试时间: " >> $LOG
echo $(date +%Y-%m-%d" "%H:%M:%S) >> $LOG
echo -ne " ————————————————————————————\n" >> $LOG
2023-02-21 08:38:33 +08:00
echo -ne $(cat $TMP_T | grep 'results:' | cut -c16- ) || echo -ne $(cat $TMP_T )
2022-10-18 20:28:10 +08:00
rm -f $LOCK
2021-10-01 02:17:38 +08:00
}
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
2023-01-14 20:16:49 +08:00
config_foreach get_config homebox
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
}