sftp - cách chỉ sao chép các tệp từ thư mục không tồn tại trong thư mục đích


19

Tôi tự hỏi nếu nó có thể với getcác tập tin sftp, nhưng ngăn nó tải lại các tập tin đã tồn tại trong thư mục đích?

Câu trả lời:


20

sftpcó khả năng hạn chế. Tuy nhiên, getlệnh có một tùy chọn có thể thực hiện thủ thuật: get -ahoàn thành tải xuống một phần, do đó, nếu một tệp đã có trên máy khách và ít nhất là lớn như tệp trên máy chủ, nó sẽ không được tải xuống. Nếu tệp có mặt nhưng ngắn hơn, phần cuối của tệp sẽ được chuyển, điều này có ý nghĩa nếu tệp cục bộ là sản phẩm của quá trình tải xuống bị gián đoạn.

Cách dễ nhất để thực hiện những điều phức tạp trên SFTP là sử dụng SSHFS . SSHFS là một hệ thống tệp sử dụng SFTP để làm cho một hệ thống tệp từ xa xuất hiện dưới dạng một filessytem cục bộ. Trên máy khách, SSHFS yêu cầu FUSE , có sẵn trên hầu hết các thông báo hiện đại. Trên máy chủ, SSHFS yêu cầu SFTP; nếu máy chủ cho phép SFTP thì bạn có thể sử dụng SSHFS với nó.

mkdir server
sshfs server.example.com:/ server
rsync -a server/remote/path /local/path/
fusermount -u server

Lưu ý rằng rsync trên SSHFS không thể tận dụng thuật toán chuyển delta, vì nó không thể tính toán tổng kiểm tra một phần ở phía xa. Điều đó không liên quan để tải xuống một lần nhưng lãng phí nếu bạn đang đồng bộ hóa các tệp đã được sửa đổi. Để đồng bộ hóa hiệu quả các tệp đã sửa đổi, hãy sử dụng rsync -a server:/remote/path /local/path/, nhưng điều này yêu cầu quyền truy cập vỏ SSH, không chỉ truy cập SFTP. Quyền truy cập shell có thể được giới hạn trong lệnh rsync.


7

Bạn có thể sử dụng -acờ cho getlệnh:

$ sftp example.com
sftp> get -a hello.txt

Bạn có thể chỉ định *để tải về toàn bộ thư mục của khóa học.

Tuy nhiên, có một vài cảnh báo.

  • Điều này không hoạt động trên OS X. Nó có thể không hoạt động trên các hệ thống khác. Tôi đã thử nghiệm nó trên Ubuntu 15.04.
  • Tùy chọn này có nghĩa là để tiếp tục tải xuống bị gián đoạn. Nếu tệp của bạn đã thay đổi, kết quả sẽ là tải xuống bị hỏng.

Một lựa chọn tốt hơn sẽ được sử dụng rsync:

rsync example.com:hello.txt

Điều này sẽ luôn cung cấp cho bạn tệp như trên máy chủ, chỉ chuyển các khác biệt giữa bản sao cục bộ và bản sao từ xa nếu chúng khác nhau và nó có sẵn trên toàn cầu.

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.