J'utilise un serveur Web Debian Squeeze. J'ai installé memcached sur celui-ci et je l'ai configuré pour écouter sur un socket de domaine Unix (at /tmp/memcached.sock
), car il n'a besoin que de recevoir des messages du site Web, qui réside sur le même serveur.
Cela semble bien fonctionner, mais j'aimerais également communiquer avec memcached via le shell pour vérifier que tout se passe comme prévu.
memcached accepte les messages via un simple protocole ASCII (si je comprends bien). S'il écoutait sur TCP / IP, je pourrais lui envoyer des messages via, par exemple nc
:
$ echo "stats settings" | nc localhost 11211
Mais je ne peux pas comprendre comment envoyer ce texte à la place.
Sur mon ordinateur portable (qui exécute OS X Lion), les deux nc
et telnet
ont des options ( -U
et -u
respectivement) pour utiliser les sockets de domaine. Cependant, sur mon serveur Web Debian Squeeze, ces options ne sont pas présentes.
/var/run/socket
? Existe-t-il un moyen de réutiliser un fichier existant?-l
), le fichier sera créé. Sinon, il attend que le socket existe déjà (et qu'il y ait déjà quelque chose à l'écoute). Ainsi, l'exemple de commande dans la réponse ne crée pas le fichier.Avec
socat
(un "relais de données bidirectionnel entre deux canaux de données"), vous pouvez vous connecter au socket de domaine Unix comme ceci:la source
netcat-openbsd
prend en charge la connexion aux sockets du domaine UNIX. En utilisant cela, vous pouvez vous connecter à un socket de flux de domaine UNIX ou à un socket de datagramme de domaine UNIX. Par conséquent, vous devez indiquer le type de socket à netcat.Par exemple, un
/dev/log
fichier sous Linux est un socket socket de datagramme de domaine UNIX etnc -U /dev/log
ne fonctionnera donc pas . Utilisez plutôtnc -uU /dev/log
. L'utilisation de -u avec -U indique à netcat qu'il s'agit d'un socket de datagramme de domaine UNIX.De même, lors de l'utilisation
socat
, utilisez l'option UNIX-CLIENT. En utilisant cette option, vous pouvez vous connecter à un flux de domaine UNIX et à des sockets de datagramme de domaine UNIX . Dans sa page de manuel (man socat) , " Il essaie d'abord de se connecter et, en cas d'échec, suppose qu'il s'agit d'un socket de datagramme, prenant ainsi en charge les deux types ".la source
Vous pouvez utiliser socat sur Debian. Pour l'installer:
la source
socat
installé sur mon serveur, mais il est certainement disponible: packages.debian.org/squeeze/socat