GNU/Linux >> Linux の 問題 >  >> Linux

2 台の Linux コンピューター間で LAN 経由でファイルを転送する最良の方法

Linux 環境では、セキュリティと使いやすさの両方の点で、ssh が最適な方法です。リストされているSSH、SSHFS、SCP、およびSFTPはすべて、SSHプロトコルの上に構築された異なるサービスです. SCP は非常に使いやすく、CP と同じように機能しますが、パスにユーザー名とマシン名を指定できます。したがって、cp ~/music/ ~/newmusic/ のような CP を実行できます。 ですが、 scp ~/music/ [email protected]:~/newmusic も同様に簡単に実行できます host という名前のコンピューターに送信します。それだけです - 何も設定する必要はありません。証明書やその他の認証が設定されていない場合は、他のマシンでアカウント パスワードの入力を求められます (もちろん、scp はこれらの設定を ssh と共有します)。

SFTP は、リモート ファイル システムで多くの操作を簡単に実行できるようにするツールです。FTP と同じように機能しますが、SSH 経由で実行されるため、安全であり、必要なのは SSH サーバーのみです。 man sftp 使い方を全て教えてくれます。 2 台のマシン間でフォルダーを移動するためだけに SFTP を使用するわけではありません。別のコンピューターでファイルを再配置する場合など、多くの操作を行う場合に便利です。

SSHFS は、SFTP をファイル システムに拡張するだけです。仮想ホストをファイル システムにマウントできるため、ネットワーク関連は完全に透過的に行われます。 SSHFS は、1 回限りのファイル転送ではなく、半永久的なセットアップ用です。セットアップにはもう少し手間がかかります。これについては、プロジェクトの Web サイトで読むことができます。

OS が混在する環境で作業する必要がある場合は、Samba が次善の策になります。 Windows と OS X は完全に自動的に Samba をサポートします。


セキュリティが問題にならない場合の私の個人的なお気に入りは、netcat + tar です:

ディレクトリを送信するには、送信を実行しているコンピュータ上で送信したいコンテンツを含むディレクトリ内に cd で移動し、次の操作を行います。

tar -cz . | nc -q 10 -l -p 45454

コンテンツを受信するコンピューターで、コンテンツを表示する場所に cd して次の操作を行います。

nc -w 10 $REMOTE_HOST 45454 | tar -xz

$REMOTE_HOST を置き換えます 送信を行うコンピューターの ip / ホスト名を使用します。 45454 の代わりに別のポートを使用することもできます .

ここで実際に起こっていることは、「受信側」のコンピューターがポート 45454 で送信側のコンピューターに接続し、tar および gzip されたディレクトリのコンテンツを受信し、それを tar (および gzip) に直接渡して、現在のディレクトリ。

簡単な例 (localhost をリモート ホストとして使用)

コンピュータ 1

[email protected]:~/nctest/a/mydir$ ls
file_a.txt  file_b.log
[email protected]:~/nctest/a/mydir$ tar -cz . | nc -q 10 -l -p 45454

コンピュータ 2

[email protected]:~/nctest/b$ ls
[email protected]:~/nctest/b$ nc -w 10 localhost 45454 | tar -xz
[email protected]:~/nctest/b$ ls
file_a.txt  file_b.log

1 回限りの移動には、scp をお勧めします。

しかし、このディレクトリが機能する可能性があり、他の位置を最新の状態に保つために何度も移動する必要がある場合は、rsync (ssh を使用) を使用できます。

rsync には多くの引数があるため、通常は小さなシェルに入れて、正しく取得します (毎回)。アイデアは、最後に実行してから変更されたものだけを送信することです.

#!/bin/bash

user="nisse"
host="192.168.0.33"

echo "Sync: /home/media/music/"
rsync --archive --delete -v --progress -e "ssh -l $user " /home/media/music/ $host:/home/media/music/

これにより、ユーザー「nisse」を使用して、「/home/media/music/」というディレクトリがローカル コンピューターから 192.168.0.33 という名前の PC に移動されます。そして、ローカル PC に存在しないターゲット上のすべてのものを削除します。


Linux
  1. Crocを使用してコンピュータ間でファイルとフォルダを安全に転送する

  2. Linuxで最高のファイル転送ツール

  3. SSH 経由でデバイスを使用しますか?

  1. ncおよびpvコマンドを使用して2台のコンピューター間でファイルを転送する方法

  2. LinuxとWindows間でSAMBAサーバーを構成してファイルを転送する方法

  3. SCPとFTPを使用してLinuxのサーバー間でファイルを転送する方法

  1. Linux – 2回の間に作成されたファイルを削除する方法は?

  2. 2 台の Linux コンピューター間で LAN 経由でファイルを転送する最良の方法

  3. Linux で 2 つ以上のファイルを結合する最速の方法は何ですか?