Ako používať príkaz SCP v systéme Linux

Jednoduchý návod, ktorý vám pomôže preniesť súbory do vzdialeného systému z vášho systému Linux pomocou príkazu scp.

SCP je skratka pre „Secure Copy“. scp je nástroj príkazového riadka ponúkaný systémom Linux, ktorý umožňuje prenos súborov a adresárov z jedného počítača na druhý cez nezabezpečenú sieť.

Ak chcete kopírovať súbory z jedného systému do druhého, potom scp môže byť veľmi dobrou voľbou na bezpečný prenos súborov a adresárov. Keď sú dva komunikujúce stroje pripojené cez rovnakú sieť, potom použite scp sa stáva možným.

Môžete sa silne spoľahnúť na scp príkaz pre dôvernosť a integritu, pretože prenášaný súbor a heslo použité na prenos sú šifrované. Žiadne citlivé informácie nebudú odhalené, aj keď sa niekto pokúsi sledovať premávku počas prebiehajúceho prenosu.

V tomto návode uvidíme rôzne príklady scp príkaz. Pozrieme sa tiež na niektoré z často používaných možností s scp príkaz.

Začíname s príkazom scp

Pomocou scp príkazom môžete prenášať súbory/adresáre:

  • Z vášho lokálneho počítača na vzdialený počítač.
  • Medzi dvoma vzdialenými strojmi.
  • Zo vzdialeného počítača na váš lokálny počítač.

Všeobecná syntax:

scp [Možnosť] [názov_zdrojového_súboru] [používateľ@cieľový_hostiteľ]:cieľový_priečinok

Poďme pochopiť základné atribúty tohto príkazu jeden po druhom.

  • [názov zdrojového_súboru] Toto je zdrojový súbor, ktorý chcete skopírovať.
  • [user@destination_Host] Toto je používateľské meno vzdialeného systému, do ktorého chcete skopírovať súbor. IP adresa vzdialeného počítača sa tiež používa v tomto atribúte za „@„symbol“.
  • [cieľový adresár] Toto je adresár, do ktorého chcete uložiť skopírovaný súbor.

Poznámka: Dvojbodka (:) sa v syntaxi používa symbol, pretože rozlišuje medzi lokálnym a vzdialeným umiestnením. Používame dvojbodku (:) so vzdialeným systémom, aby ste určili adresár, do ktorého sa majú súbory skopírovať. V prípade, že neuvedieme cieľový adresár, tak sa súbory skopírujú do domovského adresára užívateľa vzdialeného systému.

Možnosti používané s scp

Niektoré z najpopulárnejších možností používaných s scp príkazy sú uvedené nižšie.

MožnosťPopis
-Cpovoliť kompresiu súboru, ktorý sa má preniesť
-vuveďte podrobný výstup
-rrekurzívne kopírovať súbory a adresáre
-pzachovať oprávnenia, režimy a časy prístupu k súborom
-Pzmeniť predvolený port, ktorý používa scp príkaz

Príklady týchto možností uvidíme ďalej v návode.

Kopírovanie súboru z lokálneho do vzdialeného systému

scp vám umožňuje prenášať súbory z vášho lokálneho systému do vzdialeného systému pomocou nasledujúcej syntaxe. To vám umožní prenášať alebo nahrávať súbory na vzdialený server.

Všeobecná syntax:

scp [názov_súboru] vzdialený_používateľ@hostiteľ:[cieľový_priečinok]

Príklad:

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

V tomto príklade kopírujeme súbor „apache-tomcat-9.0.8.tar.gz“ z lokálneho systému do vzdialeného systému, ktorého IP adresa je „143.110.178.221“.

Na vzdialenom systéme sa súbor teraz skopíruje do adresára s názvom „gaurav“.

Výkon:

gaurav@ubuntu:~$ scp apache-tomcat-9.0.8.tar.gz [email protected]:gaurav [email protected] heslo: apache-tomcat-9.0.8.tar.gz 1098KB 9 /s 02:00 gaurav@ubuntu:~$ 

Skontrolujte výstup na vzdialenom systéme pre súbor.

root@ubuntu-s-1vcpu-1gb-blr1-01:~/gaurav# ls apache-tomcat-9.0.8.tar.gz root@ubuntu-s-1vcpu-1gb-blr1-01:~/gaurav#

Súbor sa teda úspešne skopíruje do vzdialeného systému pomocou scp príkaz.

Kopírovanie viacerých súborov do vzdialeného systému

V predchádzajúcom príklade sme sa naučili preniesť súbor do vzdialeného systému pomocou scp príkaz. Teraz uvidíme metódu prenosu viacerých súborov z vášho lokálneho systému do vzdialeného systému pomocou tohto príkazu.

Všeobecná syntax:

scp [súbor 1] [súbor 2] [súbor n] remote_username@remote_host:[konkrétny adresár]

Poďme pochopiť tento jednoduchý proces na príklade.

Príklad:

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

Tu je v príkaze, ktorý sa má skopírovať na vzdialený systém, uvedené viaceré súbory.

Výkon:

gaurav@ubuntu:~$ scp ath.html abc.txt ppa-purge_0.2.8+bzr56_all.deb [email protected]:gaurav [email protected] heslo: ath.html/1s49 100% B. 02 abc.txt 100 % 0 0,0 KB/s 00:00 ppa-purge_0.2.8+bzr56_all.deb 100 % 4360 42,2 KB/s 00:00 gaurav@ubuntu:~$

Na vzdialenom systéme:

root@ubuntu-s-1vcpu-1gb-blr1-01:~/gaurav# ls -l celkom 9800 -rw-r--r-- 1 koreňový koreň 0 5. okt 08:58 abc.txt -rw-r-- r-- 1 koreňový koreň 9818695 5. okt 08:35 apache-tomcat-9.0.8.tar.gz -rw-r--r-- 1 koreňový koreň 204057 5. okt 08:58 ath.html -rw-r-- r-- 1 koreňový koreň 4360 5. okt 08:58 ppa-purge_0.2.8+bzr56_all.deb root@ubuntu-s-1vcpu-1gb-blr1-01:~/gaurav#

Všetky tri súbory sú teraz skopírované na vzdialený systém.

Kopírovanie adresára do vzdialeného systému

Môžeš použiť scp príkaz na skopírovanie adresára z vášho lokálneho systému do vzdialeného systému. Proces je podobný ako pri kopírovaní súboru. Ak chcete skopírovať aj obsah adresára, môžete použiť -r možnosť s scp príkaz.

The -r možnosť sa používa na rekurzívne kopírovanie adresára. To znamená, že sa skopírujú aj všetky podpriečinky a súbory v adresári.

Všeobecná syntax:

scp -r [cesta k adresáru] vzdialené_používateľské meno@vzdialený_hostiteľ:[cieľový_adresár]

Príklad:

scp -r PycharmProjects [email protected]:gaurav

Výkon:

gaurav@ubuntu:~$ scp -r PycharmProjects [email protected]:gaurav [email protected] heslo: __main__.py 100 % 623 7,8 KB/s 0_20_1 py % 0_20_1 00 % :00 dokončenie.py 100 % 2929 28,1 kB/s 00:00 vyhľadávanie.py 100 % 4728 38,7 kB/s 00:00 odinštalovanie.py 100 % 2963 32,5 kB/s 00:00 hash.py 1183 % s 00:00 kontrola.py 100 % 1430 16,8 kB/s 00:00 konfigurácia.py 100 % 7125 50,4 kB/s 00:00 ukážka.py 100 % 6289 49,8 kB/s 00:00 % stiahnutie 4 py 82,3 KB/s 00:00 gaurav@ubuntu:~$ 

Pomocou -r možnosť s scp príkaz skopíruje všetky podpriečinky a súbory v adresári z lokálneho počítača do vzdialeného systému.

Zobrazenie podrobných informácií o procese scp

Môžete použiť -v (malými písmenami v) možnosť zobraziť informácie o súboroch, ktoré sa kopírujú na vzdialený alebo lokálny systém. Tento typ výstupu sa tiež nazýva podrobný výstup.

Pri použití tejto možnosti sa na obrazovke zobrazia úplné informácie o ladení o súbore.

Všeobecná syntax:

scp -v [názov_súboru] meno_používateľa@hostiteľ_používateľa:

Príklad:

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

Výkon:

gaurav@ubuntu:~$ scp -v apache-tomcat-9.0.8.tar.gz [email protected]:team Vykonávanie: program /usr/bin/ssh hostiteľ 159.89.170.11, užívateľ root, príkaz scp -v -t tím OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n 7. decembra 2017 debug1: Čítanie konfiguračných údajov /home/gaurav/.ssh/config debug1: Čítanie konfiguračných údajov /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config riadok 19: Aplikovanie možností pre * debug1: Pripojenie k portu 159.89.170.11 [159.89.170.11] 22. debug1: Pripojenie nadviazané. debug1: key_load_public: Žiadny takýto súbor alebo adresár debug1: súbor identity /home/gaurav/.ssh/id_rsa typ -1 apache-tomcat-9.0.8.tar.gz 100 % 9589KB 99,8KB/s 01:36 debug1: client_req_channel 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 Prenesené: odoslané 9826736, prijaté 4016 bajtov, za 97,2 sekundy odoslané Bajty za sekundu 101133.9, prijaté 41.3 debug1: Stav ukončenia 0 gaurav@ubuntu:~$ 

Tu, vo výstupe, môžete vidieť, že informácie o ladení súboru sa zobrazujú na vašom termináli, keď je scp príkaz sa používa s -v možnosť.

Prenos súborov medzi dvoma vzdialenými hostiteľmi

Linux vám umožňuje pripojiť sa k viacerým vzdialeným hostiteľom. Môžete prenášať súbory a adresáre medzi dvoma vzdialenými hostiteľmi pomocou scp príkaz.

Všeobecná syntax:

scp remote_user_1@host_1:/[file_name] remote_user_2@host_2:[folder_to_save]

Syntax sa môže zdať trochu širšia, ale je celkom jednoduchá. Tu prvá časť príkazu poskytuje vstup o vzdialenom používateľovi, odkiaľ sa má súbor skopírovať. dvojbodka (:) a / sa používa na zadanie názvu súboru alebo názvu adresára, ktorý sa má preniesť medzi dvoma vzdialenými počítačmi.

Druhá časť poskytuje informácie o cieľovom vzdialenom systéme, kam sa má súbor skopírovať.

Príklad:

scp -r [email protected]:gaurav [email protected]:/tím

Tu budeme rekurzívne kopírovať adresár s názvom „gaurav“ z lokálneho systému do vzdialeného systému. Súbor sa skopíruje do priečinka „tím“ vo vzdialenom systéme.

Výkon:

gaurav@ubuntu:~$ scp -r [email protected]:/gaurav [email protected]:/team [email protected] heslo: 1.py 100% 134 261.3KB/s premenná 100 % 377 949,2 KB/s 00:00 abc.txt 100 % 0 0,0 KB/s 00:00 ath.html 100 % 199 KB 41,8 MB/s 00:00 gaurav@ubuntu:~$

Tu sme použili scp príkaz na lokálnom systéme na prenos adresára s názvom „gaurav“ z jedného vzdialeného servera na druhý.

Preneste súbory zo vzdialeného systému do vášho lokálneho systému

Súbory alebo adresáre môžete jednoducho preniesť zo vzdialeného systému do vášho lokálneho systému pomocou scp príkaz. Jednoduchšie povedané, môžete stiahnuť viacero súborov alebo adresárov zo vzdialeného servera do vášho lokálneho systému pomocou scp príkaz.

Všeobecná syntax:

scp remote_username@user_host:/files/file.txt /[priečinok_miestneho_systému]

Výkon:

gaurav@ubuntu:~$ scp [email protected]:how.txt . heslo [email protected]: how.txt 100 % 11 0,1 kB/s 00:00 gaurav@ubuntu:~$

Tu som stiahol (skopíroval) súbor zo vzdialeného servera do môjho domovského adresára. Preto som použil bodku (.), aby ste v príkaze určili skopírovanie súboru do môjho domovského adresára.

Vzorový výstup:

gaurav@ubuntu:~$ ls -l how.txt -rw-r--r-- 1 gaurav gaurav 11. okt 6 09:49 how.txt gaurav@ubuntu:~$ 

Tu sa súbor teraz skopíruje do môjho domovského adresára zo vzdialeného servera.

Rovnakým spôsobom si môžete stiahnuť viacero súborov alebo adresárov zo vzdialeného servera pomocou scp príkaz s príslušnými možnosťami.

Komprimovanie súborov na rýchlejšie prenosy

Niekedy môže byť prenos veľkých súborov časovo náročný. Tento problém je možné vyriešiť pomocou scp príkaz s -C (veľké písmená C) možnosť.

Pomocou -C komprimuje súbory väčšej veľkosti, čo umožňuje rýchlejší prenos a tým šetrí čas.

Jedným zaujímavým faktom o tejto možnosti je, že súbor sa skopíruje s pôvodnou veľkosťou v cieľovom systéme, ale počas procesu prenosu je veľkosť komprimovaná, aby sa umožnil rýchlejší prenos. Kompresia sa teda vykonáva iba v sieti.

Všeobecná syntax:

scp -C [názov_súboru] meno_používateľa@hostiteľ_používateľa:[cieľový_priečinok]

Pozrime sa na porovnávací príklad, aby sme pochopili rozdiel.

Prevod bez možnosti -C:

gaurav@ubuntu:~$ scp -rv dlink [email protected]:team Vykonávanie: program /usr/bin/ssh host 68.183.82.183, užívateľ root, príkaz scp -v -r -t team OpenSSH_7.6p1 Ubuntu.-4ubuntu 3, OpenSSL 1.0.2n 7. decembra 2017 debug1: Čítanie konfiguračných údajov /home/trinity/.ssh/config debug1: Čítanie konfiguračných údajov /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config riadok 19: Použitie možností pre * debug1 : Pripája sa k portu 68.183.82.183 [68.183.82.183] 22. debug1: Pripojenie nadviazané. 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_NONBLOCKes Prenesené: odoslané 7516508 bytes, prijaté o 40 bajtov. za sekundu: odoslané 100693,7, prijaté 53,7 ladenie1: Stav ukončenia 0 gaurav@ubuntu:~$ 

Z vyššie uvedeného výstupu vidíme, že čas potrebný na prenos je 74,6 sekúnd. Pokúsime sa preniesť rovnaký súbor pomocou voľby -C a pozorovať rozdiel.

Prevod s možnosťou -C:

gaurav@ubuntu:~$ scp -Crv dlink [email protected]:team Vykonávanie: program /usr/bin/ssh host 68.183.82.183, užívateľ root, príkaz scp -v -r -t team OpenSSH_7.6p1 Ubuntu-4 3, OpenSSL 1.0.2n 7. decembra 2017 debug1: Čítanie konfiguračných údajov /home/trinity/.ssh/config debug1: Čítanie konfiguračných údajov /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config riadok 19: Použitie možností pre * debug1 : Pripája sa k portu 68.183.82.183 [68.183.82.183] 22. debug1: Pripojenie nadviazané. . . webupload.img 100 % 1834 KB 98,7 KB/s 00:18 Režimy odosielania súborov: C0664 1877552 router.img Sink: C0664 1877552 router.img router.img 100 %: Režim odosielania E06/Súbor 1006.3 3754103 DSL-2750U-Release-IN-T-01.00.07.zip Drez: C0664 3754103 DSL-2750U-Release-IN-T-01.00.07.zip DSL-2750U-Release.IN-0zi-T.071 100 % 3666 KB 218,5 KB/s 00:16 Sink: E debug1: client_input_channel_req: channel 0 rtype exit-state response 0 debug1: channel 0: free: client-relation, nchannels 1 debug1: fd 0 clearing O clearing O_NOd_clear Prenesené: odoslané 7518864, prijaté 3828 bajtov, za 51,0 sekúnd Bajty za sekundu: odoslané 100245,4, prijaté 51,0 ladenie1: Stav ukončenia 0 ladenie1: skomprimovanie odchádzajúce: nespracované údaje 7511925, komprimované 7513136, 14617 ladenie: nespracované údaje 1,00 999, faktor 0,68 gaurav@ubuntu:~$

Tu môžeme ľahko pozorovať, že pomocou -C možnosť s scp príkaz nám umožnil komprimovať súbor cez sieť, čo sa ukázalo ako možnosť šetriace čas.

Použitie iného portu ssh na prenos súborov

Počas používania scp predvolený port, ktorý je nasadený, je prístav 22. Používateľ má slobodu prispôsobiť si tento výber portu. Môžete použiť -P (možnosť veľkých písmen P) s scp príkaz použiť port podľa vášho výberu.

Všeobecná syntax:

cp -P [nové_číslo_portu] [názov_súboru/názov_adresára] vzdialený_používateľ@hostiteľ:[cieľový_priečinok]

Príklad:

scp -P 4248 dlink [email protected]:tím

Pomocou vyššie uvedeného príkazu sa súbor prenesie na vzdialený server. Tentoraz však bude použitý port port 4248 namiesto predvolenej hodnoty prístav 22.

Záver

Po preštudovaní tohto tutoriálu sme sa dozvedeli o dynamickej povahe scp príkaz používaný na prenos alebo kopírovanie súborov z jedného systému do druhého. Túto možnosť možno použiť aj na sťahovanie súborov alebo adresárov zo vzdialeného servera. Môžeme teda konštatovať, že scp Príkaz sa ukazuje ako veľmi užitočný pri prenose súborov, keď musíte súčasne obsluhovať viac ako jeden systém, ako aj vzdialené servery.