Chuyển tập tin đáng tin cậy qua liên kết mạng chậm hoặc không ổn định


8

Tôi cần chuyển một số tệp tệp qua liên kết băng thông rộng chất lượng thấp đến máy chủ. Các tệp lớn và mất khoảng 30 phút để chuyển mỗi tệp.

Tôi sử dụng scp, nhưng đôi khi nó bị treo - quá trình chuyển không bị lỗi, nó vẫn chạy, nhưng không có dữ liệu nào được chuyển nữa.

Vì vậy, tôi đang tìm kiếm một giải pháp tải lên "failafe", một giải pháp sẽ hoạt động ngay cả khi liên kết bị lỗi trong vài phút hoặc không đáng tin cậy.

Ý tưởng của tôi là:

  1. chia tập tin lớn trong các phần nhỏ
  2. tải lên các phần, với thời gian chờ và thử lại nếu thất bại

Câu hỏi:

  • Có một công cụ sẵn sàng để thực hiện ý tưởng này? (không có nhu cầu cụ thể cho scp. có thể là ftp hoặc bất cứ điều gì khác)
  • Có cách nào để phát hiện khi scp bị treo không? ((nghĩa là nó vẫn đang chạy, nhưng không truyền dữ liệu)

Câu trả lời:


15

Bạn có thể sử dụng rsync để sao chép tệp của mình từ máy tính này sang máy tính khác. rsync có thể sử dụng ssh như vận chuyển cơ bản của nó. Kết hợp rsync --partialvới một tập lệnh như tập lệnh này để thử lại trong trường hợp lỗi mạng và bạn sẽ có thể di chuyển các tệp của mình ngay cả khi gặp lỗi mạng.

Một cách khác để làm điều đó là gắn kết hệ thống tệp từ xa trên máy tính cục bộ của bạn sshfs -o reconnect, sau đó chỉ cần cp (các) tệp. sshfs / Linux sẽ lo phần còn lại. Dựa trên một số thử nghiệm tôi đã làm hôm nay, đây có vẻ là nhiều chậm hơn so với rsync.

Cuối cùng, bạn có thể thiết lập VPN giữa hai máy. Điều này liên quan đến hầu hết các công việc, và một trong các giải pháp trên dễ dàng hơn nhiều, nhưng nó sẽ giải quyết vấn đề kết nối mạng không ổn định. Và như một số người đã lưu ý, điều này cũng có thể không ổn định. Nó có thể hoạt động nếu VPN rất tích cực trong việc thiết lập lại các kết nối, như OpenVPN, nhưng các giải pháp trên tốt hơn nhiều.


1
Để thực hiện công việc này, bạn sẽ cần sử dụng --partialcờ (hoặc một cái gì đó có ý nghĩa --partialnhư vậy --inplace) nếu không, bất cứ khi nào quá trình chuyển bị gián đoạn, việc chuyển một phần sẽ bị xóa và bạn sẽ phải bắt đầu lại.
womble

Rupync chắc chắn là con đường để đi ... Hoặc robocopy cho các cửa sổ.
Brian Adkins

Chính xác thì VPN sẽ giúp như thế nào với một kết nối hoàn hảo?
EEAA

Phần mềm VPN (ví dụ OpenVPN) có thể tự động kết nối lại trong nền, trong suốt với bất kỳ ứng dụng nào đang chạy trên VPN.
Michael Hampton

@ErikA Suy nghĩ của tôi chính xác - VPN qua flakey link = flakey VPN luôn phải khởi động lại. Nó chỉ thêm một cấp độ thứ hai cho vấn đề đó là phần mềm vận chuyển phải có khả năng khởi động lại việc truyền tệp chính xác ở nơi bị gián đoạn.
Phòng thí nghiệm Fiasco
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.