提交 073faf07 编写于 作者: C coolsnowwolf

luci-app-adbyby-plus: rewrite mem running mode

上级 37ba2007
...@@ -10,7 +10,7 @@ LUCI_DEPENDS:=+adbyby +wget +ipset +coreutils +coreutils-nohup +dnsmasq-full ...@@ -10,7 +10,7 @@ LUCI_DEPENDS:=+adbyby +wget +ipset +coreutils +coreutils-nohup +dnsmasq-full
LUCI_PKGARCH:=all LUCI_PKGARCH:=all
PKG_NAME:=luci-app-adbyby-plus PKG_NAME:=luci-app-adbyby-plus
PKG_VERSION:=2.0 PKG_VERSION:=2.0
PKG_RELEASE:=42 PKG_RELEASE:=43
include $(TOPDIR)/feeds/luci/luci.mk include $(TOPDIR)/feeds/luci/luci.mk
......
...@@ -4,11 +4,11 @@ local SYS = require "luci.sys" ...@@ -4,11 +4,11 @@ local SYS = require "luci.sys"
local HTTP = require "luci.http" local HTTP = require "luci.http"
local DISP = require "luci.dispatcher" local DISP = require "luci.dispatcher"
local DL = SYS.exec("head -1 /usr/share/adbyby/data/lazy.txt | awk -F' ' '{print $3,$4}'") local DL = SYS.exec("head -1 /tmp/adbyby/data/lazy.txt | awk -F' ' '{print $3,$4}'") or ""
local DV = SYS.exec("head -1 /usr/share/adbyby/data/video.txt | awk -F' ' '{print $3,$4}'") local DV = SYS.exec("head -1 /tmp/adbyby/data/video.txt | awk -F' ' '{print $3,$4}'") or ""
local NR = SYS.exec("grep -v '^!' /usr/share/adbyby/data/rules.txt | wc -l") local NR = SYS.exec("grep -v '^!' /usr/share/adbyby/data/rules.txt | wc -l")
local NU = SYS.exec("cat /usr/share/adbyby/data/user.txt | wc -l") local NU = SYS.exec("cat /usr/share/adbyby/data/user.txt | wc -l")
local UD = SYS.exec("cat /tmp/adbyby.updated 2>/dev/null") local UD = SYS.exec("cat /tmp/adbyby.updated") or " "
local ND = SYS.exec("cat /usr/share/adbyby/dnsmasq.adblock | wc -l") local ND = SYS.exec("cat /usr/share/adbyby/dnsmasq.adblock | wc -l")
m = Map("adbyby") m = Map("adbyby")
...@@ -35,21 +35,14 @@ o:value("2", translate("No filter Mode (Must set in Client Filter Mode Settings ...@@ -35,21 +35,14 @@ o:value("2", translate("No filter Mode (Must set in Client Filter Mode Settings
o.default = 1 o.default = 1
o.rmempty = false o.rmempty = false
mem = s:taboption("basic", Flag, "mem_mode")
mem.title = translate("RAM Running Mode")
mem.default = 1
mem.rmempty = false
mem.description = translate("Running Adbyby in RAM.More speed,less disk consumption")
o = s:taboption("basic", Button, "restart") o = s:taboption("basic", Button, "restart")
o.title = translate("Adbyby and Rule state") o.title = translate("Adbyby and Rule state")
o.inputtitle = translate("Restart Adbyby") o.inputtitle = translate("Restart Adbyby")
o.description = string.format("<strong>Last Update Checked:</strong> %s<br /><strong>Lazy Rule:</strong>%s <br /><strong>Video Rule:</strong>%s", UD, DL, DV) o.description = string.format("<strong>Last Update Checked:</strong> %s<br /><strong>Lazy Rule:</strong>%s <br /><strong>Video Rule:</strong>%s", UD, DL, DV)
o.inputstyle = "reload" o.inputstyle = "reload"
o.write = function() o.write = function()
SYS.call("nohup sh /usr/share/adbyby/adupdate.sh > /tmp/adupdate.log 2>&1 &") SYS.call("rm -rf /tmp/adbyby.updated && /usr/share/adbyby/admem.sh > /tmp/adupdate.log 2>&1 &")
SYS.call("sleep 4") SYS.call("sleep 5")
HTTP.redirect(DISP.build_url("admin", "services", "adbyby")) HTTP.redirect(DISP.build_url("admin", "services", "adbyby"))
end end
......
...@@ -163,26 +163,14 @@ start() ...@@ -163,26 +163,14 @@ start()
config_foreach get_config adbyby config_foreach get_config adbyby
[ $enable -eq 0 ] && exit 0 [ $enable -eq 0 ] && exit 0
add_cron add_cron
if [ $mem_mode -eq 1 ]; then [ ! -d "/tmp/adbyby/data" ] && cp -a /usr/share/adbyby /tmp/ && rm -f /tmp/adbyby.updated
echo "start mem mode" /usr/share/adbyby/admem.sh &
if mount | grep adbyby >/dev/null 2>&1; then
echo "has mount"
else
echo "mount adbyby"
[ ! -d "/tmp/adbyby" ] && mkdir -p /tmp/adbyby && cp -a $PROG_PATH/data /tmp/adbyby/
mount --bind /tmp/adbyby/data $PROG_PATH/data
fi
/usr/share/adbyby/admem.sh &
else
/usr/share/adbyby/adupdate.sh &
fi
echo "add adbyby rules"
add_rules add_rules
$PROG_PATH/adbyby &>/dev/null & /tmp/adbyby/adbyby &>/dev/null &
add_dns add_dns
iptables-save | grep ADBYBY >/dev/null || \ iptables-save | grep ADBYBY >/dev/null || \
add_rule add_rule
/etc/init.d/dnsmasq restart /etc/init.d/dnsmasq reload
} }
stop() stop()
...@@ -192,16 +180,15 @@ stop() ...@@ -192,16 +180,15 @@ stop()
del_rule del_rule
del_cron del_cron
del_dns del_dns
killall -q adbyby kill -9 $(ps | grep 'admem.sh' | grep -v grep | awk '{print $1}') >/dev/null 2>&1
if [ $mem_mode -eq 1 ]; then kill -9 $(ps | grep '/tmp/adbyby/adbyby' | grep -v grep | awk '{print $1}') >/dev/null 2>&1
echo "stop mem mode" /etc/init.d/dnsmasq reload
if mount | grep adbyby >/dev/null 2>&1; then }
echo "umount adbyby"
umount /usr/share/adbyby/data boot()
fi {
fi mkdir -p /tmp/adbyby && cp -a /usr/share/adbyby /tmp/
kill -9 $(ps | grep admem.sh | grep -v grep | awk '{print $1}') >/dev/null 2>&1 start
/etc/init.d/dnsmasq restart
} }
......
...@@ -10,5 +10,5 @@ if [ -s "/tmp/dnsmasq.adblock" ];then ...@@ -10,5 +10,5 @@ if [ -s "/tmp/dnsmasq.adblock" ];then
fi fi
fi fi
sh /usr/share/adbyby/adupdate.sh rm -rf /tmp/adbyby.updated && /etc/init.d/adbyby restart
sleep 10 && /etc/init.d/adbyby restart
...@@ -8,29 +8,39 @@ if [ ! -f "/tmp/adbyby.updated" ];then ...@@ -8,29 +8,39 @@ if [ ! -f "/tmp/adbyby.updated" ];then
wget-ssl --spider --quiet --tries=1 --timeout=3 www.baidu.com wget-ssl --spider --quiet --tries=1 --timeout=3 www.baidu.com
if [ "$?" == "0" ]; then if [ "$?" == "0" ]; then
wget_ok="1" wget_ok="1"
touch /tmp/lazy.txt && wget-ssl --no-check-certificate -t 1 -T 10 -O /tmp/lazy.txt https://adbyby.coding.net/p/xwhyc-rules/d/xwhyc-rules/git/raw/master/lazy.txt
touch /tmp/video.txt && wget-ssl --no-check-certificate -t 1 -T 10 -O /tmp/video.txt https://adbyby.coding.net/p/xwhyc-rules/d/xwhyc-rules/git/raw/master/video.txt
touch /tmp/local-md5.json && md5sum /tmp/lazy.txt /tmp/video.txt > /tmp/local-md5.json
touch /tmp/md5.json && wget-ssl --no-check-certificate -t 1 -T 10 -O /tmp/md5.json https://adbyby.coding.net/p/xwhyc-rules/d/xwhyc-rules/git/raw/master/md5.json touch /tmp/md5.json && wget-ssl --no-check-certificate -t 1 -T 10 -O /tmp/md5.json https://adbyby.coding.net/p/xwhyc-rules/d/xwhyc-rules/git/raw/master/md5.json
adm5=$(md5sum /tmp/md5.json | awk -F' ' '{print $1}')
touch /tmp/adbyby/admd5.json && bmd5=$(md5sum /tmp/adbyby/admd5.json | awk -F' ' '{print $1}')
if [ "$adm5" == "$bmd5" ];then
echo "Rules MD5 are the same!"
echo $(date "+%Y-%m-%d %H:%M:%S") > /tmp/adbyby.updated
exit 0
else
lazy_local=$(grep 'lazy' /tmp/local-md5.json | awk -F' ' '{print $1}') touch /tmp/lazy.txt && wget-ssl --no-check-certificate -t 1 -T 10 -O /tmp/lazy.txt https://adbyby.coding.net/p/xwhyc-rules/d/xwhyc-rules/git/raw/master/lazy.txt
video_local=$(grep 'video' /tmp/local-md5.json | awk -F' ' '{print $1}') touch /tmp/video.txt && wget-ssl --no-check-certificate -t 1 -T 10 -O /tmp/video.txt https://adbyby.coding.net/p/xwhyc-rules/d/xwhyc-rules/git/raw/master/video.txt
lazy_online=$(sed 's/":"/\n/g' /tmp/md5.json | sed 's/","/\n/g' | sed -n '2p')
video_online=$(sed 's/":"/\n/g' /tmp/md5.json | sed 's/","/\n/g' | sed -n '4p') touch /tmp/local-md5.json && md5sum /tmp/lazy.txt /tmp/video.txt > /tmp/local-md5.json
if [ "$lazy_online"x == "$lazy_local"x -a "$video_online"x == "$video_local"x ]; then
echo "adbyby rules MD5 OK!" lazy_local=$(grep 'lazy' /tmp/local-md5.json | awk -F' ' '{print $1}')
mv /tmp/lazy.txt /usr/share/adbyby/data/lazy.txt video_local=$(grep 'video' /tmp/local-md5.json | awk -F' ' '{print $1}')
mv /tmp/video.txt /usr/share/adbyby/data/video.txt lazy_online=$(sed 's/":"/\n/g' /tmp/md5.json | sed 's/","/\n/g' | sed -n '2p')
echo $(date +%F) > /tmp/adbyby.updated video_online=$(sed 's/":"/\n/g' /tmp/md5.json | sed 's/","/\n/g' | sed -n '4p')
logger "adbyby mem mode rules updated!"
fi if [ "$lazy_online"x == "$lazy_local"x -a "$video_online"x == "$video_local"x ]; then
echo "adbyby rules MD5 OK!"
mv /tmp/lazy.txt /tmp/adbyby/data/lazy.txt
mv /tmp/video.txt /tmp/adbyby/data/video.txt
mv /tmp/md5.json /tmp/adbyby/admd5.json
echo $(date "+%Y-%m-%d %H:%M:%S") > /tmp/adbyby.updated
fi
fi
else else
sleep 10 sleep 10
fi fi
done done
rm -f /tmp/adbyby.mem /tmp/lazy.txt /tmp/video.txt /tmp/local-md5.json /tmp/md5.json
rm -f /usr/share/adbyby/data/*.bak
sleep 10 && /etc/init.d/adbyby restart sleep 10 && /etc/init.d/adbyby restart
fi fi
#!/bin/sh /etc/rc.common #!/bin/sh /etc/rc.common
START=99 START=97
STOP=10 STOP=10
enable=$(uci get unblockmusic.@unblockmusic[0].enabled) enable=$(uci get unblockmusic.@unblockmusic[0].enabled)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册