Sao chép từ máy chủ từ xa không có rsync


7

Tôi cần sao chép đệ quy một thư mục từ máy chủ từ xa Ubuntu nơi tôi có sshquyền truy cập. Tôi không muốn theo các liên kết tượng trưng, ​​cũng không sao chép quyền / chủ sở hữu / nhóm, vì hệ thống máy khách của tôi (Ubuntu cũng vậy) không có cùng người dùng với máy chủ.

rsyncGiải pháp này có thể là một trong những tốt nhất. Nhưng máy chủ không có rsyncvà tôi không thể cài đặt nó ở đó; Vì vậy, lệnh đó cho tôi lỗi.

Có cách nào khác để sao chép thư mục từ xa không?


tar hoặc cpio ... những thứ này có những hạn chế nhưng chúng sao chép các liên kết tượng trưng dưới dạng liên kết tượng trưng
Skaperen

hoặc tải lên bản sao của rsynctệp thực thi của riêng bạn ... nó không cần quyền root để làm việc với các tệp của riêng bạn
Skaperen

tôi đã gặp tình huống tương tự tại crazydomains - tôi vừa tải xuống nguồn rsync từ đây download.samba.org/pub/rsync - sau đó được biên dịch, đặt trong ~/binthư mục người dùng từ xa và được sử dụng --rsync-path=/home/user/bin/rsynctrên lệnh rsync cục bộ. làm việc một điều trị.
bhu Boue vidya

Câu trả lời:


8

Nếu bạn có quyền sử dụng FUSE trên máy cục bộ của mình, hãy cài đặt sshfsgói . SSHFS cho phép bạn truy cập các tệp từ xa thông qua truy cập hệ thống tệp thông thường: nó gắn kết một cây thư mục được truy cập qua SFTP. Bạn chỉ cần có quyền truy cập SFTP ở phía xa (được bật theo mặc định với OpenSSH trên Ubuntu). Khi thư mục từ xa được gắn kết, bạn có thể sử dụng các công cụ bạn chọn để thao tác với các tệp mà không cần phải quan tâm chúng là cục bộ hay từ xa.

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

9

Bạn có thể sử dụng scp -rđể sao chép các tệp đệ quy giữa các máy chủ khác nhau. Cú pháp của bạn có thể giống nhưscp -r user@Ubuntu-Server:/home/myuser ./from_Ubuntu_server

Ngoài ra, bạn có thể tải lên tệp rsyncnhị phân cục bộ của mình bằng scp lên máy chủ Ubuntu và thêm lệnh --rsync-path=/home/myuser/rsyncban đầu của bạn rsyncđể cho khách hàng của bạn rsyncbiết cái rsyncnào sẽ gọi trên máy chủ Ubuntu.


mẹo của bạn về việc sử dụng --rsync-path=/...đã giúp tôi trên máy chủ từ xa, nơi tôi có thể dễ dàng biên dịch bản sao rsynctừ nguồn của mình và trỏ đến nó từ cmd rsync cục bộ. làm việc một điều trị! thx sooooooo nhiều ....
bhu Boue vidya

3

Bạn có thể sử dụng một tarsshkết hợp như thế này:

tar cvzf - folder/ | ssh -C user_name@host_name "cd ~/; tar xvzf -"

Không có gì trong câu hỏi cho thấy OP cần sử dụng sudo.
Kenster

Đó là bản sao địa phương để từ xa; nó nên được đảo ngược ssh @remote "tar cf- from" | tar xf-cho câu hỏi này Cả hai tar zssh -Cgần như chắc chắn là một sự lãng phí CPU; thậm chí chỉ cần một nếu dữ liệu lớn hoặc mạng chậm. Sử dụng vtrên cả hai đồng thời thường sẽ tạo ra đầu ra rất khó hiểu; Tôi sẽ làm điều đó chỉ trên đích đến.
dave_thndry_085
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.