Забавный трюк: “netcat и pipes”

netcat – это простой и удобный сетевой инструмент. Это утилита, которая позволяет отсылать по сети какие-либо данные (на произвольный хост/порт), либо выступать в роли сервера и принимать данные.
В первом случае это nc host port ,
во втором – nc -l -p port
Именно в таком виде, без других параметров, первый netcat принимает данные из стандартного ввода и отправляет их на заданный хост, второй пишет полученные по сети данные в стандартный вывод.

Теперь, собственно, фишка.
Пусть у вас есть два компа. Скажем, 192.168.0.1 и 192.168.0.2.
На первом запускаем nc -p 1234 ,
на втором – echo test | nc 192.168.0.1 1234, и…. профит )
На самом деле, этот пример, конечно же, бесполезен. А если так:
на первом – nc -q0 -l -p 1234 | tar -x ,
на втором – tar -c ./data | nc -q0 192.168.0.1 1234
Это скопирует папку ./data со второго компа на первый. (Параметр -q 0 здесь нужен для того, чтобы nc завершал работу после обнаружения конца файла.)
В качестве разового применения, имхо, способ просто бесценен (если, конечно, наплевать на утечку информации). Не нужны ни ftp, ни http, ни ssh, ни rsync..
И, конечно же, пример должен давать повод придумывать нестандартные решения.

Добавить комментарий

Войти с помощью: