Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/pi-hole/pi-hole.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'advanced/Scripts/chronometer.sh')
-rwxr-xr-xadvanced/Scripts/chronometer.sh80
1 files changed, 20 insertions, 60 deletions
diff --git a/advanced/Scripts/chronometer.sh b/advanced/Scripts/chronometer.sh
index a28bb868..93b0cbb1 100755
--- a/advanced/Scripts/chronometer.sh
+++ b/advanced/Scripts/chronometer.sh
@@ -17,56 +17,21 @@ gravity="/etc/pihole/gravity.list"
. /etc/pihole/setupVars.conf
-CalcBlockedDomains() {
- if [ -e "${gravity}" ]; then
- # if BOTH IPV4 and IPV6 are in use, then we need to divide total domains by 2.
- if [[ -n "${IPV4_ADDRESS}" && -n "${IPV6_ADDRESS}" ]]; then
- blockedDomainsTotal=$(wc -l /etc/pihole/gravity.list | awk '{print $1/2}')
- else
- # only one is set.
- blockedDomainsTotal=$(wc -l /etc/pihole/gravity.list | awk '{print $1}')
- fi
- else
- blockedDomainsTotal="Err."
- fi
-}
-
-CalcQueriesToday() {
- if [ -e "${piLog}" ]; then
- queriesToday=$(awk '/query\[/ {print $6}' < "${piLog}" | wc -l)
- else
- queriesToday="Err."
- fi
-}
-
-CalcblockedToday() {
- if [ -e "${piLog}" ] && [ -e "${gravity}" ];then
- blockedToday=$(awk '/\/etc\/pihole\/gravity.list/ && !/address/ {print $6}' < "${piLog}" | wc -l)
- else
- blockedToday="Err."
- fi
-}
-
-CalcPercentBlockedToday() {
- if [ "${queriesToday}" != "Err." ] && [ "${blockedToday}" != "Err." ]; then
- if [ "${queriesToday}" != 0 ]; then #Fixes divide by zero error :)
- #scale 2 rounds the number down, so we'll do scale 4 and then trim the last 2 zeros
- percentBlockedToday=$(echo "scale=4; ${blockedToday}/${queriesToday}*100" | bc)
- percentBlockedToday=$(sed 's/.\{2\}$//' <<< "${percentBlockedToday}")
- else
- percentBlockedToday=0
- fi
- fi
+# Borrowed/modified from https://gist.github.com/cjus/1047794
+function GetJSONValue {
+ retVal=$(echo $1 | sed 's/\\\\\//\//g' | \
+ sed 's/[{}]//g' | \
+ awk -v k="text" '{n=split($0,a,","); for (i=1; i<=n; i++) print a[i]}' | \
+ sed 's/\"\:\"/\|/g' | \
+ sed 's/[\,]/ /g' | \
+ sed 's/\"//g' | \
+ grep -w $2)
+ echo ${retVal##*|}
}
outputJSON() {
- CalcQueriesToday
- CalcblockedToday
- CalcPercentBlockedToday
-
- CalcBlockedDomains
-
- printf '{"domains_being_blocked":"%s","dns_queries_today":"%s","ads_blocked_today":"%s","ads_percentage_today":"%s"}\n' "$blockedDomainsTotal" "$queriesToday" "$blockedToday" "$percentBlockedToday"
+ json=$(curl -s -X GET http://127.0.0.1/admin/api.php?summaryRaw)
+ echo ${json}
}
normalChrono() {
@@ -87,22 +52,17 @@ normalChrono() {
# Uncomment to continually read the log file and display the current domain being blocked
#tail -f /var/log/pihole.log | awk '/\/etc\/pihole\/gravity.list/ {if ($7 != "address" && $7 != "name" && $7 != "/etc/pihole/gravity.list") print $7; else;}'
- #uncomment next 4 lines to use original query count calculation
- #today=$(date "+%b %e")
- #todaysQueryCount=$(cat /var/log/pihole.log | grep "$today" | awk '/query/ {print $7}' | wc -l)
- #todaysQueryCountV4=$(cat /var/log/pihole.log | grep "$today" | awk '/query/ && /\[A\]/ {print $7}' | wc -l)
- #todaysQueryCountV6=$(cat /var/log/pihole.log | grep "$today" | awk '/query/ && /\[AAAA\]/ {print $7}' | wc -l)
-
+ json=$(curl -s -X GET http://127.0.0.1/admin/api.php?summaryRaw)
- CalcQueriesToday
- CalcblockedToday
- CalcPercentBlockedToday
+ domains=$(printf "%'.f" $(GetJSONValue ${json} "domains_being_blocked")) #add commas in
+ queries=$(printf "%'.f" $(GetJSONValue ${json} "dns_queries_today"))
+ blocked=$(printf "%'.f" $(GetJSONValue ${json} "ads_blocked_today"))
+ LC_NUMERIC=C percentage=$(printf "%0.2f\n" $(GetJSONValue ${json} "ads_percentage_today")) #2 decimal places
- CalcBlockedDomains
+ echo "Blocking: ${domains}"
+ echo "Queries: ${queries}"
- echo "Blocking: ${blockedDomainsTotal}"
- echo "Queries: ${queriesToday}" #same total calculation as dashboard
- echo "Pi-holed: ${blockedToday} (${percentBlockedToday}%)"
+ echo "Pi-holed: ${blocked} (${percentage}%)"
sleep 5
done