Tiếp tục chuyển giao scp đệ quy (với rsync?)


14

Tôi đã chuyển vài nghìn tệp mỗi ~ 1MB qua scp và kết nối của tôi đã bị hỏng sau 2k tệp đầu tiên. Tôi muốn biết liệu có cách nào để tiếp tục chuyển khoản đệ quy không bắt đầu lại. Cái gì đó như

$ scp -r me@host.com:/datafiles/ ./
... Happy Transfer ...
...     BREAK!     ...
$ rsync -P me@host.com:/datafiles/ ./
... Continue transf...

Vấn đề là tôi dường như không thể có được cú pháp đúng nếu có thể. Bất cứ ai cũng có thể làm sáng tỏ nếu / làm thế nào nó có thể được thực hiện?

Tái bút Nếu bạn chỉ định dấu gạch chéo sau "datafiles" trong dòng rsync, điều đó có chuyển thư mục hoặc nội dung của nó không? Tôi thấy những bình luận mâu thuẫn khi tôi googled.

Câu trả lời:


10

nếu bạn kết nối từ máy cục bộ sang máy chủ từ xa, điều này sẽ hoạt động:

rsync -avzl -e ssh /directory/with/files/ you@host.com:/new/directory/

Cảm ơn. Tôi không nghĩ rằng nó hoạt động được vì nó sẽ bắt đầu liệt kê tất cả các tệp của tôi nhưng tôi không nhận ra rằng nó đang hiển thị "chuyển tệp", điều đó chỉ có nghĩa là thông báo rằng tệp đã được cập nhật. Phải là chuyển khoản của tôi rời khỏi nó được chọn với chuyển khoản thực sự (chậm hơn).
vật lý học

Hmm, đối với tôi ssh -i akey.pemlà bắt buộc và tôi không thể có được -iphần để làm việc với các lệnh này.
đẳng cấu

2
Nếu bạn đang cố gắng tiếp tục một tệp lớn, tùy chọn này có thể hữu ích : --partial --inplace --no-whole-file.
Rafael Xavier

@kibitzer - một khi nó hiển thị cho bạn tệp (trên máy chủ từ xa), làm thế nào bạn bắt đầu chuyển lại? Tôi chỉ cần xây dựng tệp danh sách và cho tôi xem tệp và số lượng đã được tải lên. Nhưng nó chỉ bị treo mà không có tùy chọn để tiếp tục hoặc tiến trình đầu ra. Việc chuyển tiền đã bắt đầu lại hay tôi cần phải làm gì để bắt đầu?
masterninja01

3
-lkhông cần thiết. Nó được ngụ ý bởi-a
Guido

11

Dòng sau nên thực hiện thủ thuật cho điều đó:

rsync - partial --proceed --rsh = ssh -r me@host.com: / datafiles / ./

Tôi chưa bao giờ sử dụng điều này cho các thư mục đệ quy trước đây, nhưng khi tôi nhắn tin thì nó dường như hoạt động như mong đợi.


1
Điều này cũng hoạt động, miễn là bạn bao gồm -r =)
vật lý học

Hầu hết các lần chuyển rsync của tôi thuộc loại "rsync -ahP Something / user @ host: / where /". --Rsh = ssh là hoàn toàn không cần thiết. Sau đó, cũng -P kéo theo - một phần và - tiến hành.
killermist

1

Lệnh rsync mà bạn đã liệt kê sẽ hoạt động, nếu bạn chỉ thêm "-r". nhưng rất có thể bạn cũng muốn "-a" và "-v".

Và về dấu gạch chéo, me@site.com: / data / tương đương với / data / *, nói cách khác, nếu bạn thêm dấu gạch chéo, nó sẽ sao chép tất cả nội dung. nhưng me@site.com: / data sẽ là thư mục chính [và tự nhiên, các thư mục con của nó]


1

Hợp nhất câu trả lời của kibitzer và Tyler làm việc tốt nhất với tôi:

rsync --partial --progress -avzl -e ssh /directory/with/files/ you@host.com:/new/directory/

(rsyncing đệ quy và hiển thị tiến trình của từng tệp)

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.