sshにパイプして、リモートコマンドを実行できます。この場合、リモートコマンドはcat > big.txt
stdinを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に接続し、ネットワーク経由でstdinからデータをコピーするように指示します。
ただし、このnc
ソリューションにはいくつかの欠点があります。
- 認証はありません。誰でもポート1234に接続して、ファイルにデータを送信できます。
- データはのように暗号化されません
ssh
。
- いずれかのマシンがファイアウォールの背後にある場合、選択したポートを開いて、特に受信側で接続を適切にルーティングできるようにする必要があります。
- 両端を独立して同時にセットアップする必要があります。この
ssh
ソリューションを使用すると、1つのエンドポイントからのみ転送を開始できます。