GNU/Linux >> Znalost Linux >  >> Linux

Zneužívejte cURL ke komunikaci s Redis

Není curl, ale nevyžaduje rozhraní HTTP nebo nc (skvělé pro něco jako kontejner, kde nemáte nainstalovaný nc)

exec 3<>/dev/tcp/127.0.0.1/6379 && echo -e "PING\r\n" >&3 && head -c 7 <&3

Měl by vám dát

+PONG

Více o tom, co se děje, si můžete přečíst v tomto fantastickém článku.


Když chcete použít curl, potřebujete REST přes RESP, jako je webdis, tinywebdis nebo turbowebdis. Viz https://github.com/markuman/tinywebdis#turbowebdis-tinywebdis--cherrywebdis

$ curl -w '\n' http://127.0.0.1:8888/ping
{"ping":"PONG"}

Bez rozhraní REST pro redis můžete použít například netcat.

$ (printf "PING\r\n";) | nc <redis-host> 6379 
+PONG

Pro heslem chráněný redis můžete použít netcat takto:

$ (printf "AUTH <password>\r\n";) | nc <redis-host> 6379
+PONG

S netcat si musíte vytvořit protokol RESP sami. Viz http://redis.io/topics/protocol

aktualizace 2018-01-09

Vytvořil jsem výkonnou bash funkci, která pingne instanci redis za každou cenu přes tcp

    function redis-ping() {
            # ping a redis server at any cost
            redis-cli -h $1 ping 2>/dev/null || \
                    echo $((printf "PING\r\n";) | nc $1 6379 2>/dev/null || \
                    exec 3<>/dev/tcp/$1/6379 && echo -e "PING\r\n" >&3 && head -c 7 <&3)
    }

použití redis-ping localhost


Linux
  1. Nastavte Nextcloud s Redis pomocí Dockeru

  2. Jak mohu provést HTTP PUT s Wget?

  3. Linux:Je možné vědět, s jakými možnostmi byla instalace nakonfigurována a zkompilována?

  1. Oprava binárního kódu pomocí Dd?

  2. Získejte informace o záhlaví pomocí cURL

  3. Naučte se používat příkaz CURL v Linuxu s těmito příklady

  1. Výukový program příkazů cURL s příklady

  2. provádění požadavků HTTP pomocí cURL (pomocí PROXY)

  3. Linuxový skript s curl pro kontrolu, zda je webová služba aktivní