Download app

Quét mã QR để tải về ứng dụng

QR code

10 Lệnh SCP để Truyền Tệp/Thư mục trong Linux

12/08/2021, 02:53 pm
655

Các quản trị viên Linux nên dần làm quen với môi trường CLI. Lý do là vì chế độ GUI trong máy chủ Linux không được cài đặt rộng rãi. SSH có thể là giao thức phổ biến nhất cho phép quản trị viên Linux quản lý các máy chủ thông qua cách bảo mật từ xa. Tích hợp lệnh SSH có lệnh SCP. SCP được sử dụng để sao chép (các) tệp giữa các máy chủ một cách an toàn.

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

Lệnh dưới đây sẽ được đọc là “sao chép source_file_name” vào “destination_folder” tại “destination_host” bằng cách sử dụng “tài khoản tên người dùng”.

scp source_file_name username@destination_host:destination_folder

tên người dùng scp source_file_name @ destination_host: destination_folder

Có nhiều tham số trong lệnh SCP mà bạn có thể sử dụng. Dưới đây là các thông số có thể sử dụng thường xuyên.

Cung cấp thông tin chi tiết của quá trình SCP sử dụng tham số -v

Về cơ bản lệnh SCP không có tham số sẽ sao chép các tệp ở chế độ nền. Người dùng sẽ không thấy gì trừ khi quá trình được thực hiện hoặc một số lỗi xuất hiện.

Bạn có thể sử dụng tham số  “-v” để in thông tin gỡ lỗi ra màn hình. Nó có thể giúp bạn gỡ lỗi các vấn đề về kết nối, xác thực và cấu hình.

pungki@mint ~/Documents $ scp -v Label.pdf mrarianto @@ 202.xxx:.

Đầu ra mẫu

SCP Hiển thị tiến trình trong khi sao chép tệp 

Đang thực thi: chương trình /usr/bin/ssh host 202.xxx, user marianto, lệnh scp -v -t.

OpenSSH_6.0p1 Debian-3, OpenSSL 1.0.1c 10 tháng 5 năm 2012

debug1: Đọc dữ liệu cấu hình /etc/ssh/ssh_config

debug1: /etc/ssh/ssh_config dòng 19: Áp dụng các tùy chọn cho *

debug1: Connecting to 202.xxx [202. xxx] port 22.

debug1: Kết nối được thiết lập.

debug1: Máy chủ '202.xxx' được biết và khớp với khóa máy chủ RSA.

debug1: Tìm thấy khóa trong /home/pungki/.ssh/known_hosts:1

debug1: ssh_rsa_verify: signature correct

debug1: Phương pháp xác thực tiếp theo: password của

mrarianto@202.xxx's password:

debug1: Xác thực thành công (mật khẩu).

Đã xác thực thành 202.xxx ([202.xxx]: 22).

Chế độ gửi tệp: C0770 3760348 Label.pdf

Sink: C0770 3760348 Label.pdf

Label.pdf 100% 3672KB 136.0KB/s 00:27

Đã chuyển: đã gửi 3766304, nhận được 3000 byte, trong 65,2 giây

Byte mỗi giây: gửi 57766,4, nhận được 46,0

debug1: Thoát trạng thái 0

Cung cấp những lần sửa đổi, thời gian truy cập và các phương thức từ các tập tin gốc

Tham số “-p”  sẽ giúp bạn thực hiện điều này. Thời gian ước tính và tốc độ kết nối sẽ xuất hiện trên màn hình.

pungki@mint ~/Documents $ scp -p Label.pdf marianto@202.xxx:.

Đầu ra mẫu

SCP Ước tính thời gian cần thiết để sao chép tệp lớn

Mật khẩu của marianto@202.xxx:

Label.pdf 100% 3672KB 126,6KB/s 00:29

Thực hiện truyền tệp nhanh hơn bằng cách sử dụng tham số -c

Một trong những tham số có thể truyền tệp của bạn nhanh hơn là các tham số “C”. Tham số “C”  sẽ nén tập tin của bạn trong lúc truyền đi. Điều duy nhất là nén tệp chỉ xảy ra trong network. Khi tệp đã đến máy chủ đích, tệp sẽ trở lại kích thước ban đầu như trước khi quá trình nén diễn ra.

Hãy xem các lệnh này. Nó đang sử dụng một tệp duy nhất có dung lượng 93MB.

pungki@mint ~/Documents $ scp -pv messages.log mrarianto@202.xxx:.

Đầu ra mẫu

SCP Truyền tệp mà không cần nén

Thực thi: chương trình /usr/bin/ssh host 202.xxx, user mrarianto, lệnh scp -v -p -t.

OpenSSH_6.0p1 Debian-3, OpenSSL 1.0.1c 10 tháng 5 năm 2012

debug1: Đọc dữ liệu cấu hình /etc/ssh/ssh_config

debug1: /etc/ssh/ssh_config dòng 19: Áp dụng các tùy chọn cho *

debug1: Connecting to 202.xxx [202. xxx] port 22.

debug1: Kết nối được thiết lập.

debug1: danh tính tệp /home/pungki/.ssh/id_rsa type -1

debug1: Tìm thấy khóa trong /home/pungki/.ssh/known_hosts:1

debug1: ssh_rsa_verify: signature đúng

debug1: Đang thử khóa riêng: /home/pungki/.ssh/id_rsa

debug1: Phương pháp xác thực tiếp theo: mật khẩu

mrarianto@202.xxx's password:

debug1: Xác thực thành công (mật khẩu).

Đã xác thực thành 202.xxx ([202.xxx]: 22).

debug1: Gửi lệnh: scp -v -p -t.

Tệp mtime 1323853868 atime 1380425711

Đang gửi dấu thời gian tệp: T1323853868 0 1380425711 0

messages.log 100% 93MB 58,6KB/s 27:05

Đã chuyển: đã gửi 97614832, nhận được 25976 byte, trong 1661,3 giây

Byte mỗi giây: đã gửi 58758,4, nhận được 15,6 

debug1: Thoát trạng thái 0

Việc sao chép các tập tin không có tham số -C sẽ mất 1661,3 giây. Bạn có thể so sánh kết quả với lệnh dưới đây bằng cách sử dụng tham số “-C”.

pungki@mint ~ /Documents $ scp -Cpv messages.log mrarianto@202.xxx:.

Đầu ra mẫu

SCP Truyền tệp nhanh hơn bằng cách sử dụng compression

thực thi: chương trình /usr/bin/ssh host 202.xxx, user mrarianto, lệnh scp -v -p -t.

OpenSSH_6.0p1 Debian-3, OpenSSL 1.0.1c 10 tháng 5 năm 2012

debug1: Đọc dữ liệu cấu hình /etc/ssh/ssh_config

debug1: /etc/ssh/ssh_config dòng 19: Áp dụng các tùy chọn cho *

debug1: Connecting to 202.xxx [202. xxx] port 22.

debug1: Kết nối được thiết lập.

debug1: tệp nhận dạng /home/pungki/.ssh/id_rsa loại -1

debug1: Máy chủ '202.xxx' được biết và khớp với khóa máy chủ RSA.

debug1: Tìm thấy khóa trong /home/pungki/.ssh/known_hosts:1

debug1: ssh_rsa_verify: signature true

debug1: Phương pháp xác thực tiếp theo: publickey

debug1: Thử khóa riêng: /home/pungki/.ssh/id_rsa

debug1: Phương thức xác thực tiếp theo: password 

mrarianto@202.xxx's password:

debug1: Bật nén ở mức 6.

debug1: Xác thực thành công (mật khẩu).

Đã xác thực thành 202.xxx ([202.xxx]: 22).

debug1: channel 0: new [client-session]

debug1: Gửi lệnh: scp -v -p -t.

Tệp mtime 1323853868 atime 1380428748

Gửi dấu thời gian tệp: T1323853868 0 1380428748 0

Chìm: T1323853868 0 1380428748 0

Chế độ gửi tệp: C0600 97517300 tin nhắn. Nhật ký tin nhắn.log

100% 93MB 602,7KB/s 02:38

Đã chuyển: đã gửi 8905840 trong 162,5 giây

Byte mỗi giây: đã gửi 54813,9, nhận được 97,0 

debug1: Trạng thái thoát 0

debug1: Nén gửi đi: dữ liệu thô 97571111, nén 8806191, yếu tố 0,09 

debug1: Nén đến: dữ liệu thô 7885, nén 3821, hệ số 0,48

Như bạn có thể thấy, khi bạn đang sử dụng tính năng nén, quá trình truyền dữ liệu được thực hiện trong 162,5 giây. Nó nhanh hơn 10 lần so với việc không sử dụng tham số “-C”. Nếu bạn đang sao chép nhiều tệp trên mạng, tham số -C sẽ giúp bạn giảm tổng thời gian bạn cần.

Điều mà chúng ta cần lưu ý là phương pháp nén sẽ không hoạt động trên bất kỳ tệp nào. Khi tệp nguồn đã được nén, bạn sẽ không tìm thấy bất kỳ cải thiện nâng cao nào ở đó. Các tệp như tệp .zip, .rar, hình ảnh và tệp .iso sẽ không bị ảnh hưởng bởi tham số “-C”.

Thay đổi mật mã SCP để mã hóa tệp

Theo mặc định, SCP sử dụng “AES-128” để mã hóa tệp. Nếu bạn muốn thay đổi mật mã khác để mã hóa nó, bạn có thể sử dụng tham số -c. Hãy xem lệnh này.

pungki@mint ~/Tài liệu $ scp -c 3des Label.pdf mrarianto@202.xxx:.

Mật khẩu của mrarianto@202.xxx:

Label.pdf 100% 3672KB 282.5KB/s 00:13

Lệnh trên yêu cầu SCP sử dụng thuật toán 3des để mã hóa tệp. Hãy chú ý rằng tham số này sử dụng "-c" không phải "-C".

Hạn chế sử dụng băng thông với lệnh SCP

Một tham số khác có thể hữu ích là tham số -l. Thamsố “-l” sẽ hạn chế sử dụng băng thông.Sẽ rất hữu ích nếu bạn thực hiện một kịch bản tự động hóa để sao chép nhiều tệp, nhưng bạn không muốn rút hết băng thông của quá trình SCP.

pungki@mint ~/Documents $ scp -l 400 Label.pdf mrarianto@202.xxx:.

mật khẩu mrarianto@202.xxx's:

Label.pdf 100% 3672KB 50.3KB/s 01:13

Giá trị 400 đằng sau thamsố “-l” là trung bình mà chúng tôi giới hạn băng thông cho quá trình SCP chỉ 50KB /giây.Một điều cần nhớ là băng thông được chỉ định bằng Kilobits/giây (kbps). Có nghĩa là 8 bit bằng 1 byte.

Trong khi đó SCP được tính bằng Kilobyte/giây (KB/s). Vì vậy, nếu bạn muốn giới hạn băng thông của mình cho SCP tối đa chỉ là 50KB/s, bạn cần đặt nó thành 50 x 8 = 400.

Chỉ định cổng cụ thể để sử dụng với SCP

Thông thường, SCP sử dụng cổng 22 làm cổng mặc định. Nhưng vì lý do bảo mật, bạn có thể thay đổi cổng này thành cổng khác. Ví dụ: chúng tôi đang sử dụng cổng 2249. Sau đó, lệnh sẽ như thế này.

pungki@mint ~/Documents $ scp -P 2249 Label.pdf mrarianto@202.xxx:.

Mật khẩu của mrarianto@202.xxx:

Label.pdf 100% 3672KB 262.3KB/s 00:14

Đảm bảo rằng nó sử dụng chữ viết hoa “P” chứ không phải “p” vì “p” đã được sử dụng cho các chế độ và thời gian được bảo toàn.

Sao chép các mục bên trong thư mục một cách đệ quy

Đôi khi chúng ta cần sao chép thư mục và tất cả các tệp/thư mục bên trong nó. Sẽ tốt hơn nếu chúng ta có thể thực hiện nó trong 1 lệnh. SCP hỗ trợ tình huống đó bằng cách sử dụng tham số -r.

pungki@mint ~/Tài liệu $ scp -r tài liệu mrarianto@202.xxx:.

Mật khẩu của mrarianto@202.xxx:

Label.pdf 100% 3672KB 282,5KB/s 00:13

scp.txt 100% 10KB 9,8KB/s 00:00

Khi quá trình sao chép hoàn tất, tại máy chủ đích, bạn sẽ tìm thấy một thư mục có tên "Tài liệu" với tất cả các tệp của nó. Thư mục “tài liệu” được tạo tự động.

Vô hiệu hóa đồng hồ đo tiến trình và cảnh báo

Nếu bạn chọn không nhìn thấy đồng hồ đo tiến trình và thông báo cảnh báo/chẩn đoán từ SCP, bạn có thể vô hiệu hóa nó bằng cách sử dụng tham số -q. Đây là ví dụ:

pungki@mint ~/Documents $ scp -q Label.pdf mrarianto@202.xxx:.

Mật khẩu của mrarianto@202.xxx:

pungki @ mint ~/Documents $

Như bạn thấy, sau khi bạn nhập mật khẩu, không có thông tin nào về quá trình SCP. Sau khi quá trình hoàn tất, bạn sẽ thấy một thông báo nhắc lại.

Sao chép tệp bằng SCP thông qua Proxy

Máy chủ proxy thường được sử dụng trong môi trường văn phòng. Về cơ bản, SCP không được định cấu hình proxy. Khi môi trường của bạn sử dụng proxy, bạn phải “điều hướng” SCP làm việc với proxy.

Đây là tình huống. Địa chỉ proxy là 10.0.96.6 và cổng proxy là 8080. Proxy cũng triển khai xác thực người dùng. Đầu tiên, bạn cần tạo tệp “~/.ssh/config”. Thứ hai, bạn đặt lệnh này bên trong nó.

ProxyCommand /usr/bin/corkscrew 10.0.96.6 8080% h% p ~/.ssh/proxyauth

Sau đó, bạn cần tạo tệp có chứa “~/.ssh/proxyauth”.

myusername: mypassword

Sau đó, bạn có thể thực hiện SCP một cách minh bạch như bình thường.

Lưu ý rằng corkscrew có thể chưa được cài đặt trên hệ thống của bạn. Trên Linux Mint của tôi, trước tiên tôi cần cài đặt nó bằng cách sử dụng quy trình cài đặt Linux Mint tiêu chuẩn.

$ apt-get install corkscrew

Đối với các hệ thống dựa trên yum khác, người dùng có thể cài đặt corkscrew bằng lệnh yum sau.

# yum install corkscrew

Một điều nữa là vì tệp “~/.ssh/proxyauth” chứa “tên người dùng” và “mật khẩu” của bạn ở định dạng văn bản rõ ràng, hãy đảm bảo rằng chỉ bạn mới có thể truy cập tệp.

Chọn tệp SSH_Config khác

Đối với người dùng di động thường xuyên chuyển đổi giữa mạng công ty và mạng công cộng, sẽ rất khó khăn khi phải luôn thay đổi cài đặt trong SCP. Sẽ tốt hơn nếu chúng ta có thể đặt một tệp ssh_config khác để phù hợp với nhu cầu của mình.

Dưới đây là một tình huống mẫu

Proxy được sử dụng trong mạng công ty nhưng không sử dụng trong mạng công cộng và bạn thường xuyên chuyển đổi mạng.

pungki@mint ~/Documents $ scp -F/home/pungki/proxy_ssh_config Label.pdf

mrarianto@202.xxx :.

Mật khẩu của mrarianto@202.xxx:

Label.pdf 100% 3672KB 282.5KB/s 00:13

Theo mặc định, tệp ssh_config cho mỗi người dùng sẽ được đặt trong “~/.ssh/config“. Tạo một tệp cụ thể “ssh_config”có khả năng tương thích với proxy sẽ giúp chuyển đổi giữa các mạng dễ dàng hơn.

Khi bạn đang sử dụng mạng công ty, bạn có thể sử dụng tham số “-F”. Khi sử dụng mạng công cộng, bạn có thể bỏ qua tham số “-F”.

Đó là tất cả về SCP. Bạn có thể xem các trang về SCP để biết thêm chi tiết. Hãy để lại ý kiến ​​và đề xuất dưới bài viết này nhé!

+ Fanpage: https://www.facebook.com/nhanhoacom

+ Chỉ đường: https://g.page/nhanhoacom

+ Chương trình khuyến mãi mới nhất: https://nhanhoa.com/khuyen-mai.html

————————————————————

CÔNG TY TNHH PHẦN MỀM NH N HÒA

https://nhanhoa.com

Hotline: 1900 6680

Trụ sở chính: Tầng 4 - Tòa nhà 97-99 Láng Hạ, Đống Đa, Hà Nội

Tel: (024) 7308 6680 – Email: sales@nhanhoa.com

Chi nhánh TP. Hồ Chí Minh: 270 Cao Thắng (nối dài), Phường 12, Quận 10, Tp.HCM

Tel: (028) 7308 6680 – Email: hcmsales@nhanhoa.com

Chi nhánh Vinh - Nghệ An: Tầng 2 Tòa nhà Sài Gòn Sky, ngõ 26 Nguyễn Thái Học, phường Đội Cung, TP. Vinh, Nghệ An

Tel: 0915221384 – Email: contact@nhanhoa.com

Bài viết liên quan
20/11/2024
Các fan cứng của Nhân Hòa đã biết Chương trình Black Friday 2024 sẽ có mức ưu đãi khủng là bao nhiêu % và áp dụng cho những...
19/11/2024
Đừng để website của bạn bị "tắt đèn" vì hết hạn tên miền! Hãy chủ động gia hạn tên miền để đảm bảo sự liên...
16/11/2024
Không phải bàn cãi việc WordPress đang là một trong những nền tảng hàng đầu trong việc xây dựng website hiện nay. Và giải...
Chuyên nghiệp và tận tình
Hỗ Trợ Trực Tuyến 24/7
Đội ngũ chuyên gia giúp xử lý vấn đề kỹ thuật để website của bạn luôn hoạt động tốt và chạy nhanh. Bất kỳ lúc nào.
Kết nối với Nhân Hoà

Map Tầng 4 - Toà nhà 97 - 99 Láng Hạ, Quận Đống Đa, Thành Phố Hà Nội

Phone Điện thoại: 1900 6680 - (024) 7308 6680

Mail Mail: sales@nhanhoa.com

Hotline Phản ánh chất lượng dịch vụ: 091 140 8966

Map 927/1 CMT8, Phường 7, Quận Tân Bình, Thành phố Hồ Chí Minh

Phone Điện thoại: 1900 6680 - (028) 7308 6680

Mail Mail: hcmsales@nhanhoa.com

Hotline Phản ánh chất lượng dịch vụ: 091 140 8966

Map Tầng 2 Tòa nhà Sài Gòn Sky, ngõ 26 Nguyễn Thái Học, phường Đội Cung, TP. Vinh, Nghệ An

Phone Điện thoại: 1900 6680 - (024) 7308 6680 - nhánh 6

Mail Mail: contact@nhanhoa.com

Hotline Phản ánh chất lượng dịch vụ: 091 140 8966

Kết nối với Nhân Hoà
Gọi lại cho tôi
Gọi miễn phí
Gọi miễn phí
×
Thông báo

Đăng nhập thành công!