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ì và 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
Contents
- SCP là gì ?
- Cài đặt công cụ SCP trên Linux
- 1. Verbose output
- 2. Chuyển nhiều file cùng lúc
- 3. Copy toàn bộ thư mục lên máy chủ remote
- 4. Copy file trên hai máy chủ remote
- 5. Tăng tốc độ chuyển file bằng cách nén file lại
- 6. Giới hạn băng thông có thể sử dụng
- 7. Kết nối với port khác mặc định trên máy chủ remote
- 8. Giữ nguyên các thuộc tính của file cần chuyển
- 9. Quiet mode
- 10. Chỉ định file private key SSH
- 11. Sử dụng file ssh_config khác mặc định
- 12. Sử dụng thuật toán mã hóa khác
- Tổng kết
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/