Cách sử dụng Lệnh SCP trong Linux

Hướng dẫn dễ dàng giúp bạn chuyển tệp sang hệ thống từ xa từ hệ thống Linux của bạn bằng lệnh scp.

SCP là viết tắt của 'Bản sao Bảo mật'. scplà một tiện ích dòng lệnh được cung cấp bởi Linux, cho phép chuyển các tệp và thư mục từ máy này sang máy khác qua một mạng không an toàn.

Nếu bạn muốn sao chép tệp từ hệ thống này sang hệ thống khác, thì đây scpcó thể là một lựa chọn rất tốt để thực hiện chuyển tệp và thư mục một cách an toàn. Khi hai máy giao tiếp được kết nối qua cùng một mạng, thì việc sử dụng scptrở nên khả thi.

Bạn hoàn toàn có thể tin tưởng vào scplệnh để bảo mật và toàn vẹn vì tệp đang được chuyển và mật khẩu được sử dụng để chuyển đều được mã hóa. Không có thông tin nhạy cảm nào sẽ được tiết lộ ngay cả khi bất kỳ ai cố gắng rình mò lưu lượng truy cập trong khi quá trình chuyển giao này đang diễn ra.

Trong hướng dẫn này, chúng ta sẽ thấy các ví dụ khác nhau về scplệnh. Chúng ta cũng sẽ xem xét một số tùy chọn thường được sử dụng với scplệnh.

Bắt đầu với lệnh scp

Sử dụng scplệnh, bạn có thể chuyển tệp / thư mục:

  • Từ máy cục bộ của bạn đến một máy từ xa.
  • Giữa hai máy từ xa.
  • Từ một máy từ xa đến máy cục bộ của bạn.

Cú pháp chung:

scp [Option] [source_file_name] [[email protected]_Host]:destination_folder

Hãy để chúng tôi hiểu từng thuộc tính cơ bản của lệnh này.

  • [source_file_name] Đây là tệp nguồn mà bạn muốn sao chép.
  • [ [email protected] _Host] Đây là tên người dùng của hệ thống từ xa nơi bạn muốn sao chép tệp. Địa chỉ IP của máy từ xa cũng được sử dụng trong thuộc tính này sau @biểu tượng ''.
  • [target_folder] Đây là thư mục mà bạn muốn lưu tệp đã sao chép.

Lưu ý:: Biểu tượng dấu hai chấm ( ) được sử dụng trong cú pháp vì nó phân biệt giữa các vị trí cục bộ và từ xa. Chúng tôi sử dụng dấu hai chấm ( :) với hệ thống từ xa để chỉ định thư mục mà các tệp sẽ được sao chép vào. Trong trường hợp chúng tôi không chỉ định thư mục đích, thì các tệp sẽ được sao chép vào thư mục chính của người dùng hệ thống từ xa.

Các tùy chọn được sử dụng với scp

Một số tùy chọn phổ biến nhất được sử dụng với scplệnh được liệt kê bên dưới.

Lựa chọn Sự miêu tả
-C cho phép nén tệp được chuyển
-v đưa ra đầu ra dài dòng
-r sao chép các tệp và thư mục một cách đệ quy
-p bảo toàn quyền, chế độ và thời gian truy cập tệp
-P thay đổi cổng mặc định được sử dụng bằng scplệnh

Các tùy chọn thường được sử dụng với lệnh scp

Chúng ta sẽ xem thêm các ví dụ về các tùy chọn này trong phần hướng dẫn.

Sao chép tệp từ cục bộ sang hệ thống từ xa

scpcho phép bạn chuyển tệp từ hệ thống cục bộ của mình sang hệ thống từ xa bằng cú pháp sau. Điều này cho phép bạn chuyển hoặc tải các tệp của mình lên một máy chủ được đặt từ xa.

Cú pháp chung:

scp [file_name] [email protected]:[destination_folder]

Thí dụ:

scp apache-tomcat-9.0.8.tar.gz [email protected]:gaurav

Trong ví dụ này, chúng tôi đang sao chép tệp 'apache-tomcat-9.0.8.tar.gz' từ hệ thống cục bộ sang hệ thống từ xa có địa chỉ IP là '143.110.178.221'.

Trên hệ thống từ xa, tệp sẽ được sao chép vào thư mục có tên 'gaurav'.

Đầu ra:

[email protected]:~$ scp apache-tomcat-9.0.8.tar.gz [email protected]:gaurav
[email protected]'s password: 
apache-tomcat-9.0.8.tar.gz                           100% 9589KB  79.8KB/s   02:00    
[email protected]:~$ 

Hãy để chúng tôi kiểm tra đầu ra trên hệ thống từ xa cho tệp.

[email protected]:~/gaurav# ls
apache-tomcat-9.0.8.tar.gz
[email protected]:~/gaurav#

Như vậy, tệp đã được sao chép thành công vào hệ thống từ xa bằng scplệnh.

Sao chép nhiều tệp vào hệ thống từ xa

Trong ví dụ trước, chúng ta đã học cách chuyển một tệp đến hệ thống từ xa bằng scplệnh. Bây giờ chúng ta sẽ thấy phương pháp chuyển nhiều tệp từ hệ thống cục bộ của bạn sang hệ thống từ xa bằng lệnh này.

Cú pháp chung:

scp [file 1] [file 2] [file n] [email protected]_host:[specific directory]

Hãy để chúng tôi hiểu quy trình đơn giản này với một ví dụ.

Thí dụ:

scp ath.html abc.txt ppa-purge_0.2.8+bzr56_all.deb [email protected]:gaurav

Ở đây, nhiều tệp được đề cập trong lệnh sẽ được sao chép trên hệ thống từ xa.

Đầu ra:

[email protected]:~$ scp ath.html abc.txt ppa-purge_0.2.8+bzr56_all.deb [email protected]:gaurav 
[email protected]'s password: 
ath.html                                      100%  199KB  94.7KB/s   00:02    
abc.txt                                       100%    0     0.0KB/s   00:00    
ppa-purge_0.2.8+bzr56_all.deb                 100% 4360    42.2KB/s   00:00    
[email protected]:~$

Trên hệ thống từ xa:

[email protected]:~/gaurav# ls -l
total 9800
-rw-r--r-- 1 root root       0 Oct  5 08:58 abc.txt
-rw-r--r-- 1 root root 9818695 Oct  5 08:35 apache-tomcat-9.0.8.tar.gz
-rw-r--r-- 1 root root  204057 Oct  5 08:58 ath.html
-rw-r--r-- 1 root root    4360 Oct  5 08:58 ppa-purge_0.2.8+bzr56_all.deb
[email protected]:~/gaurav#

Tất cả ba tệp hiện đã được sao chép trên hệ thống từ xa.

Sao chép một thư mục vào hệ thống từ xa

Bạn có thể sử dụng scplệnh để sao chép một thư mục từ hệ thống cục bộ của mình sang hệ thống từ xa. Quá trình này tương tự như quá trình sao chép một tập tin. Để sao chép nội dung của thư mục, bạn có thể sử dụng -rtùy chọn bằng scplệnh.

Các -rtùy chọn được sử dụng để sao chép một thư mục đệ quy. Điều đó có nghĩa là, tất cả thư mục con và các tệp bên trong thư mục cũng sẽ được sao chép.

Cú pháp chung:

scp -r [directory path] [email protected]_host:[target_directory]

Thí dụ:

scp -r PycharmProjects [email protected]:gaurav

Đầu ra:

[email protected]:~$ scp -r PycharmProjects [email protected]:gaurav
[email protected]'s password: 
__main__.py                                   100%  623     7.8KB/s   00:00    
__init__.py                                   100%   23     0.4KB/s   00:00    
completion.py                                 100% 2929    28.1KB/s   00:00    
search.py                                     100% 4728    38.7KB/s   00:00    
uninstall.py                                  100% 2963    32.5KB/s   00:00    
hash.py                                       100% 1681    21.3KB/s   00:00    
check.py                                      100% 1430    16.8KB/s   00:00    
configuration.py                              100% 7125    50.4KB/s   00:00    
show.py                                       100% 6289    49.8KB/s   00:00    
download.py                                   100% 6623    48.2KB/s   00:00  
[email protected]:~$  

Sử dụng -rtùy chọn với scplệnh sao chép tất cả các thư mục con và tệp trong thư mục từ máy cục bộ sang hệ thống từ xa.

Hiển thị thông tin chi tiết về quy trình scp

Bạn có thể sử dụng tùy chọn -v(chữ thường v) để hiển thị thông tin về các tệp đang được sao chép trên điều khiển từ xa hoặc hệ thống cục bộ của bạn. Loại đầu ra này còn được gọi là đầu ra dài dòng.

Khi tùy chọn này được sử dụng, thông tin gỡ lỗi đầy đủ về tệp được hiển thị trên màn hình.

Cú pháp chung:

scp -v [file_name] [email protected]_host:

Thí dụ:

scp -v apache-tomcat-9.0.8.tar.gz [email protected]:team

Đầu ra:

[email protected]:~$ scp -v apache-tomcat-9.0.8.tar.gz [email protected]:team
Executing: program /usr/bin/ssh host 159.89.170.11, user root, command scp -v -t team
OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n  7 Dec 2017
debug1: Reading configuration data /home/gaurav/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to 159.89.170.11 [159.89.170.11] port 22.
debug1: Connection established.
debug1: key_load_public: No such file or directory
debug1: identity file /home/gaurav/.ssh/id_rsa type -1
apache-tomcat-9.0.8.tar.gz                                                                                          100% 9589KB  99.8KB/s   01:36    
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: channel 0: free: client-session, nchannels 1
debug1: fd 0 clearing O_NONBLOCK
debug1: fd 1 clearing O_NONBLOCK
Transferred: sent 9826736, received 4016 bytes, in 97.2 seconds
Bytes per second: sent 101133.9, received 41.3
debug1: Exit status 0
[email protected]:~$

Tại đây, trong đầu ra, bạn có thể thấy rằng thông tin gỡ lỗi của tệp đang được hiển thị trên thiết bị đầu cuối của bạn khi scplệnh được sử dụng với -vtùy chọn.

Truyền tệp giữa hai máy chủ từ xa

Linux cho phép bạn kết nối với nhiều máy chủ từ xa. Bạn có thể chuyển các tệp và thư mục giữa hai máy chủ lưu trữ điều khiển từ xa bằng scplệnh.

Cú pháp chung:

scp [email protected]_1:/[file_name] [email protected]_2:[folder_to_save]

The syntax may seem a bit wider but is pretty simple. Here, the the first part of the command gives the input about the remote user from where the file is to be copied. colon (:) and / is used to specify the file name or the directory name which is to be transferred between the two remote machines.

The second part gives information about the target remote system where the file is to be copied.

Example:

scp -r [email protected]:gaurav [email protected]:/team

Here, we will be copying a directory named ‘gaurav’ recursively from the local system to a remote system. The file will be copied to a folder ‘team’ on the remote system.

Output:

[email protected]:~$ scp -r [email protected]:/gaurav [email protected]:/team 
[email protected]'s password: 
1.py                                          100%  134   261.3KB/s   00:00    
variables.py                                  100%  377   949.2KB/s   00:00    
abc.txt                                       100%    0     0.0KB/s   00:00    
ath.html                                      100%  199KB  41.8MB/s   00:00    
[email protected]:~$

Here, we used the scp command on the local system to transfer a directory named ‘gaurav’ from one remote server to another.

Transfer files from the remote system to your local system

Bạn có thể dễ dàng chuyển các tệp hoặc thư mục từ hệ thống từ xa sang hệ thống cục bộ của mình bằng scplệnh. Nói cách đơn giản hơn, bạn có thể tải xuống nhiều tệp hoặc thư mục từ máy chủ từ xa vào hệ thống cục bộ của mình bằng scp lệnh.

Cú pháp chung:

scp [email protected]_host:/files/file.txt /[folder_of_local_system]

Đầu ra:

[email protected]:~$ scp [email protected]:how.txt .
[email protected]'s password: 
how.txt                                                                                                             100%   11     0.1KB/s   00:00    
[email protected]:~$

Tại đây, tôi đã tải xuống (sao chép) tệp từ máy chủ từ xa vào thư mục chính của mình. Do đó, tôi đã sử dụng dấu chấm ( .) để chỉ định trong lệnh sao chép tệp vào thư mục chính của mình.

Đầu ra mẫu:

[email protected]:~$ ls -l how.txt
-rw-r--r-- 1 gaurav gaurav 11 Oct  6 09:49 how.txt
[email protected]:~$ 

Ở đây, tệp hiện đã được sao chép vào thư mục chính của tôi từ máy chủ từ xa.

Theo cách tương tự, bạn có thể tải xuống nhiều tệp hoặc thư mục từ máy chủ từ xa bằng scplệnh với các tùy chọn thích hợp.

Nén tệp để truyền nhanh hơn

Đôi khi, việc chuyển các tệp lớn có thể tốn nhiều thời gian. Vấn đề này có thể được giải quyết trong khi sử dụng scplệnh với tùy chọn -C(chữ hoa C).

Sử dụng -C tùy chọn này, nén các tệp có kích thước lớn hơn để tạo điều kiện truyền nhanh hơn và do đó tiết kiệm thời gian.

Một thực tế thú vị về tùy chọn này là, tệp được sao chép với kích thước ban đầu của nó trên hệ thống đích nhưng trong quá trình truyền, kích thước được nén để cho phép truyền nhanh hơn. Do đó, việc nén chỉ được thực hiện trên mạng.

Cú pháp chung:

scp -C [file_name] [email protected]_host:[target_folder]

Hãy để chúng tôi xem một ví dụ so sánh để hiểu sự khác biệt.

Chuyển không có tùy chọn -C:

[email protected]:~$ scp -rv dlink [email protected]:team
Executing: program /usr/bin/ssh host 68.183.82.183, user root, command scp -v -r -t team
OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n  7 Dec 2017
debug1: Reading configuration data /home/trinity/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to 68.183.82.183 [68.183.82.183] port 22.
debug1: Connection established.

debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: channel 0: free: client-session, nchannels 1
debug1: fd 0 clearing O_NONBLOCK
debug1: fd 1 clearing O_NONBLOCK
Transferred: sent 7516504, received 4008 bytes, in 74.6 seconds
Bytes per second: sent 100693.7, received 53.7
debug1: Exit status 0
[email protected]:~$ 

Từ kết quả ở trên, chúng ta có thể thấy rằng thời gian cần thiết để truyền là 74,6 giây. Chúng tôi sẽ thử chuyển cùng một tệp bằng tùy chọn -C và quan sát sự khác biệt.

Chuyển với tùy chọn -C:

[email protected]:~$ scp -Crv dlink [email protected]:team
Executing: program /usr/bin/ssh host 68.183.82.183, user root, command scp -v -r -t team
OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n  7 Dec 2017
debug1: Reading configuration data /home/trinity/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to 68.183.82.183 [68.183.82.183] port 22.
debug1: Connection established.
.
.
webupload.img                                                                                                       100% 1834KB  98.7KB/s   00:18    
Sending file modes: C0664 1877552 router.img
Sink: C0664 1877552 router.img
router.img                                                                                                          100% 1834KB 100.3KB/s   00:18    
Sink: E
Sending file modes: C0664 3754103 DSL-2750U-Release-IN-T-01.00.07.zip
Sink: C0664 3754103 DSL-2750U-Release-IN-T-01.00.07.zip
DSL-2750U-Release-IN-T-01.00.07.zip                                                                                 100% 3666KB 218.5KB/s   00:16    
Sink: E
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: channel 0: free: client-session, nchannels 1
debug1: fd 0 clearing O_NONBLOCK
debug1: fd 1 clearing O_NONBLOCK
Transferred: sent 7518864, received 3828 bytes, in 51.0 seconds
Bytes per second: sent 100245.4, received 51.0
debug1: Exit status 0
debug1: compress outgoing: raw data 7511925, compressed 7513136, factor 1.00
debug1: compress incoming: raw data 1467, compressed 999, factor 0.68
[email protected]:~$

Ở đây, chúng ta có thể dễ dàng nhận thấy rằng việc sử dụng -Ctùy chọn với scplệnh đã cho phép chúng ta nén tệp qua mạng, do đó chứng tỏ đây là một tùy chọn tiết kiệm thời gian.

Sử dụng một cổng ssh khác để truyền tệp

Trong khi sử dụng scplệnh, cổng mặc định được triển khai là port 22. Người dùng có quyền tự do tùy chỉnh lựa chọn cổng này. Bạn có thể sử dụng -P(tùy chọn P viết hoa) với scplệnh để sử dụng cổng bạn chọn.

Cú pháp chung:

cp -P [new_port_number] [file_name/directory_name] [email protected]:[destination_folder]

Thí dụ:

scp -P 4248 dlink [email protected]:team

Sử dụng lệnh trên, tệp sẽ được chuyển đến máy chủ từ xa. Nhưng lần này, cổng được sử dụng sẽ là cổng port 4248mặc định port 22.

Phần kết luận

Sau khi xem qua hướng dẫn này, chúng ta đã tìm hiểu về bản chất động của scplệnh được sử dụng để chuyển hoặc sao chép tệp từ hệ thống này sang hệ thống khác. Tùy chọn này cũng có thể được sử dụng để tải xuống tệp hoặc thư mục từ máy chủ từ xa. Do đó, chúng ta có thể kết luận rằng scplệnh tỏ ra rất hữu ích cho việc truyền tệp khi bạn phải xử lý đồng thời nhiều hệ thống cũng như các máy chủ từ xa.


Cách sao chép và dán trên Chromebook

Cách sao chép và dán trên Chromebook

Điều đầu tiên bạn có thể thắc mắc khi chuyển sang Chromebook là làm thế nào để thực hiện những thứ cơ bản — loại nội dung bạn có trong tay trong hệ điều hành trước đó của mình. Sao chép và dán là một trong những chức năng cơ bản mà bạn phải sử dụng vào lúc này hay lúc khác.

Làm thế nào để làm bài kiểm tra đánh máy trên Linux với tt

Làm thế nào để làm bài kiểm tra đánh máy trên Linux với tt

Trong thời đại công nghệ hiện đại, đánh máy đã trở thành một trong những hoạt động phổ biến nhất cho rất nhiều ngành nghề. Học cách gõ nhanh hơn với độ chính xác có thể giúp bạn hoàn thành nhiều việc hơn trong cùng một khoảng thời gian.

Wi-Fi không hoạt động trên Ubuntu? Đây là cách khắc phục

Wi-Fi không hoạt động trên Ubuntu? Đây là cách khắc phục

Ubuntu phổ biến vì tính mạnh mẽ và tương đối ít lỗi. Nhưng chắc chắn không phải là không có vấn đề. Một trong những vấn đề như vậy là với trình điều khiển Wi-Fi của nó. Bạn có thể bật nguồn hệ thống của mình chỉ khi thấy rằng Wi-Fi của bạn không hoạt động.

Cách tạo và quét mã QR trên Chromebook

Cách tạo và quét mã QR trên Chromebook

Mã phản hồi nhanh, gọi tắt là mã QR, là mã vạch nâng cao chứa nhiều thông tin hơn mã vạch truyền thống. Các mã này là hai chiều, cho phép bạn quét chúng theo chiều dọc hoặc chiều ngang.

Cách cài đặt và gỡ bỏ các gói trong Arch Linux

Cách cài đặt và gỡ bỏ các gói trong Arch Linux

Bạn muốn cài đặt các gói trên Arch Linux nhưng không biết làm thế nào? Rất nhiều người gặp phải vấn đề này khi lần đầu tiên họ chuyển từ các bản phân phối dựa trên Debian sang Arch. Tuy nhiên, bạn có thể dễ dàng quản lý các gói trên hệ thống dựa trên Arch của mình bằng cách sử dụng các trình quản lý gói.

Cách cài đặt Spotify trên Linux

Cách cài đặt Spotify trên Linux

Spotify là một trong những dịch vụ phát trực tuyến nhạc lớn nhất hiện có. Nó có các ứng dụng khách dành cho cả thiết bị di động (Android và iOS) và máy tính để bàn (Mac và Windows).

9 lệnh cơ bản giúp bạn bắt đầu với Linux

9 lệnh cơ bản giúp bạn bắt đầu với Linux

Hướng dẫn cách sử dụng Linux thường mong đợi bạn thực hiện một số thao tác nhất định trong thiết bị đầu cuối, điều này thoạt đầu có vẻ đáng sợ. Nhưng không băn khoăn; Bảng lừa đảo lệnh Linux này sẽ trình bày quá trình mở một thiết bị đầu cuối và đưa ra một vài lệnh hữu ích.

Trình chỉnh sửa video miễn phí tốt nhất cho Ubuntu năm 2020

Trình chỉnh sửa video miễn phí tốt nhất cho Ubuntu năm 2020

Bỏ qua tất cả những điều sơ sài, đây là danh sách các trình chỉnh sửa video miễn phí tốt nhất cho Ubuntu mà bạn có thể sử dụng để tạo ra những video tuyệt đẹp.

15 chủ đề hay nhất cho Ubuntu 20.04 vào năm 2020

15 chủ đề hay nhất cho Ubuntu 20.04 vào năm 2020

Rất nhiều chủ đề cập nhật mới đã sẵn sàng được cài đặt trên máy tính để bàn GNOME mới của Ubuntu 20.04. Đây là danh sách các chủ đề ubuntu tốt nhất vào năm 2020

Cách di chuyển tệp Linux bằng lệnh Mv

Cách di chuyển tệp Linux bằng lệnh Mv

Mặc dù bạn có thể đã biết cách di chuyển tệp trong Linux bằng trình duyệt tệp GUI, nhưng bạn có thể tự hỏi liệu có lệnh di chuyển trong thiết bị đầu cuối cho phép bạn nhanh chóng di chuyển tệp đến các thư mục khác nhau hay không. Lệnh mv là lệnh bạn muốn và nó dễ sử dụng với cú pháp đơn giản và một số cờ an toàn tùy chọn.