Shell
如何通過 Debian Squeeze 上的 shell 與 Unix 域套接字通信?
我正在執行一個 Debian Squeeze 網路伺服器。我已經在上面安裝了 memcached,並將 memcached 配置為偵聽 Unix 域套接字 (at
/tmp/memcached.sock
),因為它只需要從位於同一伺服器上的網站接收消息。它似乎工作正常,但我也想通過 shell 與 memcached 通信,以檢查它是否在做我認為它正在做的事情。
memcached 通過簡單的 ASCII 協議接受消息(如果我理解正確的話)。如果它正在偵聽 TCP/IP,我可以通過以下方式向它發送消息
nc
:$ echo "stats settings" | nc localhost 11211
但我不知道如何將該文本發送到域套接字。
在我的筆記型電腦(執行 OS X Lion)上,兩者
nc
都有使用域套接字telnet
的選項(-U
和分別)。-u
但是,在我的 Debian Squeeze Web 伺服器上,這些選項不存在。
有了
netcat-openbsd
,就有了一個-U
選項。如果你沒有它,你可能已經netcat-traditional
安裝了它;我建議換。範例命令:
nc -U /var/run/socket
使用
socat
(‘兩個數據通道之間的雙向數據中繼’),您可以像這樣連接到 unix 域套接字:$ socat - UNIX-CONNECT:/tmp/memcached.sock