Android

Cách chuyển tập tin với rsync qua ssh

SSH03 - Lệnh SCP (secure copy), upload và download các file tới Server bằng giao thức SSH

SSH03 - Lệnh SCP (secure copy), upload và download các file tới Server bằng giao thức SSH

Mục lục:

Anonim

Khi nói đến việc chuyển các tập tin giữa các hệ thống trên mạng, người dùng Linux và Unix có rất nhiều công cụ theo ý của họ.

Các giao thức phổ biến nhất để truyền dữ liệu là SSH và FTP. Mặc dù FTP rất phổ biến, luôn thích sử dụng SSH vì đây là cách an toàn nhất để chuyển các tệp của bạn.

Có các công cụ chuyên dụng để truyền tệp qua SSH như scp sftp nhưng không có công cụ nào trong số chúng có tất cả các tính năng mà rsync cung cấp. rsync có thể được sử dụng để phản chiếu dữ liệu, sao lưu gia tăng, sao chép tệp giữa các hệ thống, v.v.

Trong hướng dẫn này, chúng tôi sẽ giải thích cách sao chép tệp bằng rsync qua SSH.

Yêu cầu

  • Tiện ích rsync phải được cài đặt trên cả hệ thống đích và hệ thống nguồn. Nếu nó chưa được cài đặt, bạn có thể cài đặt nó bằng trình quản lý gói phân phối của bạn:

    Ubuntu và Debian:

    sudo apt install rsync

    CentOS và Fedora:

    sudo yum install rsync

    Truy cập SSH vào máy tính từ xa.

    Người dùng đang chạy lệnh rsync và người dùng SSH từ xa phải có quyền thích hợp để đọc và ghi tệp.

Sử dụng rsync để truyền tệp qua SSH

Với rsync , bạn có thể chuyển tệp và thư mục qua SSH từ và đến các máy chủ từ xa.

Cú pháp chung để truyền tệp bằng rsync như sau:

Local to Remote: rsync… -e ssh… HOST:DEST Remote to Local: rsync… -e ssh HOST:SRC…

Trong đó SRC là thư mục nguồn, DEST là thư mục đích USER là tên người dùng SSH từ xa và HOST là máy chủ SSH hoặc Địa chỉ IP từ xa.

Các phiên bản mới hơn của rsync được cấu hình để sử dụng SSH làm vỏ từ xa mặc định để bạn có thể bỏ qua tùy chọn -e ssh .

Ví dụ: để chuyển một tập tin /opt/file.zip từ hệ thống cục bộ sang thư mục /var/www/ trên hệ thống từ xa có IP 12.12.12.12 bạn sẽ chạy:

rsync -a /opt/file.zip [email protected]:/var/www/

Tùy chọn -a là viết tắt của chế độ lưu trữ sẽ đồng bộ hóa các thư mục theo cách đệ quy, chuyển các thiết bị đặc biệt và khối, bảo toàn các liên kết tượng trưng, ​​thời gian sửa đổi, nhóm, quyền sở hữu và quyền.

Nếu tập tin tồn tại trên máy chủ từ xa, nó sẽ bị ghi đè. Nếu bạn muốn lưu tệp dưới một tên khác, chỉ định tên mới:

rsync -a /opt/file.zip [email protected]:/var/www/file2.zip

Để truyền dữ liệu từ xa sang máy cục bộ, hãy sử dụng vị trí từ xa làm nguồn và vị trí cục bộ làm đích:

rsync -a [email protected]:/var/www/file.zip /opt/

Truyền thư mục với rsync qua SSH cũng giống như truyền tệp.

Điều quan trọng cần biết là rsync cung cấp cách xử lý khác nhau cho các thư mục nguồn bằng dấu gạch chéo / . Khi thư mục nguồn có dấu gạch chéo, rsync sẽ chỉ sao chép nội dung của thư mục nguồn vào thư mục đích. Khi dấu gạch chéo bị bỏ qua, thư mục nguồn sẽ được sao chép bên trong thư mục đích.

Ví dụ: để chuyển thư mục cục bộ /opt/website/images/ thư mục /var/www/images/ trên một máy từ xa, bạn sẽ gõ:

rsync -a /home/linuxize/images/ [email protected]:/var/www/images/

Sử dụng tùy chọn --delete nếu bạn muốn đồng bộ hóa thư mục cục bộ và từ xa. Hãy cẩn thận khi sử dụng tùy chọn này vì nó sẽ xóa các tệp trong thư mục đích nếu chúng không tồn tại trong thư mục nguồn.

rsync -a --delete /home/linuxize/images/ [email protected]:/var/www/images/

Nếu SSH trên máy chủ từ xa đang nghe trên một cổng khác với 22 mặc định, hãy chỉ định cổng bằng tùy chọn -e . Ví dụ: nếu SSH đang nghe trên cổng 3322 bạn sẽ sử dụng:

rsync -a -e "ssh -p 3322" /home/linuxize/images/ [email protected]:/var/www/images/

Khi truyền một lượng lớn dữ liệu, nên chạy lệnh rsync bên trong phiên màn hình hoặc sử dụng tùy chọn -P để thông báo cho rsync để hiển thị thanh tiến trình trong quá trình truyền và giữ các tệp được truyền một phần:

rsync -a -P /home/linuxize/images/ [email protected]:/var/www/images/

Phần kết luận

Chúng tôi đã chỉ cho bạn cách sử dụng rsync qua SSH để sao chép và đồng bộ hóa các tệp và thư mục.

Bạn cũng có thể muốn đọc cách loại trừ các tệp hoặc thư mục bằng rsync .

Hãy để lại nhận xét nếu bạn có bất kỳ câu hỏi nào.

thiết bị đầu cuối rsync