#!/bin/sh MEMCACHED_SOCKET="127.0.0.1:11211" # FreeBSD: # # pkg which /usr/local/bin/memdump # /usr/local/bin/memdump was installed by package libmemcached-1.0.18_6 which memdump >/dev/null if [ $? -eq 0 ] ; then memdump --servers=${MEMCACHED_SOCKET} \ | grep ^greylist: \ | while read KEY ; do printf "$KEY\t" ; memcat --server=${MEMCACHED_SOCKET} "$KEY" ; done exit 0 fi # Ubuntu: # # dpkg -S /usr/bin/memcdump # libmemcached-tools: /usr/bin/memcdump which memcdump >/dev/null if [ $? -eq 0 ] ; then memcdump --servers=${MEMCACHED_SOCKET} \ | grep ^greylist: \ | while read KEY ; do printf "$KEY\t" ; memccat --server=${MEMCACHED_SOCKET} "$KEY" ; done exit 0 fi # FreeBSD: # # pkg which /usr/local/bin/memcached-tool # /usr/local/bin/memcached-tool was installed by package memcached-1.4.34_2 which memcached-tool >/dev/null if [ $? -eq 0 ] ; then memcached-tool ${MEMCACHED_SOCKET} dump 2>/dev/null | perl -p -e 's/^add (greylist:\S+).+\r?\n/$1\t/' | grep ^greylist: | dos2unix exit 0 fi if [ -f memcached-itool.php ] ; then php memcached-itool.php localhost:11211 dump | tail -n +2 | grep -v ^ITEM | perl -p -e 's/^VALUE\s+(greylist:\S+).+\r?\n/$1\t/' | grep ^greylist: exit 0 fi if [ -f memcached-itool.py ] ; then python memcached-itool.py localhost:11211 dump | tail -n +2 | grep -v ^ITEM | perl -p -e 's/^VALUE\s+(greylist:\S+).+\r?\n/$1\t/' | grep ^greylist: exit 0 fi # Ubuntu: # # which nc # /bin/nc # # ls -ld /bin/nc # lrwxrwxrwx 1 root root 20 May 3 15:48 /bin/nc -> /etc/alternatives/nc # # ls -ld /etc/alternatives/nc # lrwxrwxrwx 1 root root 15 May 3 15:48 /etc/alternatives/nc -> /bin/nc.openbsd # # dpkg -S /bin/nc.openbsd # netcat-openbsd: /bin/nc.openbsd which nc >/dev/null if [ $? -eq 0 ] ; then (echo "stats items" ; echo "quit") | nc 127.0.0.1 11211 \ | grep '^STAT items' | awk -F: '{print $2}' | sort -u \ | (while read slab_id ; do echo "stats cachedump $slab_id 1000000000" ; done ; echo "quit") | nc 127.0.0.1 11211 \ | grep ^ITEM | awk '{print $2}' | grep ^greylist: \ | (while read KEY ; do echo "get $KEY" ; done ; echo "quit") | nc 127.0.0.1 11211 \ | grep -v '^END.$' | perl -p -e 's|\r\n$|\n|;s|^VALUE (.*?) \d+ \d+\n|$1\t|' exit 0 fi