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 |
-C | povoliť kompresiu súboru, ktorý sa má preniesť |
-v | uveďte podrobný výstup |
-r | rekurzívne kopírovať súbory a adresáre |
-p | zachovať oprávnenia, režimy a časy prístupu k súborom |
-P | zmeniť 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.