GNU/Linux >> Linux Esercitazione >  >> Linux

Abusa di cURL per comunicare con Redis

Non curl, ma non richiede un'interfaccia HTTP o nc (ottimo per qualcosa come un contenitore in cui non hai nc installato)

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

Dovrebbe darti

+PONG

Puoi leggere di più su cosa sta succedendo in questo fantastico articolo.


Quando vuoi usare curl, hai bisogno di REST su RESP, come webdis, tinywebdis o turbowebdis. Vedi https://github.com/markuman/tinywebdis#turbowebdis-tinywebdis--cherrywebdis

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

Senza un'interfaccia REST per redis, puoi usare netcat per esempio.

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

Per i redis protetti da password puoi usare netcat in questo modo:

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

Con netcat devi costruire il protocollo RESP da solo. Vedi http://redis.io/topics/protocol

aggiornamento 09-01-2018

Ho creato una potente funzione bash che esegue il ping dell'istanza redis ad ogni costo su 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)
    }

utilizzo redis-ping localhost


Linux
  1. Tutorial comando cURL con esempi

  2. eseguire richieste HTTP con cURL (usando PROXY)

  3. Script Linux con curl per verificare che il servizio web sia attivo

  4. Come posso fare un HTTP PUT con Wget?

  5. Linux:è possibile sapere con quali opzioni è stata configurata e compilata un'installazione?

Comando Curl in Linux con esempi

Come effettuare una richiesta POST con cURL

Come scaricare file con il comando Curl in Linux

Come fare una richiesta POST con curl

Installa Redis su Ubuntu

Come configurare Logstash su Linux con ElasticSearch, Redis, Nginx