NỘI DUNG

Hosting tốc độ cao Vietnix - tốc độ tải trang trung bình dưới 1 giây
VPS siêu tốc Vietnix - trải nghiệm mượt mà, ổn định
05/09/2024
Lượt xem

Tìm hiểu chi tiết 5 ví dụ về cách lưu truyền, copy file an toàn bằng lệnh scp trong Linux

05/09/2024
10 phút đọc
Lượt xem

Đánh giá

5/5 - (186 bình chọn)

Lệnh scp trong Linux cho phép người dùng copy file và thư mục an toàn giữa hai vị trí khác nhau. Trong bài viết này, Vietnix sẽ hướng dẫn cho bạn cách sử dụng lệnh scp qua 5 ví dụ chi tiết, dễ hiểu. Cùng tham khảo ngay nhé!

Lệnh scp trong Linux là gì?

Lệnh scp trong Linux (còn gọi là secure copy) là công cụ giúp người dùng truyền tải file an toàn giữa các máy chủ (host). Dòng lệnh sử dụng mã hóa để bảo vệ dữ liệu trong quá trình truyền tải, đảm bảo tính bảo mật cho thông tin của bạn.

Lệnh Scp trong Linux
Lệnh Scp trong Linux

Ngoài ra, bạn có thể tham khảo các câu lệnh trong Linux khác để hiểu thêm chi tiết về hệ điều hành.

Cú pháp cơ bản của lệnh scp

Lệnh scp trong Linux có cú pháp cơ bản như sau:

scp [options] [[user@]host1:]source_file_or_directory ... [[user@]host2:]destination

Trong đó:

    • [options]: Tùy chọn bổ sung để điều chỉnh cách thức hoạt động của lệnh scp.
    • [[user@]host1:]: Vị trí của file xuất phát, thường sẽ nằm trên máy chủ local hoặc máy chủ remote.
    • : Số lượng file hoặc thư mục tại vị trí xuất phát  
    • source_file_or_directory: File hoặc thư mục cần sao chép từ máy chủ local.
    • [[user@]host2:]: Vị trí đích đến của file hoặc thư mục cần sao chép. Thông thường sẽ là máy chủ local hoặc máy chủ remote.
    • destination: Đường dẫn đến đích, là nơi lưu trữ file hoặc thư mục trên máy đích.

Lệnh scp sử dụng kết nối SSH để truyền tải dữ liệu. Vì vậy, bạn cần phải xác thực trên máy chủ đích bằng tạo ssh key hoặc mật khẩu.

Lưu ý:

  • Lệnh scp sẽ ghi đè file ở đích nếu file có cùng tên đã tồn tại.
  • Đối với file có kích thước lớn, bạn nên chạy lệnh scp trong màn hình hoặc phiên tmux để tránh gián đoạn kết nối.

5 tùy chọn sử dụng lệnh scp

Tùy chọn Mô tả
-Pport: Chỉ định vị trí cổng SSH kết nối trên máy chủ remote. (khác với cổng mặc định 22)
-PLưu giữ thông tin thời gian sửa đổi (mtime), thời gian truy cập (atime) và các chế độ (mode) của file tại máy chủ local khi copy.
-qBảo mật thông tin thời gian của tiến trình truyền dữ liệu.
-rCopy toàn bộ thư mục và nội dung bên trong  
-STên chương trình sử dụng cho kết nối được mã hóa. Chương trình phải đảm bảo các tùy chọn sử dụng .

Một số tùy chọn sử dụng thông dụng khác: 

  • -i: Chỉ định file khóa riêng để nhận diện.
  • -l: Giới hạn băng thông trong việc truyền dữ liệu.
  • -o: Chỉ định các tùy chọn bổ sung cho SSH

Ví dụ 1: Sử dụng lệnh scp để copy file từ máy chủ local sang hệ thống remote

Để copy file từ máy chủ local của bạn đến máy chủ từ xa (remote host), bạn có thể sử dụng lệnh scp (secure copy). Lệnh scp sử dụng kết nối SSH (Secure Shell) để truyền tải file an toàn và bảo mật.

Để copy file file.txt từ máy local đến thư mục /remote/directory trên máy chủ đích có địa chỉ IP 10.10.0.2 với tên người dùng remote_username, bạn có thể sử dụng lệnh sau:

scp file.txt remote_username@10.10.0.2:/remote/directory

Trong đó:

  • file.txt là tên của file cần copy.

  • remote_username là người dùng trên server hệ thống remote.

  • /remote/directory là đường dẫn của thư mục đích cần copy file đến.

Nếu không chỉ định directory hệ thống remote thì file sẽ được tự động copy vào home directory của remote user.

Sau khi thực thi lệnh, bạn sẽ được yêu cầu nhập mật khẩu để bắt đầu quá trình chuyển file:

remote_username@10.10.0.2's password: file.txt                             100%    0     0.0KB/s   00:00

Nếu không chỉ định tên file trong vị trí đích thì lệnh scp sẽ copy file rồi đặt tên gốc. Nếu muốn lưu file dưới một tên khác thì ta cần chỉ định tên file mới trong lệnh:

scp file.txt remote_username@10.10.0.2:/remote/directory/newfilename.txt

Ví dụ 2: Di chuyển file đến máy chủ remote qua vị trí cổng SSH

Giả sử, nếu SSH trên remote host (máy chủ từ xa) đang ở một cổng khác (mặc định là cổng 22) thì bạn có thể chỉ định cổng 2322 để di chuyển bằng tùy chọn -P:

scp -P 2322 file.txt remote_username@10.10.0.2:/remote/directory

Để di chuyển toàn bộ một thư mục, cú pháp cũng không có gì khác biệt nhiều vì bạn chỉ cần thêm flag -r để copy file và thư mục theo kiểu đệ quy (hàm sử dụng cũng chính là chính nó).

scp -r /local/directory remote_username@10.10.0.2:/remote/directory

Ví dụ 3: Copy file từ máy chủ remote đến hệ thống local bằng lệnh scp

Để copy file từ một máy chủ remote về máy local thì ta có thể dùng vị trí remote như điểm xuất phát và vị trí local như vị trí đích để copy file.

Chẳng hạn như bạn muốn copy file có tên file.txt từ remote server, địa chỉ IP là 10.10.0.2 về máy local thì có thể dùng lệnh sau:

scp remote_username@10.10.0.2:/remote/file.txt /local/directory

Ví dụ 4: Sử dụng lệnh sao chép file giữa hai hệ thống remote

Không giống như rsync, lệnh scp không yêu cầu người dùng phải đăng nhập vào một trong các server để truyền file ở các hệ thống remote.

Câu lệnh sau cho phép copy file /files/file.txt từ remote host host1.com đến thư mục /files trên remote host host2.com.

scp user1@host1.com:/files/file.txt user2@host2.com:/files

Sau đó ta sẽ được yêu cầu nhập mật khẩu cho hai tài khoản remote này. Dữ liệu sẽ được truyền trực tiếp từ một host đến host khác.

Để thực thi lệnh, ta có thể truyền thêm tùy chọn -3 như sau:

scp -3 user1@host1.com:/files/file.txt user2@host2.com:/files

Ví dụ 5: Copy file với chế độ riêng tư bằng lệnh scp

Bạn có thể sao chép file an toàn với chế độ riêng tư bằng lệnh Scp trong Linux. Khi thực hiện, toàn bộ quá trình sao chép sẽ bị ẩn. 

Giả sử, khi bạn sao chép file test4.txt từ máy chủ local sang máy remote có địa chỉ IP 10.143.90.2, user là jayesh và vị trí đường dẫn thư mục tại /home/jayesh/

Bạn cần thực hiện lệnh theo cú pháp: 

scp -q test4.txt jayesh@10.143.90.2:/home/jayesh/

Toàn bộ thông tin quá trình sao chép file lúc này sẽ được ẩn

Toàn bộ thông tin quá trình sao chép file lúc này sẽ được ẩn
Toàn bộ thông tin quá trình sao chép file lúc này sẽ được ẩn

Để xác minh quá trình, bạn hãy sử dụng lệnh ls tại máy chủ remote tại ví trí đã sao chép file.

Để xác minh quá trình, bạn sử dụng lệnh ls tại máy chủ từ xa tai ví trí đã sao chép file.
Để xác minh quá trình, bạn sử dụng lệnh ls tại máy chủ từ xa tai ví trí đã sao chép file.

Câu hỏi thường gặp

Lệnh scp có thể sao chép file qua mạng Internet không?

Có thể. Bạn có thể sao chép bằng dòng lệnh nhờ sự linh hoạt qua giao thức SSH.

Lệnh scp có thể sao chép thư mục không?

Có thể. Bạn có thể sao chép thư mục bằng cách thêm tùy chọn -r vào cú pháp cơ bản của dòng lệnh

Sự khác biệt giữa lệnh scpsftp trong Linux là gì?

scp: Thực hiện sao chép file một cách nhanh chóng và đơn giản.
sftp: Thực hiện các hoạt động quản lý file phức tạp hơn, như tạo thư mục, đổi tên file, hoặc tạo một giao diện tương tác để làm việc với các file từ xa.

Lời kết

Bài viết này đã hướng dẫn cách sử dụng lệnh scp trong Linux để copy file giữa các máy local và remote với nhau, hay thậm chí là giữa hai máy remote. Bạn có thể thiết lập thêm xác thực dựa trên key ssh để kết nối đến server Linux mà không cần nhập mật khẩu, hoặc nếu thường xuyên kết nối đến một hệ thống nào đó thì có thể định nghĩa các kết nối trong file config SSH để đơn giản hóa các quá trình sau này.

THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM

Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày

Chọn chủ đề :

Hưng Nguyễn

Co-Founder
tại

Kết nối với mình qua

Kết nối với mình qua

Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận

Tăng tốc độ website - Nâng tầm giá trị thương hiệu

Tăng tốc tải trang

95 điểm

Nâng cao trải nghiệm người dùng

Tăng 8% tỷ lệ chuyển đổi

Thúc đẩy SEO, Google Ads hiệu quả

Tăng tốc ngay

SẢN PHẨM NỔI BẬT

7 NGÀY DÙNG THỬ HOSTING

NẮM BẮT CƠ HỘI, THÀNH CÔNG DẪN LỐI

Cùng trải nghiệm dịch vụ hosting tốc độ cao được hơn 100,000 khách hàng sử dụng

ĐĂNG KÝ NHẬN TÀI LIỆU THÀNH CÔNG
Cảm ơn bạn đã đăng ký nhận tài liệu mới nhất từ Vietnix!
ĐÓNG

ĐĂNG KÝ DÙNG THỬ HOSTING

7 NGÀY MIỄN PHÍ

ĐĂNG KÝ DÙNG THỬ HOSTING

7 NGÀY MIỄN PHÍ

XÁC NHẬN ĐĂNG KÝ DÙNG THỬ THÀNH CÔNG
Cảm ơn bạn đã đăng ký thông tin thành công. Đội ngũ CSKH sẽ liên hệ trực tiếp để kích hoạt dịch vụ cho bạn nhanh nhất!
ĐÓNG