rsyncなしでリモートサーバーからコピー

rsyncなしでリモートサーバーからコピー

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/rsyncrsyncコマンドに追加して、クライアントが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

関連情報