Shell

如何通過 Debian Squeeze 上的 shell 與 Unix 域套接字通信?

  • July 14, 2021

我正在執行一個 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

引用自:https://unix.stackexchange.com/questions/26715