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
12/05/2024
Lượt xem

Hướng dẫn cách sử dụng lệnh SCP để chuyển file, thư mục

12/05/2024
5 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. Bài viết này sẽ hướng dẫn cho bạn cách sử dụng lệnh scp kèm theo các ví dụ trực quan, dễ hiểu. Cùng tham khảo ngay nhé!

Cú pháp của lệnh scp trong Linux

Lệnh scp (secure copy) là một công cụ mạnh mẽ trong Linux cho phép truyền tải file an toàn giữa các máy chủ (host). Lệnh này 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.

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

scp [options] [source] [destination]

Trong đó:

  • Options: Tùy chọn bổ sung cho lệnh scp.
  • Source: Đường dẫn đến file hoặc thư mục nguồn cần sao chép.
  • Destination: Đường dẫn đến vị trí đích để lưu file hoặc thư mục.

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 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.

Cách copy file và thư mục bằng lệnh scp trong Linux

Copy file local đến hệ thống remote

Để copy file từ máy 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, còn remote_username là user trên server ở xa, 10.10.0.2 là địa chỉ IP của server, /remote/directory là đường dẫn của thư mục đích cần copy file đến. Nếu không chỉ định directory ở xa 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

Nếu SSH trên remote host đang nghe ở một cổng khác (mặc định là cổng 22) thì bạn có thể chỉ định cổng bằng option -P:

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

Để copy 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.

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

Copy một file remote đến hệ thống local

Để copy file từ một vị trí ở xa về máy local thì ta có thể dùng vị trí remote như nguồn 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

Copy 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 từ xa.

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.

Để định tuyến traffic qua máy thực thi lệnh, ta có thể truyền thêm option -3 như sau:

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

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