diff options
Diffstat (limited to '')
-rwxr-xr-x | knot-resolver/bin/kresd-cache-clear | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/knot-resolver/bin/kresd-cache-clear b/knot-resolver/bin/kresd-cache-clear new file mode 100755 index 0000000..5eadee0 --- /dev/null +++ b/knot-resolver/bin/kresd-cache-clear @@ -0,0 +1,38 @@ +#!/bin/sh + +set -e + +HOSTS="${*}" + +if [ -z "${HOSTS}" ] +then + echo "Usage: ${0} localhost|[HOST1 HOST2 ...]" >&2 + exit 1 +fi + +for HOST in ${HOSTS} +do + case "${HOST}" in + localhost) + NUMBER="$(systemctl | grep -c 'kresd@[0-9].service')" + + for NUMBER in $(seq 1 "${NUMBER}") + do + echo "Flushing localhost, resolver ${NUMBER}" + echo "cache.clear()" | sudo socat - UNIX-CONNECT:/run/knot-resolver/control/"${NUMBER}" + done + ;; + + *) + NUMBER="$(ssh "${HOST}" sudo systemctl | grep -c 'kresd@[0-9].service')" + + for NUMBER in $(seq 1 "${NUMBER}") + do + echo "Flushing ${HOST}, resolver ${NUMBER}" + echo "cache.clear()" | ssh "${HOST}" sudo socat - UNIX-CONNECT:/run/knot-resolver/control/"${NUMBER}" + done + ;; + esac +done + +echo |