ssh

Linux(centos)マシンを使用して、あるマシンから別のマシンにファイルをコピーする方法。すでに

。今、私の質問は、あるシステムから別のシステムにファイルをコピーするにはどうすればよいですか?

私の環境に、とSystem B。私はSystem Aマシンを使用しており、他のいくつかはSystem Bマシン。

System BからSystem Aにファイルをコピーするにはどうすればよいですか。そして、ファイルをSystem AからSystem Bにコピーしますか?

コメント

  • scpはしばしばカンバーストーンだと思います。ニーズに合う場合は、これを試してください linuxjournal.com/article/8904 リモートファイルシステムをローカルにマウントします。
  • @Alan "面倒な"という意味だと思いますか?カンバーストーンはマジックカードです;)
  • ある程度関連しています:暗号化されたアーカイブを作成しますssh を使用したリモートマシン上のローカルdir/のダウンロード:tar -c dir/ | gzip | gpg -c | ssh user@remote 'dd of=dir.tar.gz.gpg'
  • リモートサーバーのftpにアクセスできる場合は、 wget を使用して$wget -r --level=9 --no-parent --reject "index.html*" ftp://<USERID>:<PASSWORD>@<MACHINE-NAME>/path/to Reference1 Reference2
  • 重複していない、リンクされた質問は特に;そのため、scpは問題なく、答えとして最も簡単な方法です。そのため、modは、誰かが他のフラグに移動するかのように重複フラグを削除してください。最も有用な答えが失われます。

回答

構文:

scp <source> <destination> 

宛先Bにログインした状態で、ファイルをBからAにコピーします。

scp /path/to/file username@a:/path/to/destination 

iv idにログインしているときに、ファイルをBからAにコピーするには= “2a634c09ca”>

scp username@b:/path/to/file /path/to/destination 

コメント

  • 明確にするために、通常はリモートサーバー(システム)にログインしているときに、'を使用してローカルマシン(システムA)との間でファイルをコピーしないでください。 B)sshを使用。 scpは、リモートサーバーにログインし、ファイルをコピーしてから、1つのプロセスで再度ログアウトするため、ローカルマシンのシェルから実行するだけです。そうは言っても、SSH経由でシステムBにログインしていて、システムBとシステム間でファイルをコピーする場合は、scpを使用できます。' C.
  • @DopeGhoti。はい、' 2台のリモートコンピューター間でファイルを移動することはできません。ソースまたは宛先のいずれかがローカルファイルである必要があります。ただし、sshを使用してリモートマシンにログインすると、そのマシンの'コマンドラインで2台のリモートマシン間でファイルをコピーできます。
  • また、覚えておくべき重要なことは、アクセス許可を持っているターゲットマシン上のフォルダにのみscpできるということです。ターゲットユーザーが権限を持たない宛先にファイルをコピーしようとしている場合は、最初にファイルをユーザーの'のホームディレクトリまたはサブディレクトリにコピーしてから、sshでターゲットマシンとsudoを最終的な宛先に移動します
  • -r(再帰的)と-p(システムメタデータを保持する)を覚えておいてください:scp -rp < file1 > < file2 >
  • はい、-Pは、リモートホストのTCPポートを指定します。 ssh-pを使用しているのでこれは毎回私を捕らえます。

回答

別のアプローチが必要な場合。

sshfsをインストールします。 ubuntu / debianを使用する場合:

sudo apt-get install sshfs 

またはcentos / rhelを使用する場合:

sudo yum install fuse-sshfs 

または、macOSの場合

brew install sshfs 

空のディレクトリを作成します

mkdir /home/user/testdir 

2つのディレクトリを「リンク」または「マウント」します

sshfs [email protected]:/remote/dir /home/user/testdir 

ディレクトリを「リンク解除」します

fusermount -u /home/user/testdir 

BSDおよびmacOSで、ファイルシステムをアンマウントするには:

umount mountpoint 

または

diskutil unmount mountpoint 

詳細については、 linuxjournal.com libfuse / sshfs

<をご覧ください。 h3>コメント

  • 質問には、問題のOSがCentOSであることが具体的に記載されています。 Debianから派生したものではありません。 apt-getはDebianismです。正しいパッケージマネージャーはyum、またはCentOSの非常に古いフレーバーの場合はup2dateまたはrpm
  • +1この質問の答えは文脈から外れているかもしれませんが、それでも私を助け、私が見る限り、他の人も助けました。
  • 関連はありませんが、' 100万ドルの回答xD
  • 正しく理解していれば、リモートファイルにアクセスできますが、コピーはされませんか?
  • @ ToolmakerSteve you '正解です。偽のディレクトリ(マウント)が作成されるため、好みのツールをすべて使用してコピーまたは移動できます:cpmvrmrsyncunisonscpコマンドはファイルをコピーすることしかできません。

回答

タールを使いこなす必要がある場合があります:

tar -C / -cf - \ opt/widget etc/widget etc/cron.d/widget etc/init.d/widget \ --exclude=opt/widget/local.conf | ssh otherhost tar -C / -xvf - 

コメント

  • 創造性?これは、私たちがテープドライブを共有するために使用した方法です。 🙂
  • これが何をするのか教えていただけますか?たとえば、' cron 'がファイルのコピーと何の関係があるのかわかりません!
  • @aliqandil opt /ウィジェットなど/ウィジェットなど/cron.d/ウィジェットなど/init.d/ウィジェットは、tarアーカイブに含まれる個々のファイルです。重要なのは、なぜ時々あなたが空想を得る必要があるのかを説明することでした。この一連のコマンドは、ssh接続を介してtarアーカイブをストリーミングし、反対側でアーカイブを解除します。したがって、tarアーカイブがディスクに書き込まれることはありません。これを使用して、1つのコマンドでコピーするファイルを選択します。
  • わあ!最初の' / 'がソースパスであることを教えました。 (それはなんですか?)それはばかげた質問でした!ありがとう。 🙂
  • Tarは" / "にchdirするため、以下のすべてのパスは" / "。

回答

両方のシステムのファイルの同期を維持したい場合は、rsyncプログラムをご覧ください。

(こちらのチュートリアルを参照)

コメント

  • これは本当にプロフェッショナルなツールです。

回答

一般的なOSのいずれかを使用している場合は、複数のコアを使用することを除いて、gzipと同じpigzをインストールできます。高速ネットワーク上でより速くなります。私のコマンドは少し異なります。

tar cf - -C /opt -S <dir> | pigz | ssh <target> "pigz -d | tar xf - -C /opt -S" 

またはファイルを取得する他の方法

ssh <target> "tar cf - -C /opt -S <dir> | pigz" | pigz -d | tar xf - -C /opt -S 

またはルートfsをバックアップする

ssh <target> "tar cf - -C / --one-file-system -S --numeric-owner . | pigz" > root.tgz 

コメント

回答

SSH制御のNVIDIAJetsonコンピューターを介して機能するより簡単な方法は、SFTP(SSHファイル転送プロトコル)に接続することです。

ドキュメントを移動したいとしますUFO_blueprint.odt NASAのリモートサーバーからドキュメントに移動します。

  1. cdファイルを保存する場所に移動します
$ cd Documents 
  1. 接続
$ sftp sammy@your_server_ip_or_remote_hostname 
  1. 転送するファイルが含まれているディレクトリに移動します。
$ cd NASA/secret_files/ 
  1. 転送
$ get UFO_blueprint.odt 

完全なディレクトリを取得するには、代わりに

$ get -r secret_files/ 

コメント

  • ファイルをアップロードするためのコマンド

回答

ファイルとフォルダのUnix / Linux再帰コピー次のコードを使用して、セキュアシェル上で:

scp -r <host@machine_name:from_remote_directory_path> <to_local_directory_path> 

完全な例は次のようになります:

scp -r sizwe@hprobook:./home/sizwe/PycharmProjects ./home/immaculate/OtherPycharmProjects 

ホスト名を解決するDNSサーバーがない場合は、代わりにIPアドレスを使用してください。上記の例は次のようになります

scp -r 192.168.43.167:./home/sizwe/PycharmProjects ./home/immaculate/OtherPycharmProjects 

回答

実行中の場合別のポートのSCP / SSHの場合、大文字の-Pポートオプションを指定してください。

例:

 scp -P 7121 /users/admin/downloads/* [email protected]:/home/  

コメント

  • この質問は7歳で、多くの回答があります既に。 sshがデフォルト以外のポートを使用できることは事実であり、ssh client ' s -Pオプションが必要ですが、'目前の問題を本当に解決することはできません。最近の質問に焦点を当ててみてください。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です