Я использую веб-сервер Debian Squeeze. Я установил memcached на нем и настроил memcached для прослушивания на доменном сокете Unix (at /tmp/memcached.sock
), так как ему нужно только получать сообщения с веб-сайта, который находится на том же сервере.
Кажется, все работает нормально, но я бы также хотел пообщаться с memcached через оболочку, чтобы убедиться, что он делает то, что, я думаю, он делает.
memcached принимает сообщения через простой протокол ASCII (если я правильно понимаю). Если бы он прослушивал TCP / IP, я мог бы отправлять ему сообщения, например nc
:
$ echo "stats settings" | nc localhost 11211
Но я не могу понять, как отправить этот текст в сокет домена вместо этого.
На моем ноутбуке (который работает под управлением OS X Lion) оба nc
и telnet
имеют параметры ( -U
и -u
соответственно) для использования доменных сокетов. Однако на моем веб-сервере Debian Squeeze этих опций нет.
/var/run/socket
? Есть ли способ повторно использовать существующий файл?-l
), он создаст файл. В противном случае он ожидает, что сокет уже существует (и уже что-то слушает). Таким образом, пример команды в ответе не создает файл.С помощью
socat
(«двунаправленной передачи данных между двумя каналами данных») вы можете подключиться к сокету домена Unix следующим образом:источник
netcat-openbsd
поддерживает подключение к сокетам UNIX-домена. Используя это, вы можете подключиться либо к потоковому сокету домена UNIX, либо к датаграмме сокета домена UNIX , и, следовательно, вы должны указать тип сокета netcat.например,
/dev/log
файл в Linux является сокетом сокета дейтаграммы UNIX-домена , поэтомуnc -U /dev/log
не будет работать . Вместо этого используйтеnc -uU /dev/log
. Использование -u вместе с -U говорит netcat, что это сокет дейтаграммы UNIX-домена.Аналогично, при использовании
socat
используйте параметр UNIX-CLIENT. С помощью этой опции можно подключить как к потоку UNIX-домен и UNIX-домен датаграмм сокетов. Со страницы руководства (man socat) : « Сначала он пытается подключиться и, в случае неудачи, предполагает, что это сокет дейтаграммы, поддерживая оба типа ».источник
Вы можете использовать socat в Debian. Чтобы установить его:
источник
socat
установил на своем сервере, но он, безусловно, доступен: packages.debian.org/squeeze/socat