[Linux] Socat c'est bon...

Marc Grandmaire mgm@::1
Mer 29 Oct 23:02:45 CET 2008


...mangez-en !

Ce n'est pas un aliment pour chat mais le digne successeur de "nc" 
(netcat). :-))

Comme il m'a bien rendu service les derniers temps (jusqu'à pas plus tard que 
tout à l'heure), voila un exemple d'utilisation assez basique mais néanmoins 
fréquent: copier des fichiers d'une machine à une autre sans se taper des 
configs de serveurs ftp/samba/nfs/sshfs... (et avec un débit quasi natif vu 
l'absence d'enveloppes protocolaires).

*D'abord* sur la machine destination:
$ socat tcp-listen:10000 - | tar -xvzf -
Socat attends et écoute sur le port 10000 (numéro de port au pif non 
utilisé...) et renvoie ce qui arrive dessus vers la sortie standard (le "-"). 
Tout ça est donné à manger à tar qui extrait depuis l'entrée standard 
(re '-') et restaure les fichiers en affichant leur nom (man tar...)

*Ensuite* sur la machine source:
$ tar -cpvzf - fichier(s)_à_copier | socat tcp:machinedest:10000 -
On tare en compressant et en gardant les attributs et, tout comme ci dessus 
("-" et pipes), le flux sortant est renvoyé sur le port 10000 
de "machinedest" (nom ou adresse IP en dur).

http://www.dest-unreach.org/socat/doc/README

ps: je n'ai pas "d'action" chez socat, c'est juste que je trouve cet outil 
super pratique (je m'en sert aussi pour "réseauter" des ports série) et bien 
en phase avec la philosophie "unix" (fichiers, pipes, toussa).


Plus d'informations sur la liste de diffusion linux