Browse Source

add getlog from syslog

rufengsuixing 5 years ago
parent
commit
88a9eacaf1
2 changed files with 28 additions and 6 deletions
  1. 9 6
      luasrc/controller/AdGuardHome.lua
  2. 19 0
      root/usr/share/AdGuardHome/getsyslog.sh

+ 9 - 6
luasrc/controller/AdGuardHome.lua

@@ -29,26 +29,29 @@ function do_update()
 	luci.http.write('')
 end
 function get_log()
-	logfile=uci:get("AdGuardHome","AdGuardHome","logfile")
+	local logfile=uci:get("AdGuardHome","AdGuardHome","logfile")
 	if (logfile==nil) then
 	luci.http.write("no log available\n")
 	return
 	elseif (logfile=="syslog") then
-	luci.http.write("please go to system log\n")
-	return
+		if not nixio.fs.access("/var/run/AdGuardHomesyslog") then
+			luci.sys.exec("(/usr/share/AdGuardHome/getsyslog.sh &); sleep 1;")
+		end
+		logfile="/tmp/AdGuardHometmp.log"
+		nixio.fs.writefile("/var/run/AdGuardHomesyslog","1")
 	end
 	luci.http.prepare_content("text/plain; charset=utf-8")
 	logpos=nixio.fs.readfile("/var/run/lucilogpos")
 	if (logpos ~= nil) then
-	fdp=tonumber(logpos)
+		fdp=tonumber(logpos)
 	else
-	fdp=0
+		fdp=0
 	end
 	f=io.open(logfile, "r+")
 	f:seek("set",fdp)
 	a=f:read(2048000)
 	if (a==nil) then
-	a=""
+		a=""
 	end
 	fdp=f:seek()
 	nixio.fs.writefile("/var/run/lucilogpos",tostring(fdp))

+ 19 - 0
root/usr/share/AdGuardHome/getsyslog.sh

@@ -0,0 +1,19 @@
+#!/bin/sh
+PATH="/usr/sbin:/usr/bin:/sbin:/bin"
+logread -e AdGuardHome > /tmp/AdGuardHometmp.log
+logread -e AdGuardHome -f >> /tmp/AdGuardHometmp.log &
+pid=$!
+echo "1">/var/run/AdGuardHomesyslog
+while true
+do
+	sleep 12
+	watchdog=$(cat /var/run/AdGuardHomesyslog)
+	if [ "$watchdog"x == "0"x ]; then
+		kill $pid
+		rm /tmp/AdGuardHometmp.log
+		rm /var/run/AdGuardHomesyslog
+		exit 0
+	else
+		echo "0">/var/run/AdGuardHomesyslog
+	fi
+done