ssh
アクセス権を持つUbuntuリモートサーバーからフォルダを繰り返しコピーする必要があります。私のクライアントシステム(Ubuntuも同様)にサーバーと同じユーザーがいないため、シンボリックリンクをたどったり、権限/所有者/グループをコピーしたくありません。
これ rsync
おそらく最高の解決策になるでしょう。ただし、サーバーはそうではなく、そこrsync
にインストールできないため、コマンドでエラーが発生します。
リモートフォルダをコピーする他の方法はありますか?
答え1
scp -r
異なるホスト間でファイルを再帰的にコピーできます。構文は次のとおりです。scp -r user@Ubuntu-Server:/home/myuser ./from_Ubuntu_server
またrsync
、scpを使用してローカルバイナリをUbuntuサーバーにアップロードし、それを元--rsync-path=/home/myuser/rsync
のrsync
コマンドに追加して、クライアントがUbuntuサーバーから呼び出す必要があるコマンドをrsync
通知することもできます。rsync
答え2
使用許可を受けた場合ヒューズローカルコンピュータにインストールsshfs
パック。 SSHFSを使用すると、通常のファイルシステムアクセスを介してリモートファイルにアクセスできます。 SFTP経由でアクセスできるディレクトリツリーをマウントします。リモート側ではSFTPアクセスのみが必要です(UbuntuのOpenSSHではこの機能はデフォルトで有効になっています)。リモートディレクトリがマウントされたら、選択したツールを使用してファイルがローカルであるかリモートであるかに関係なく、ファイルを操作できます。
mkdir ~/net/remote-server
sshfs remote-server:/ ~/net/remote-server
rsync -a --no-copy-links ~/net/remote-server/remote/path/ /local/path/
fusermount -u ~/net/remote-server
答え3
tar
とを使用できますssh
。
例えば、アップロードSSH経由でローカルディレクトリの内容をsomewhere_local
パスにコピーする/somewhere
tar czf - -C ./somewhere_local . | ssh {yourserver} 'tar xzf - -C /somewhere'
または、ダウンロードに行きますSSH経由でリモートディレクトリの内容を/somewhere
パスに送信する./somewhere_local
ssh {yourserver} "tar czf - -C /somewhere ." | tar xzf - -C somewhere_local