mirror of
https://github.com/kiddin9/op-packages.git
synced 2026-11-05 18:44:03 +08:00
🌴 Sync 2026-03-05 23:51:42
This commit is contained in:
1 parent
97c049ed0a
commit
0acff03804
14253 files changed
+3893239
No files matched your search
Executable
+63
@@ -0,0 +1,63 @@
|
||||
#!/bin/sh
|
||||
#PPPoE拨号在线接口数检测及重拨脚本
|
||||
. /lib/functions.sh
|
||||
[ -f /etc/config/syncdial ] || {
|
||||
return 1
|
||||
}
|
||||
#操作配置
|
||||
#参数 $1 配置项
|
||||
ifs_opt_down() {
|
||||
local ifn=$1
|
||||
local ifprefix=${ifn:0:4}
|
||||
|
||||
[ "$ifprefix" = "vwan" ] || return
|
||||
ifdown $ifn
|
||||
}
|
||||
|
||||
ifs_opt_up() {
|
||||
local ifn=$1
|
||||
local ifprefix=${ifn:0:4}
|
||||
|
||||
[ "$ifprefix" = "vwan" ] || return
|
||||
ifup $ifn
|
||||
}
|
||||
|
||||
config_load "syncdial"
|
||||
config_get_bool dialchk config dialchk 0
|
||||
config_get dial config dialnum
|
||||
config_get dialwait config dialwait 20
|
||||
config_get enabled config enabled 0
|
||||
[ "$enabled" = "0" ] && {
|
||||
echo "syncdial disabled."
|
||||
return 0
|
||||
}
|
||||
[ "$dialchk" = "0" ] && {
|
||||
echo "dial check disabled."
|
||||
return 0
|
||||
}
|
||||
[ $(ps | grep -c "pppconnectcheck") -gt 3 ] && logger -t PPPoE-IFChecker "Another checker is running.exit." && return 1
|
||||
|
||||
PPPUPNUM=$(ifconfig | grep -c vwan)
|
||||
logger -t PPPoE-IFChecker "$PPPUPNUM interfaces are online."
|
||||
if [ ! "$PPPUPNUM" -lt $dial ]; then
|
||||
interval="$(uci get mwan3.wan.failure_interval)"
|
||||
cheng="$(uci get mwan3.wan.up)"
|
||||
[ -z "$interval" ] && interval=5
|
||||
[ -z "$cheng" ] && cheng=1
|
||||
sleep $((interval*cheng+1))
|
||||
PPPUPNUM=$(mwan3 interfaces | grep -c "is online")
|
||||
[ "$PPPUPNUM" == "0" ] && (pgrep mwan3track || (logger -t PPPoE-IFChecker "mwan3track not running" ; return 1))
|
||||
[ ! "$PPPUPNUM" -lt $dial ] && logger -t PPPoE-IFChecker "Nothing to do.Exit." && return 0
|
||||
fi
|
||||
logger -t PPPoE-IFChecker "Stop interfaces."
|
||||
ifdown wan
|
||||
config_load "network"
|
||||
config_foreach ifs_opt_down "interface"
|
||||
sleep $dialwait
|
||||
logger -t PPPoE-IFChecker "Start interfaces."
|
||||
config_foreach ifs_opt_up "interface"
|
||||
ifup wan
|
||||
logger -t PPPoE-IFChecker "Interfaces restarted."
|
||||
logger -t PPPoE-IFChecker "Another checker will be started 15s later."
|
||||
sleep 15 && pppconnectcheck &
|
||||
return 0
|
||||
Reference in new issue
Block a user