ssh
アクセス権があるUbuntuリモートサーバーからフォルダーを再帰的にコピーする必要があります。私のクライアントシステム(Ubuntuも)にはサーバーと同じユーザーがいないため、シンボリックリンクをたどりませんし、アクセス許可/所有者/グループをコピーしません。
これrsync
ソリューションが最良のソリューションである可能性があります。しかし、サーバーにはrsync
がなく、そこにインストールできません。そのコマンドは私にエラーを与えます。
リモートフォルダーをコピーする別の方法はありますか?
ローカルマシンで 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
を知らせます。
次のようにtar
とssh
の組み合わせを使用できます。
tar cvzf - folder/ | ssh -C user_name@Host_name "cd ~/; tar xvzf -"