Вы можете подключиться к ssh и запустить удаленную команду. В этом случае удаленная команда cat > big.txt
которая скопирует стандартный ввод в файл big.txt
.
echo "Lots of data" | ssh user@example.com 'cat > big.txt'
Это просто и понятно, если вы можете использовать ssh для подключения к удаленному концу.
Вы также можете использовать nc
(NetCat) для передачи данных. На принимающем компьютере (например, host.example.com):
nc -l 1234 > big.txt
Это настроит nc
на прослушивание порта 1234 и копирование всего, что отправлено на этот порт, в файл big.txt
. Затем на отправляющей машине:
echo "Lots of data" | nc host.example.com 1234
Эта команда скажет nc
на отправляющей стороне подключиться к порту 1234 на приемнике и скопировать данные со стандартного ввода через сеть.
Однако решение nc
имеет несколько недостатков:
- Там нет аутентификации; любой мог подключиться к порту 1234 и отправить данные в файл.
- Данные не зашифрованы, как это было бы с
ssh
.
- Если какая-либо машина находится за брандмауэром, выбранный порт должен быть открыт для правильного подключения и маршрутизации, особенно на принимающей стороне.
- Оба конца должны быть установлены независимо и одновременно. С помощью решения
ssh
вы можете инициировать передачу только с одной из конечных точек.