#!/bin/sh squid_host= squid_port= squid_url= squid_timeout=2 squid_update_every=5 squid_priority=60000 squid_get_stats_internal() { local host="$1" port="$2" url="$3" squidclient -h $host -p $port $url } squid_get_stats() { squid_get_stats_internal "$squid_host" "$squid_port" "$squid_url" } squid_autodetect() { local host="127.0.0.1" port url x for port in 3128 8080 do for url in "cache_object://$host:$port/counters" "/squid-internal-mgr/counters" do x=$(squid_get_stats_internal "$host" "$port" "$url" | grep client_http.requests) if [ ! -z "$x" ] then squid_host="$host" squid_port="$port" squid_url="$url" echo >&2 "squid: found squid at '$host:$port' with url '$url'" return 0 fi done done echo >&2 "squid: cannot find squid running in localhost. Please set squid_url='url' and squid_host='IP' and squid_port='PORT' in $confd/squid.conf" return 1 } squid_check() { require_cmd squidclient || return 1 require_cmd sed || return 1 require_cmd egrep || return 1 if [ -z "$squid_host" -o -z "$squid_port" -o -z "$squid_url" ] then squid_autodetect || return 1 fi # check once if the url works local x="$(squid_get_stats | grep client_http.requests)" if [ ! $? -eq 0 -o -z "$x" ] then echo >&2 "squid: cannot fetch URL '$squid_url' by connecting to $squid_host:$squid_port. Please set squid_url='url' and squid_host='host' and squid_port='port' in $confd/squid.conf" return 1 fi return 0 } squid_create() { # create the charts cat <