16 Běžné příkazy SCP s příklady kopírování souborů a složek

Photo of author

By etechblogcz

Protokol SCP úzce souvisí s protokolem SSH a ve skutečnosti se zrodil ze stejné myšlenky, která stála za vznikem SSH.

SCP, jako rozšíření SSH, zaručuje, že přenášená data zůstanou v průběhu celého procesu důvěrná a nepozměněná.

Nejprve si objasníme, jak SCP funguje, a následně se podíváme na konkrétní příkazy scp.

Co je SCP?

SCP je zkratka pro Secure Copy Protocol, tedy protokol pro bezpečné kopírování.

Jedná se o spolehlivou a bezpečnou metodu pro přenos souborů a celých adresářů mezi lokálním a vzdáleným počítačem, případně mezi dvěma vzdálenými stroji.

Je hojně využíván pro zabezpečený přenos dat v síťovém prostředí. SCP se spoléhá na protokol SSH (Secure Shell) pro vytvoření zabezpečeného spojení a šifrování dat během samotného přenosu.

Ať už potřebujete přesunout jednotlivý soubor, nebo kompletní adresářovou strukturu, SCP nabízí robustní a ověřené řešení pro vzdálený přenos dat.

Jak SCP funguje?

SCP je postaven na protokolu SSH, který představuje šifrovaný síťový protokol pro bezpečné vzdálené přihlašování a spouštění příkazů. Pro ochranu dat využívá stejné bezpečnostní mechanizmy jako SSH, včetně šifrování a autentizace.

Při použití SCP uživatel na svém lokálním počítači zadá příkaz ke kopírování, přičemž specifikuje zdrojový soubor a cílové umístění na vzdáleném počítači. SCP naváže SSH spojení se vzdáleným systémem a poté bezpečně zkopíruje data ze zdroje do cíle.

Kdy použít SCP?

SCP je obzvláště užitečné v následujících situacích:

Zálohování vzdáleného serveru

SCP umožňuje vytvářet zálohy dat ze vzdáleného serveru na váš lokální počítač, nebo naopak. Tím je zajištěna redundance dat a možnost obnovy po havárii.

Nasazování aplikací

Zjednodušuje proces nasazování aplikací na více serverů díky bezpečnému přenosu potřebných souborů na cílové systémy.

Přenos velkých souborů

Pro velké soubory, které jsou příliš rozsáhlé pro zasílání e-mailem, nabízí SCP důvěryhodný a bezpečný způsob přenosu dat.

Zabezpečené sdílení souborů

SCP zajišťuje šifrování dat během přenosu, což umožňuje bezpečné sdílení důvěrných souborů s ostatními.

Spolupráce na dálku

SCP lze využít pro zabezpečené sdílení souborů s kolegy nebo členy týmu, kteří se nacházejí na různých místech.

Syntaxe příkazu SCP

Než začneme s praktickým používáním příkazu SCP, pojďme se podívat na jeho základní syntaxi.

Syntaxe příkazu SCP vypadá následovně:

scp [volby] [zdroj] [cíl]

Vysvětlení syntaxe

Volby

Jedná se o nepovinné přepínače, které upravují chování příkazu SCP. Můžete je využít k přizpůsobení procesu přenosu. Zde jsou některé běžné volby:

-r: Rekurzivně kopíruje adresáře a jejich obsah.
-p: Zachovává oprávnění, časová razítka a režimy původního souboru.
-P: Určuje číslo portu pro připojení SSH.
-i: Určuje soubor soukromého klíče pro autentizaci SSH.
-C: Používá kompresi pro zrychlení přenosu dat.
-l: Omezuje šířku pásma používanou pro přenos (v kbit/s).
-v: Podrobný režim – zobrazuje ladicí zprávy během přenosu.
-o: Předává možnost klientovi SSH. Lze jej použít k deaktivaci přísné kontroly hostitelského klíče.

Zdroj

Zdroj označuje soubor nebo adresář, který chcete zkopírovat. Může se jednat o lokální cestu nebo vzdálenou cestu – záleží na kontextu.

Cíl

Cíl definuje umístění, kam chcete zdroj zkopírovat. Stejně jako zdroj, může to být lokální cesta nebo vzdálená cesta.

Příklady příkazů

#1. Zkopírování souboru z lokálního počítače na vzdálený server

scp /cesta/k/lokalnimu/souboru.txt uživatel@vzdalenýhost:/cesta/k/cíli/

/cesta/k/lokalnimu/souboru.txt: Toto je cesta k zdrojovému souboru, který chcete zkopírovat z lokálního počítače.

uživatel@vzdalenýhost: Nahraďte uživatele uživatelským jménem na vzdáleném serveru a vzdálenýhost názvem hostitele nebo IP adresou vzdáleného serveru.

/cesta/k/cíli/: Toto je cílová cesta na vzdáleném serveru, kam bude soubor zkopírován.

Příklad

V mém případě jsem pro přenos souboru zvolil jeden vzdálený server.

Uživatelské jméno vzdáleného hostitele – abhishekvarma

Adresa vzdáleného hostitele – 192.168.29.70

scp /home/vboxuser/Desktop/sample.zip [email protected]:/Users/abhishekvarma/Desktop

Při připojování ke vzdálenému počítači se vás zeptá na heslo. Zde jsem zvolil soubor zip pro kopírování.

Výstup

A výstup bude vypadat takto, pokud nedojde k chybě při připojení ke vzdálenému serveru.

sample.zip                                    100%   20KB  717.9KB/s   00:00

#2. Zkopírování souboru ze vzdáleného počítače na lokální počítač

scp uživatel@vzdalenýhost:/cesta/k/vzdalenemu/souboru.txt /cesta/k/lokalnimu/cíli/

Stejně jako výše, nahraďte adresu uživatele a vzdáleného hostitele.

Příklad

scp [email protected]:/Users/abhishekvarma/Desktop/sample.zip /home/vboxuser/Desktop

Výstup

Toto je v mém případě pouze ukázkový výstup. Časové razítko se liší v závislosti na rychlosti připojení.

sample.zip                                    100%   20KB  51.2KB/s   00:00

#3. Rekurzivní kopírování adresáře

scp -r uživatel@vzdalenýhost:/cesta/k/vzdalenemu/adresari/ /cesta/k/lokalnimu/cíli/

Zde příznak ‚-r‘ říká SCP, aby kopírovalo adresáře rekurzivně (včetně podadresářů a jejich obsahu).

Příklad

scp -r /home/vboxuser/Desktop [email protected]:/Users/abhishekvarma/Desktop

Zde jsem zmínil celý adresář pro kopírování souborů.

Výstup

sample.zip                                         100%   20KB    1.0MB/s   00:00
Screenshot from 2023-08-13 21-45-23.png            100%   27KB    1.5MB/s   00:00
.swp                                               100%   12KB  894.2KB/s   00:00
.help.swp                                          100%   12KB  780.4KB/s   00:00

#4. Kopírování souborů odpovídajících vzoru

scp /cesta/k/lokalnimu/*.txt uživatel@vzdalenýhost:/cesta/k/cíli/

*.txt – Toto je zástupný znak, který odpovídá všem souborům s příponou .txt v daném lokálním adresáři. Zdrojové a cílové cesty jsou stejné jako dříve.

Příklad

scp /home/vboxuser/Desktop/locfolder/*.png [email protected]:/Users/abhishekvarma/Desktop

Výstup

Zde jsem zkoušel s příponou .png.

Screenshot from 2023-08-13 21-45-23.png            100%   27KB    1.4MB/s   00:00
Screenshot from 2023-08-13 21-55-28.png            100%   24KB    1.7MB/s   00:00
Screenshot from 2023-08-13 22-04-03.png            100%   38KB    2.1MB/s   00:00

#5. Zachování atributů souboru

scp -p /cesta/k/lokalnimu/souboru.txt uživatel@vzdalenýhost:/cesta/k/cíli/

Zde příznak ‚-p‘ zachovává časy úprav, časy přístupu a režimy zdrojového souboru při kopírování.

Příklad

scp -p /home/vboxuser/Desktop/sample.zip [email protected]:/Users/abhishekvarma/Desktop

Výstup

sample.zip                                         100%   20KB    420.0KB/s   00:00

#6. Zadání jiného portu SSH

scp -P 22 /cesta/k/lokalnimu/souboru.txt uživatel@vzdalenýhost:/cesta/k/cíli/

Příznak ‚-P‘ určuje jiný port SSH (v tomto případě 22) pro připojení SCP. Můžete použít libovolný port.

Příklad

scp -P 22 /home/vboxuser/Desktop/sample.zip [email protected]:/Users/abhishekvarma/Desktop

Výstup

sample.zip                                         100%   20KB    1.2MB/s   00:00

#7. Kopírování s kompresí

scp -C /cesta/k/lokalnimu/souboru.txt uživatel@vzdalenýhost:/cesta/k/cíli/

Tento příznak ‚-C‘ umožňuje kompresi během přenosu, což potenciálně snižuje velikost přenášených dat. Zdrojová a cílová adresa jsou stejné, jak bylo vysvětleno dříve.

Příklad

scp -C /home/vboxuser/Desktop/sample.zip [email protected]:/Users/abhishekvarma/Desktop

Výstup

sample.zip                                         100%   20KB    985.8KB/s   00:00

#8. Podrobný výstup pro ladění

scp -v /cesta/k/lokalnimu/souboru.txt uživatel@vzdalenýhost:/cesta/k/cíli/

Tato volba ‚-v‘ aktivuje podrobný výstup, který poskytuje více informací během procesu přenosu.

Příklad

scp -v /home/vboxuser/Desktop/sample.zip [email protected]:/Users/abhishekvarma/Desktop

Výstup

Ukázkový výstup bude vypadat takto.

Executing: program /usr/bin/ssh host 192.168.29.70, user abhishekvarma, command scp -v -t /Users/abhishekvarma/Desktop OpenSSH_8.9p1 Ubuntu-3ubuntu0.3, OpenSSL 3.0.2 15 Mar 2022
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: include /etc/ssh/ssh_config.d/*.conf matched no files
debug1: /etc/ssh/ssh_config line 21: Applying options for *
debug1: Connecting to 192.168.29.70 [192.168.29.70] port 22. debug1: Connection established.
debug1: identity file /root/.ssh/id_rsa type -1
debug1: identity file /root/.ssh/id_rsa-cert type -1 debug1: identity file /root/.ssh/id_ecdsa type -1 debug1: identity file /root/.ssh/id_ecdsa-cert type -1 debug1: identity file /root/.ssh/id_ecdsa_sk type -1 debug1: identity file /root/.ssh/id_ecdsa_sk-cert type -1

#9. Kopírování ze vzdáleného do lokálního s podrobným výstupem

scp -v uživatel@vzdalenýhost:/cesta/k/vzdalenemu/souboru.txt /cesta/k/lokalnimu/cíli/

Stejné vysvětlení jako v předchozím podrobném příkladu, s obrácenými rolemi lokálních a vzdálených umístění.

Příklad

scp -v [email protected]:/Users/abhishekvarma/Desktop/sample.zip /home/vboxuser/Desktop

Výstup

Výstup bude vypadat takto.

Executing: program /usr/bin/ssh host 192.168.29.70, user abhishekvarma, command scp -v -f /Users/abhishekvarma/Desktop/sample.zip OpenSSH_8.9p1 Ubuntu-3ubuntu0.3, OpenSSL 3.0.2 15 Mar 2022
debug1: /etc/ssh/ssh_config line 19: include /etc/ssh/ssh_config.d/*.conf matched no files
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 21: Applying options for *
debug1: Connecting to 192.168.29.70 [192.168.29.70] port 22. debug1: Connection established.
debug1: identity file /root/.ssh/id_rsa type -1
debug1: identity file /root/.ssh/id_rsa-cert type -1 debug1: identity file /root/.ssh/id_ecdsa type -1 debug1: identity file /root/.ssh/id_ecdsa-cert type -1 debug1: identity file /root/.ssh/id_ecdsa_sk type -1 debug1: identity file /root/.ssh/id_ecdsa_sk-cert type -1

#10. Kopírování pomocí jiného klíče SSH

scp -i /cesta/k/soukromemu_klíci.pem /cesta/k/lokalnimu/souboru.txt uživatel@vzdalenýhost:/cesta/k/cíli/

Tento příznak „-i /cesta/k/soukromemu_klíci.pem“ specifikuje jiný soukromý klíč SSH pro autentizaci.

Příklad

scp -i /cesta/k/soukromemu_klíci.pem /home/vboxuser/Desktop/sample.zip [email protected]:/Users/abhishekvarma/Desktop

Výstup

Pokud máte soukromý klíč, můžete jej použít nebo můžete použít výchozí.

sample.zip                                         100%   20KB    1.1MB/s   00:00

#11. Zkopírování více souborů na vzdálený server

scp soubor1.txt soubor2.txt uživatel@vzdalenýhost:/cesta/k/cíli/

Tento příkaz zkopíruje soubor1.txt a soubor2.txt z lokálního adresáře do zadaného cíle na vzdáleném serveru.

Příklad

scp  /home/vboxuser/Desktop/image.png  /home/vboxuser/Desktop/sample.zip  [email protected]:/Users/abhishekvarma/Desktop

Výstup

image.png                                          100%   39KB    1.4MB/s   00:00
sample.zip                                         100%   20KB    1.5MB/s   00:00

#12. Zkopírování vzdáleného souboru s jiným názvem

scp uživatel@vzdalenýhost:/cesta/k/vzdalenemu/souboru.txt /cesta/k/lokalnimu/novy_nazev_souboru.txt

Tento příkaz zkopíruje soubor.txt ze vzdáleného serveru do lokálního adresáře a přejmenuje jej na nový_nazev_souboru.txt.

Příklad

scp [email protected]:/Users/abhishekvarma/Desktop/sample.zip /home/vboxuser/Desktop/novy_soubor.zip

Výstup

Při provádění tohoto příkazu by měly být staré a nové přípony souborů stejné.

sample.zip                                         100%   20KB    28.7KB/s   00:00

#13. Kopírování se specifickým limitem šířky pásma

scp -l 1000 /cesta/k/lokalnimu/souboru.txt uživatel@vzdalenýhost:/cesta/k/cíli/

Tento příznak ‚-l‘ určuje limit šířky pásma v kb/s (v tomto případě 1000 kb/s) pro přenos.

Příklad

scp -l 300 /home/vboxuser/Desktop/sample.zip [email protected]:/Users/abhishekvarma/Desktop

Výstup

sample.zip                                         100%   20KB    31.3KB/s   00:00

#14. Kopírování souborů a zachování symbolických odkazů

scp -rp /cesta/k/lokalnimu/zdroji/ uživatel@vzdalenýhost:/cesta/k/cíli/

Parametr ‚-p‘ zachovává atributy souboru a parametr -r rekurzivně kopíruje adresáře. Tento příkaz také zachová symbolické odkazy během kopírování.

Příklad

scp -rp /home/vboxuser/Desktop/image.png [email protected]:/Users/abhishekvarma/Desktop

Výstup

image.png                                        100%   39KB    1.8MB/s   00:00

#15. Podrobné kopírování souborů s kompresí

scp -vC