Jak korzystać z polecenia SCP w systemie Linux?

Prosty samouczek, który pomoże Ci przenieść pliki do zdalnego systemu z systemu Linux za pomocą polecenia scp.

SCP to skrót od „Bezpieczna kopia”. scpto narzędzie wiersza poleceń oferowane przez Linuksa, które umożliwia przesyłanie plików i katalogów z jednego komputera na drugi przez niezabezpieczoną sieć.

Jeśli chcesz skopiować pliki z jednego systemu do drugiego, scpmoże to być bardzo dobra opcja wykonania bezpiecznego transferu plików i katalogów. Gdy dwie komunikujące się maszyny są połączone w tej samej sieci, użycie scpstaje się możliwe.

Możesz w dużym stopniu polegać na scppoleceniu w zakresie poufności i integralności, ponieważ przesyłany plik i hasło używane do przesyłania są szyfrowane. Żadne poufne informacje nie zostaną ujawnione, nawet jeśli ktoś spróbuje podsłuchiwać ruch w trakcie przesyłania.

W tym samouczku zobaczymy różne przykłady scppolecenia. Przyjrzymy się również niektórym często używanym opcjom za pomocą scppolecenia.

Pierwsze kroki z poleceniem scp

Za pomocą scppolecenia możesz przesyłać pliki/katalogi:

  • Z komputera lokalnego na komputer zdalny.
  • Między dwiema zdalnymi maszynami.
  • Z komputera zdalnego na komputer lokalny.

Ogólna składnia:

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

Zrozummy po kolei podstawowe atrybuty tego polecenia.

  • [nazwa_pliku_źródłowego] To jest plik źródłowy, który chcesz skopiować.
  • [ [email protected] _Host] To jest nazwa użytkownika zdalnego systemu, do którego chcesz skopiować plik. Adres IP zdalnego komputera jest również używany w tym atrybucie po @symbolu „ ”.
  • [folder_docelowy] To jest katalog, w którym chcesz zapisać skopiowany plik.

Uwaga: Symbol dwukropka ( :) jest używany w składni, ponieważ rozróżnia lokalizacje lokalne i zdalne. Używamy dwukropka ( :) w zdalnym systemie, aby określić katalog, do którego pliki mają zostać skopiowane. Jeśli nie określimy katalogu docelowego, pliki zostaną skopiowane do katalogu domowego zdalnego użytkownika systemu.

Opcje używane z scp

Poniżej wymieniono niektóre z najpopularniejszych opcji używanych z scppoleceniem.

Opcja Opis
-C zezwól na kompresję pliku do przesłania
-v daj szczegółowe wyjście
-r kopiuj pliki i katalogi rekurencyjnie
-p zachowaj uprawnienia, tryby i czasy dostępu do plików
-P zmienić domyślny port używany przez scppolecenie

Często używane opcje z poleceniem scp

Zobaczymy przykłady tych opcji w dalszej części samouczka.

Kopiowanie pliku z lokalnego do zdalnego systemu

scpumożliwia przesyłanie plików z systemu lokalnego do systemu zdalnego przy użyciu następującej składni. Pozwala to na przesyłanie lub przesyłanie plików na zdalnie umieszczony serwer.

Ogólna składnia:

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

Przykład:

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

W tym przykładzie kopiujemy plik „apache-tomcat-9.0.8.tar.gz” z systemu lokalnego do systemu zdalnego, którego adres IP to „143.110.178.221”.

W systemie zdalnym plik zostanie skopiowany do katalogu o nazwie „gaurav”.

Wyjście:

[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]:~$ 

Sprawdźmy dane wyjściowe w systemie zdalnym dla pliku.

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

W ten sposób plik jest pomyślnie kopiowany do systemu zdalnego za pomocą scppolecenia.

Kopiowanie wielu plików do zdalnego systemu

W poprzednim przykładzie nauczyliśmy się przesyłać plik do zdalnego systemu za pomocą scppolecenia. Zobaczymy teraz metodę przesyłania wielu plików z systemu lokalnego do systemu zdalnego za pomocą tego polecenia.

Ogólna składnia:

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

Zrozummy ten prosty proces na przykładzie.

Przykład:

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

Tutaj w poleceniu do skopiowania do systemu zdalnego wymieniono wiele plików.

Wyjście:

[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]:~$

W systemie zdalnym:

[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#

Wszystkie trzy pliki są teraz kopiowane do systemu zdalnego.

Kopiowanie katalogu do zdalnego systemu

Możesz użyć scppolecenia, aby skopiować katalog z systemu lokalnego do systemu zdalnego. Proces jest podobny do kopiowania pliku. Aby skopiować również zawartość katalogu, możesz użyć -ropcji z scppoleceniem.

-rOpcja służy do kopiowania katalogu rekurencyjnie. Oznacza to, że wszystkie podfoldery i pliki w katalogu również zostaną skopiowane.

Ogólna składnia:

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

Przykład:

scp -r PycharmProjects [email protected]:gaurav

Wyjście:

[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]:~$  

Użycie -ropcji z scppoleceniem kopiuje wszystkie podfoldery i pliki w katalogu z komputera lokalnego do systemu zdalnego.

Wyświetlanie szczegółowych informacji o procesie scp

Możesz użyć opcji -v(małe litery v), aby wyświetlić informacje o plikach, które są kopiowane na zdalnym lub lokalnym systemie. Ten typ danych wyjściowych jest również nazywany szczegółowymi danymi wyjściowymi.

Gdy ta opcja jest używana, pełne informacje debugowania dotyczące pliku są wyświetlane na ekranie.

Ogólna składnia:

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

Przykład:

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

Wyjście:

[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]:~$

Tutaj, w danych wyjściowych, możesz zobaczyć, że informacje debugowania pliku są wyświetlane na twoim terminalu, gdy scppolecenie jest używane z -vopcją.

Przesyłanie plików między dwoma zdalnymi hostami

Linux umożliwia łączenie się z wieloma zdalnymi hostami. Za pomocą scppolecenia można przesyłać pliki i katalogi między dwoma zdalnymi hostami .

Ogólna składnia:

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

Składnia może wydawać się nieco szersza, ale jest dość prosta. Tutaj pierwsza część polecenia zawiera informacje o zdalnym użytkowniku, z którego plik ma zostać skopiowany. dwukropek (:) i /jest używany do określenia nazwy pliku lub nazwy katalogu, który ma być przesyłany między dwoma zdalnymi maszynami.

Druga część zawiera informacje o docelowym systemie zdalnym, do którego plik ma zostać skopiowany.

Przykład:

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

Tutaj będziemy rekursywnie kopiować katalog o nazwie „gaurav” z systemu lokalnego do systemu zdalnego. Plik zostanie skopiowany do folderu „team” w systemie zdalnym.

Wyjście:

[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]:~$

Tutaj użyliśmy scppolecenia w systemie lokalnym, aby przenieść katalog o nazwie „gaurav” z jednego zdalnego serwera na drugi.

Przesyłaj pliki z systemu zdalnego do systemu lokalnego

Za pomocą scpkomendy można łatwo przesłać pliki lub katalogi z systemu zdalnego do systemu lokalnego . Mówiąc prościej, możesz pobrać wiele plików lub katalogów ze zdalnego serwera do systemu lokalnego za pomocą scp polecenia.

Ogólna składnia:

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

Wyjście:

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

Tutaj pobrałem (skopiowałem) plik ze zdalnego serwera do mojego katalogu domowego. Dlatego użyłem kropki ( .), aby określić w poleceniu, aby skopiować plik do mojego katalogu domowego.

Przykładowe dane wyjściowe:

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

Tutaj plik jest teraz kopiowany do mojego katalogu domowego ze zdalnego serwera.

W ten sam sposób możesz pobrać wiele plików lub katalogów ze zdalnego serwera za pomocą scppolecenia z odpowiednimi opcjami.

Kompresowanie plików w celu szybszego transferu

Czasami przesyłanie dużych plików może być czasochłonne. Ten problem można rozwiązać, używając scppolecenia z opcją -C(wielkie litery C).

Korzystając z -C opcji kompresuje pliki o większym rozmiarze, co ułatwia szybszy transfer, a tym samym oszczędza czas.

Interesującym faktem dotyczącym tej opcji jest to, że plik jest kopiowany w oryginalnym rozmiarze w systemie docelowym, ale podczas procesu przesyłania rozmiar jest kompresowany, aby umożliwić szybszy transfer. Dlatego kompresja jest wykonywana tylko w sieci.

Ogólna składnia:

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

Zobaczmy przykład porównawczy, aby zrozumieć różnicę.

Przelew bez opcji -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]:~$ 

Z powyższego wyniku widzimy, że czas potrzebny na transfer to 74,6 sekundy. Spróbujemy przesłać ten sam plik za pomocą opcji -C i zaobserwujemy różnicę.

Przelew z opcją -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]:~$

Tutaj możemy łatwo zaobserwować, że użycie -Copcji z scppoleceniem pozwoliło nam skompresować plik przez sieć, co okazało się opcją oszczędzającą czas.

Używanie innego portu ssh do przesyłania plików

Podczas korzystania z scppolecenia domyślnym wdrożonym portem jest port 22. Użytkownik ma swobodę dostosowania tego wyboru portu. Możesz użyć opcji -P(wielkie P) z scppoleceniem, aby użyć wybranego portu.

Ogólna składnia:

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

Przykład:

scp -P 4248 dlink [email protected]:team

Używając powyższego polecenia, plik zostanie przeniesiony na zdalny serwer. Ale tym razem używanym portem będzie port 4248zamiast domyślnego port 22.

Wniosek

Po przejściu tego samouczka poznaliśmy dynamiczną naturę scppolecenia używanego do przesyłania lub kopiowania plików z jednego systemu do drugiego. Ta opcja może być również używana do pobierania plików lub katalogów ze zdalnego serwera. Możemy więc stwierdzić, że scppolecenie jest bardzo pomocne przy przesyłaniu plików, gdy musisz jednocześnie obsługiwać więcej niż jeden system, a także zdalne serwery.


10 najlepszych aplikacji do wideokonferencji dla systemu Linux

10 najlepszych aplikacji do wideokonferencji dla systemu Linux

Dla freelancerów i pracowników, którzy regularnie pracują w domu, komunikacja zdalna jest jedną z wielu rzeczy, o które trzeba zadbać. Obecnie dla wielu z nas wideokonferencje zastąpiły spotkania w biurze. Narzędzia takie jak Zoom i Skype odnotowały ogromny wzrost.

Jak zainstalować serwer FTP na Ubuntu w 5 krokach

Jak zainstalować serwer FTP na Ubuntu w 5 krokach

Jeśli konfigurujesz serwer Linux, będziesz potrzebować dostępu do FTP. Oznacza to najpierw zainstalowanie serwera FTP w systemie Linux. Powinna to być jedna z pierwszych rzeczy, które robisz po zainstalowaniu systemu operacyjnego serwera.

Jak łatwo szyfrować i odszyfrowywać pliki i katalogi w systemie Linux

Jak łatwo szyfrować i odszyfrowywać pliki i katalogi w systemie Linux

Czy kiedykolwiek chciałeś szybko i łatwo szyfrować pliki w systemie Linux bez konieczności instalowania i uczenia się nowych pakietów oprogramowania? Oto doskonały i łatwy sposób na łatwe szyfrowanie plików lub katalogów za pomocą AES256 zabezpieczonego hasłem, co pomaga trzymać pliki z dala od wścibskich oczu.

Jak naprawić make: polecenie nie zostało znalezione Błąd w Ubuntu

Jak naprawić make: polecenie nie zostało znalezione Błąd w Ubuntu

Polecenie make jest prawdopodobnie jednym z najczęściej używanych poleceń w ekosystemie Linuksa. To polecenie służy do budowania i kompilowania programów bezpośrednio z kodu źródłowego.

Jak znaleźć i usunąć zduplikowane pliki w systemie Linux za pomocą fdupes

Jak znaleźć i usunąć zduplikowane pliki w systemie Linux za pomocą fdupes

Podczas pracy z dużą ilością multimediów i dokumentów często zdarza się, że na komputerze gromadzi się wiele kopii tego samego pliku. Nieuchronnie pojawia się zaśmiecona przestrzeń dyskowa wypełniona zbędnymi plikami, co powoduje okresowe sprawdzanie duplikatów plików w systemie.

Stabilne czy Bleeding-Edge Dystrybucje Linuksa: Którą z nich wybrać?

Stabilne czy Bleeding-Edge Dystrybucje Linuksa: Którą z nich wybrać?

Jednym z głównych wyborów, przed którymi staje wielu użytkowników Linuksa przy wyborze dystrybucji Linuksa, jest jej stabilność lub to, jak bardzo zmienia się oprogramowanie.

Czy rok 2020 jest rokiem pandemii szkodliwego oprogramowania dla Linuksa?

Czy rok 2020 jest rokiem pandemii szkodliwego oprogramowania dla Linuksa?

Jego reputacja w zakresie bezpieczeństwa oznacza, że ​​Linux jest często uważany za mniej podatny na rodzaje zagrożeń, które regularnie nękają systemy Microsoft Windows. Wiele z tego postrzeganego bezpieczeństwa pochodzi ze stosunkowo małej liczby systemów Linux, ale czy cyberprzestępcy zaczynają dostrzegać wartość w wybieraniu jakości, a nie ilości?

Jak pobrać i zainstalować uGet Download Manager w systemie Linux

Jak pobrać i zainstalować uGet Download Manager w systemie Linux

Menedżery pobierania to popularne narzędzie do zarządzania wszystkimi pobranymi plikami w jednej aplikacji i zapewniają przydatne funkcje. Jeśli niedawno przeszedłeś z systemu operacyjnego Windows na Linuksa, być może szukasz alternatywy dla słynnego Internet Download Managera (IDM).

Notatki na Chromebookach ułatwiające kursywą

Notatki na Chromebookach ułatwiające kursywą

Cursive to progresywna aplikacja internetowa (PWA), którą firma Google wprowadziła wraz z wydaniem Chromebooka HP x2 11. Możesz używać tej aplikacji do robienia odręcznych notatek na Chromebooku wyposażonym w rysik.

Jak korzystać z Vima: Przewodnik po podstawach

Jak korzystać z Vima: Przewodnik po podstawach

Vim to najpotężniejszy i najbardziej wszechstronny edytor kodu dostępny dla systemów uniksopodobnych. Jest to rozszerzenie edytora Vi opracowanego przez Billa Joya. Vim jest domyślnie dostępny w większości systemów Linux i BSD.