Ca aceasta?
socat tcp-listen:8080,reuseaddr,furk system:'ls; exec socat - tcp\:localhost\:80'
Primul parametru primește ,furculiţă a avea socat stați să ascultați pentru mai multe conexiuni
sistem: este de preferat executiv: pentru a avea un interpret shell și pentru a rula cu ușurință o comandă suplimentară după ls comanda,
care este un nou socat comanda
care va avea stdin/stdout conectat la ieșirea/intrarea clientului de la distanță și îl va redirecționa bidirecțional către următoarea destinație. Rețineți că este : separator (și alte câteva caractere speciale) trebuie să fie eliminate cu a \ pentru a nu confunda pe primul socat comanda. Dacă această linie devine mai complexă, devine mai ușor să executați pur și simplu un script ca acesta:
socat tcp-listen:8080,reuseaddr,furk exec:/path/to/myscript.sh
cu /path/to/myscript.sh:
#!/bin/sh
ls
exec socat - tcp:localhost:80
exec comanda în shell este opțională, dar evită plecarea inutilă în jurul shell-ului.
socat de asemenea, exportă câteva variabile proprii care pot fi reutilizate în script, pe care le-ați putea verifica, de exemplu, astfel (cu o conexiune făcută):
$ env - socat TCP-LISTEN:8080,reuseaddr,furk exec:printenv
SOCAT_PID=1057351
SOCAT_PPID=1057284
SOCAT_VERSION=1.7.4.1
SOCAT_SOCKADDR=127.0.0.1
SOCAT_SOCKPORT=8080
SOCAT_PEERADDR=127.0.0.1
SOCAT_PEERPORT=42970