web-dev-qa-db-ja.com

rsyncがないリモートサーバーからコピーする

sshアクセス権があるUbuntuリモートサーバーからフォルダーを再帰的にコピーする必要があります。私のクライアントシステム(Ubuntuも)にはサーバーと同じユーザーがいないため、シンボリックリンクをたどりませんし、アクセス許可/所有者/グループをコピーしません。

これrsyncソリューションが最良のソリューションである可能性があります。しかし、サーバーにはrsyncがなく、そこにインストールできません。そのコマンドは私にエラーを与えます。

リモートフォルダーをコピーする別の方法はありますか?

7
BowPark

ローカルマシンで Fuse を使用する権限がある場合は、 sshfs package をインストールします。 SSHFSを使用すると、通常のファイルシステムアクセスを介してリモートファイルにアクセスできます。SFSは、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

scp -rを使用して、異なるホスト間でファイルを再帰的にコピーできます。構文はscp -r user@Ubuntu-Server:/home/myuser ./from_Ubuntu_serverのようになります

さらに、scpを使用してローカルのrsyncバイナリをUbuntuサーバーにアップロードし、--rsync-path=/home/myuser/rsyncを元のrsyncコマンドに追加して、クライアントにrsyncに、Ubuntuサーバーで呼び出すrsyncを知らせます。

9
Lambert

次のようにtarsshの組み合わせを使用できます。

tar cvzf - folder/ | ssh -C user_name@Host_name "cd ~/; tar xvzf -"
3
krt