Gặp khó khăn với lệnh sao chép an toàn của Linux? Hãy xem ví dụ sau đây | Học trực tuyến CNTT, học lập trình từ cơ bản đến nâng cao

Gặp khó khăn với lệnh sao chép an toàn của Linux? Hãy xem ví dụ sau đây

Chia sẻ kiến thức 05/03/2022

Bạn có phải vật lộn với cú pháp đáng sợ của lệnh scp trong Linux không? Hãy xem các ví dụ scp sau đây để hiểu rõ hơn về lệnh này.

Bạn có phải vật lộn với cú pháp đáng sợ của lệnh scp trong Linux không? Hãy xem các ví dụ scp sau đây để hiểu rõ hơn về lệnh này.

Lệnh scp cho phép bạn sao chép file (tệp) hiệu quả giữa hai máy chủ khác nhau. Cú pháp của scp sử dụng lại cú pháp của cp, vì vậy hầu hết người dùng Linux sẽ cảm thấy nó rất quen thuộc.

Một điều cần chú ý với lệnh scp là nguồn hoặc đích có thể ở xa, nghĩa là một máy tính được kết nối với mạng (network) khác với mạng cục bộ của bạn. Khi chỉ định một tệp để sao chép, bạn cũng cần phải bao gồm thông tin chi tiết về máy chủ lưu trữ từ xa. Điều này bao gồm địa chỉ IP và tên người dùng của nó.

Tải lên tệp bằng lệnh scp

Cú pháp scp chung là:

scp source destination

Lưu ý rằng đây về cơ bản là cú pháp giống như lệnh cp .

Ví dụ scp đơn giản nhất là ví dụ mà bạn có thể sử dụng nhiều nhất: tải file từ máy cục bộ của bạn lên máy chủ từ xa. Trong trường hợp này, phần source (nguồn) của lệnh đơn giản và phần destination (đích) phức tạp hơn:

scp index.html bobby@example.org:/var/www/html/

Thao tác này sẽ sao chép file cục bộ có tên index.html vào máy chủ lưu trữ từ xa. Bạn có thể chỉ định file này giống như cách bạn chỉ định file cho bất kỳ lệnh nào khác. Nó có thể là một tham chiếu (reference) tuyệt đối hoặc tương đối đến file. Vì vậy,   index.html../index.html, và /home/bobby/index.html  là những cách khác nhau mà bạn có thể sử dụng để chỉ định một file cục bộ. 

Đích đến trong ví dụ là bobby @ example.org:/var/www/html/. Điều này có nghĩa rằng:

  1. Người dùng Bobby sẽ là chủ sở hữu của tệp mới trên máy chủ từ xa. Người dùng đó cần phải tồn tại và bạn sẽ có thể truy cập nó.
  2. Tên  của máy chủ mà chúng ta sẽ tải tệp lên là example.org. Ở đây chúng ta đã chỉ định miền, nhưng bạn cũng có thể sử dụng địa chỉ IP để thay thế.
  3. Trên máy chủ đó, scp sẽ tải tệp lên thư mục  /var/www/html/.

Khi bạn nhập lệnh đó, terminal của bạn thường sẽ nhắc bạn nhập mật khẩu của người dùng mà bạn đã chỉ định trên máy chủ từ xa.

Tải xuống Toàn bộ Thư mục

Đây là một biến thể phức tạp hơn một chút và có thể giúp bạn tải xuống toàn bộ một thư mục (folder/directory):

scp -rpC bobby@example.org:/tmp/docs /home/bobby

Đầu tiên, bạn cần lưu ý rằng source bây giờ là một máy từ xa, trong khi destination là máy cục bộ. Ngoài việc hoán đổi thứ tự, các chi tiết nguồn và đích này cũng giống như ở trên. Nhưng ví dụ này cũng giới thiệu ba cờ hữu ích:

  1. -r:  Tải xuống đệ quy toàn bộ thư mục. Nó sẽ chuyển tất cả các tệp bên trong /tmp/docs. Điều này rất hữu ích để sao lưu nhanh hoặc chuyển file ở số lượng lớn, đặc biệt nếu bạn không có quyền truy cập đăng nhập vào máy chủ từ xa.
  2. -p:  Lưu giữ dấu thời gian và chế độ của tệp gốc. Các bản sao cục bộ của bạn sẽ có cùng thời gian tạo hoặc quyền ghi như bản gốc của chúng.
  3. -C:  Cho phép nén. Nếu bạn đang chuyển nhiều tệp, điều này có thể giúp tăng tốc độ chuyển, đặc biệt nếu bạn đang sử dụng kết nối chậm.

Lệnh scp dễ gần bằng cp

Cách sử dụng cơ bản của lệnh scp rất dễ dàng: nó giống như cp. Sự khác biệt chính là scp cần thêm một số chi tiết cho máy chủ từ xa. Tuy nhiên, cũng như với cp, có những cờ hữu ích để mở rộng chức năng cơ sở. Chúng bao gồm nén và sao chép đệ quy để giúp tải xuống nhiều tệp.

Nắm vững lệnh scp có thể hữu ích nếu bạn được yêu cầu quản lý một máy chủ Linux. Thực hiện sao lưu và truyền dữ liệu từ xa là công việc hàng ngày đối với những người làm công việc quản trị máy chủ.

Dịch từ: https://www.makeuseof.com/scp-example/

Vân Nguyễn

ĐĂNG KÝ TƯ VẤN HỌC LẬP TRÌNH TẠI FUNiX

Bình luận (
0
)

Bài liên quan

  • Tầng 0, tòa nhà FPT, 17 Duy Tân, Q. Cầu Giấy, Hà Nội
  • info@funix.edu.vn
  • 0782313602 (Zalo, Viber)        
Chat Button
Chat với FUNiX GPT ×

yêu cầu gọi lại

error: Content is protected !!