12 ví dụ sử dụng lệnh SCP để chuyển file/folder trên Linux

12 ví dụ về lệnh SCP để chuyển file/folder trên Linux | Chào các bạn, ở bài trước CuongQuach có giới thiệu SCP là gìcách hoạt động của giao thức này. Ở bài trước mình cũng có giới thiệu qua về câu lệnh cơ bản của SCP, trong bài này mình sẽ ví dụ cho các bạn 12 lệnh SCP để chuyển file/folder trên Linux để các bạn có thêm kiến thức sử dụng công cụ này nhé.

Có thể bạn cũng quan tâm chủ đề khác
Cài đặt Zabbix Server trên CentOS 7
Cài đặt osTicket trên CentOS 7 làm kênh Ticket Helpdesk
Tìm hiểu cấu trúc Debian/Ubuntu Repository cơ bản
Unix Time là gì ?
Cấu hình GRE Tunnel giữa 2 máy chủ Linux

SCP là gì ?

  • SCP (Secure Copy – Sao chép an toàn) là một ứng dụng sử dụng SSH để mã hóa toàn bộ quá trình chuyển tập tin.
  • SCP là lệnh dùng để di chuyển file dữ liệu giữa các máy tính chạy hệ điều hành Linux từ xa chỉ cần biết địa chỉ ip
  • SCP dùng ssh để di chuyển dữ liệu, có chế độ bảo mật giống như ssh.

Cài đặt công cụ SCP trên Linux

Thường thì công cụ lệnh SCP được cài sẵn trên Linux, nếu chưa có thì tiến hành cài đặt.

+ Ubuntu/Debian

# apt-get install scp

+ RedHat/Centos

# yum install scp

+ Cú pháp lệnh

scp [-pqrvBC46 ] [-F ssh_config ] [-S program ] [-P port ] [-c cipher ] [-i identity_file ] [-o ssh_option ] [[user@ ] host1 : file1 ] [... ] [[user@ ] host2 : file2 ]

1. Verbose output

Với Verbose output, chương trình SCP sẽ cho ra kết quả output với nhiều thông tin hơn về những gì chương trình thực thi ở background. Điều này thường sẽ có ích khi chương trình lỗi hoặc không thể hoàn tất request đến. Verbose output sẽ cho bạn thấy chính xác các thông tin chương trình hoạt động và có vấn đề như thế nào.

# scp -v ~/test.txt root@192.168.1.3:/root/help2356.txt
Executing: program /usr/bin/ssh host 192.168.1.3, user root, command scp -v -t /root/help2356.txt
OpenSSH_6.2p2 Ubuntu-6ubuntu0.1, OpenSSL 1.0.1e 11 Feb 2013
debug1: Reading configuration data /home/enlightened/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to 192.168.1.3 [192.168.1.3] port 22.
debug1: Connection established.
..... OUTPUT TRUNCATED

2. Chuyển nhiều file cùng lúc

Bạn có thể chuyển (transfer) nhiều file bằng cách chỉ định các file và cách nhau một “khoảng trắng” là được.

# scp foo.txt bar.txt username@remotehost:/path/directory/

Còn để copy file từ trên máy chủ remote về thư mục local của bạn thì bạn sử dụng lệnh sau:

# scp root@192.168.1.3:~/\{abc.log,cde.txt\} .

3. Copy toàn bộ thư mục lên máy chủ remote

Để copy toàn bộ thư mục từ máy chủ này đến máy chủ khác bạn thêm option ‘-r‘ và chỉ định thư mục nhé.

# scp -v -r ~/Downloads root@192.168.1.3:/root/Downloads

4. Copy file trên hai máy chủ remote

SCP có thể copy file từ một máy chủ remote này và chuyển đến một máy chủ remote khác với cách thực hiện như sau:

# scp user1@remotehost1:/some/remote/dir/foobar.txt user2@remotehost2:/some/remote/dir/

5. Tăng tốc độ chuyển file bằng cách nén file lại

Một option cực hay để tăng tốc độ truyền tải nhầm tiết kiệm thời gian và băng thông. Tất cả những gì bạn cần làm là bật option ‘–C‘ để nén file. Và kết quả file sẽ được nén để chuyển đi và giải nén khi tới đích.

# scp -vrC ~/Downloads root@192.168.1.3:/root/Downloads

Lệnh trên là ví dụ bạn muốn chuyển toàn bộ thư mục Downloads với option nén được bật, tốc độ chuyển file sẽ dựa trên mức độ các file có thể được nén.

6. Giới hạn băng thông có thể sử dụng

Nếu bạn không muốn SCP chiếm toàn bộ băng thông nơi bạn gửi file, hãy sử dụng option ‘–l‘ để giới hạn băng thông tối đa cho việc gửi file đi tính bằng Kbit/s.

# scp -vrC -l 400 ~/Downloads root@192.168.1.3:/root/Downloads

7. Kết nối với port khác mặc định trên máy chủ remote

Nếu trên máy chủ remote SSH deamon đang hoạt động với port khác 22, khi đó bạn cần nói cho SCP biết rằng phải request đến port khác này thông qua option ‘–P‘.

# scp -vC -P 2200 ~/test.txt root@192.168.1.3:/some/path/test.txt

8. Giữ nguyên các thuộc tính của file cần chuyển

Sử dụng option ‘–p‘ (không viết hoa) sẽ giúp file giữ nguyên các thuộc tính như thời gian chỉnh sửa file, thời gian truy cập file…

# scp -p ~/test.txt root@192.168.1.3:/some/path/test.txt

9. Quiet mode

Trong chế độ “im lặng” này, bạn bật bằng option ‘–q‘, output của SCP sẽ bị chặn và tiến độ thực hiện cũng sẽ không hiển thị ra nữa, cũng như các thông báo cũng mất ráo.

# scp -vCq ~/test.txt root@192.168.1.3:/some/path/test.txt

10. Chỉ định file private key SSH

Trường hợp này áp dụng khi bạn sử dụng xác thực SSH bằng key, bạn sẽ cần chỉ định file chứa private key.

# scp -vCq -i private_key.pem ~/test.txt root@192.168.1.3:/some/path/test.txt

11. Sử dụng file ssh_config khác mặc định

Bạn có thể sử dụng option ‘–F‘ để chỉnh định file ssh_config khác mặc định như sau:

# scp -vC -F /home/user/my_ssh_config ~/test.txt root@192.168.1.3:/some/path/test.txt

12. Sử dụng thuật toán mã hóa khác

SCP mặc định sử dụng thuật toán AES để mã hóa file truyền đi. Bạn có thể muốn sử dụng một thuận toán khác để tăng tốc độ chuyển file chẳng hạn, ví dụ như thuật toán blowfish và arcfour thì nhanh hơn AES (nhưng bảo mật lại kém hơn).

# scp -c blowfish -C ~/local_file.txt username@remotehost:/remote/path/file.txt

Tổng kết

Thông qua bài viết này bạn đã biết thêm các option hữu ích trong việc chuyển file sử dụng SCP rồi đúng không nào, hy vọng bài viết sẽ giúp ích cho các bạn. Cám ơn các bạn đã theo dõi CuongQuach.com nhé.

Nguồn: https://cuongquach.com/

Quách Chí Cường: Bạn đang theo dõi website "https://cuongquach.com/" nơi lưu trữ những kiến thức tổng hợp và chia sẻ cá nhân về Quản Trị Hệ Thống Dịch Vụ & Mạng, được xây dựng lại dưới nền tảng kinh nghiệm của bản thân mình, Quách Chí Cường. Hy vọng bạn sẽ thích nơi này !
Related Post