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