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

SCP úzce souvisí s protokolem SSH a skutečně se zrodil ze stejné myšlenky.

SCP jako rozšíření protokolu SSH zajišťuje, že data zůstanou během přenosu důvěrná a nezměněná.

Nejprve pochopíme, jak toto SCP funguje, a pak uvidíme příkazy scp.

Co je SCP?

SCP je zkratka pro Secure Copy Protocol.

Je to bezpečná a efektivní metoda pro kopírování souborů a adresářů mezi místními a vzdálenými hostiteli nebo mezi dvěma vzdálenými hostiteli.

Je široce používán pro bezpečný přenos dat po síti. SCP spoléhá na SSH (Secure Shell) při navazování zabezpečeného připojení a šifrování dat během přenosu.

Ať už potřebujete přesunout jeden soubor nebo celý adresář, SCP poskytuje spolehlivé řešení pro vzdálené přenosy souborů.

Jak SCP funguje?

SCP je postaven na protokolu SSH – což je šifrovací síťový protokol pro bezpečné vzdálené přihlášení a provádění příkazů. K ochraně dat během přenosu využívá stejné bezpečnostní mechanismy jako SSH, včetně šifrování a ověřování.

Při použití SCP uživatel spustí příkaz kopírování na svém místním počítači, který specifikuje zdrojový soubor a cílové umístění na vzdáleném počítači. SCP naváže připojení SSH ke vzdálenému systému a poté bezpečně zkopíruje soubory ze zdroje do cíle.

Kdy použít SCP?

SCP je zvláště užitečné v následujících scénářích.

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

SCP vám umožňuje zálohovat soubory ze vzdáleného serveru na váš místní počítač nebo naopak, což zajišťuje redundanci dat a obnovu po havárii.

Nasazování aplikací

Také zjednodušuje proces bezpečným kopírováním potřebných souborů do každého cílového systému při nasazování aplikací na více serverů,

Přenos velkých souborů

SCP nabízí důvěryhodnou a bezpečnou alternativní metodu přenosu dat pro velké soubory, které mohou být příliš velké pro odeslání jako přílohy e-mailu.

Zabezpečené sdílení souborů

SCP zajišťuje, že data jsou během přenosu šifrována a zároveň odesílá důvěrné soubory jiným lidem.

Spolupráce na dálku

SCP lze použít k bezpečnému sdílení souborů se spolupracovníky nebo členy týmu na různých místech.

Syntaxe příkazu SCP

Než začneme s tím, jak používat příkaz SCP, začněme pochopením základní syntaxe.

  Opravte Roblox Error Code 103 na Xbox One

Syntaxe příkazu SCP vypadá takto:

scp [options] [source] [destination]

Vysvětlení syntaxe

Možnosti

Toto jsou volitelné příznaky, které upravují chování příkazu SCP. K přizpůsobení procesu přenosu můžete použít různé možnosti. Zde jsou některé běžné možnosti:

-r: Rekurzivně kopíruje adresáře a jejich obsah.
-p: Zachová 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žijte kompresi pro urychlení přenosu dat.
-l: Omezí šířku pásma použitou pro přenos (v kbit/s).
-v: Podrobný režim – zobrazuje ladicí zprávy během přenosu.
-o: Předá možnost klientovi SSH. Lze jej použít k deaktivaci přísné kontroly hostitelského klíče.

Zdroj

Zdroj určuje soubor nebo adresář, který chcete zkopírovat. Může to být místní cesta nebo vzdálená cesta – v závislosti na kontextu.

Destinace

Cíl určuje, kam chcete zdroj zkopírovat. Stejně jako zdroj to může být také místní cesta nebo vzdálená cesta.

Příklady příkazů

#1. Zkopírujte soubor z místního na vzdálený server

scp /path/to/local/file.txt user@remotehost:/path/to/destination/

/path/to/local/file.txt: Toto je zdrojový soubor, který chcete zkopírovat z místního počítače.

user@remotehost: Nahraďte uživatele jménem vzdáleného uživatele a vzdáleného hostitele nahraďte názvem hostitele nebo IP adresou vzdáleného serveru.

/cesta/k/destinaci/: 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 zeptá na heslo. Zde jsem vybral soubor zip ke zkopí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írujte soubor ze vzdáleného počítače na místní počítač

scp user@remotehost:/path/to/remote/file.txt /path/to/local/destination/

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ě zkopírujte adresář

scp user@remotehost:/path/to/remote/file.txt /path/to/local/destination/

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írovat soubory odpovídající vzoru

scp /path/to/local/*.txt user@remotehost:/path/to/destination/

*.txt – Toto je vzor zástupného znaku, který odpovídá všem souborům s příponou .txt v zadaném místní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. Zachovat atributy souboru

scp -p /path/to/local/file.txt user@remotehost:/path/to/destination/

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

  Jak připojit AirPods k iPhone

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. Zadejte jiný port SSH

scp -P 22 /path/to/local/file.txt user@remotehost:/path/to/destination/

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írovat s kompresí

scp -C /path/to/local/file.txt user@remotehost:/path/to/destination/

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 /path/to/local/file.txt user@remotehost:/path/to/destination/

Tato volba ‚-v‘ aktivuje podrobný výstup, který poskytuje podrobnější informace 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 místního s podrobným výstupem

scp -v user@remotehost:/path/to/remote/file.txt /path/to/local/destination/

Stejná vysvětlení jako v předchozím podrobném příkladu, s obrácenými rolemi místní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 /path/to/private_key.pem /path/to/local/file.txt user@remotehost:/path/to/destination/

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

Příklad

scp -i /path/to/private_key.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írujte více souborů na vzdálený server

scp file1.txt file2.txt user@remotehost:/path/to/destination/

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

  Odblokujte aplikace pro videohovory v Dubaji a Spojených arabských emirátech

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írujte vzdálený soubor s jiným názvem

scp user@remotehost:/path/to/remote/file.txt /path/to/local/newfilename.txt

Tento příkaz zkopíruje soubor.txt ze vzdáleného serveru do místního adresáře a během procesu jej přejmenuje na nový názevsouboru.txt.

Příklad

scp [email protected]:/Users/abhishekvarma/Desktop/sample.zip /home/vboxuser/Desktop/newfile.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 /path/to/local/file.txt user@remotehost:/path/to/destination/

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
scp -rp /path/to/local/source/ user@remotehost:/path/to/destination/

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 /path/to/local/file.txt user@remotehost:/path/to/destination/

Tento příkaz kombinuje podrobný výstup (-v) a kompresi (-C) během přenosu souboru.

Příklad

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

Výstup

Výstup bude vypadat takto.

scp: debug1: fd 3 clearing O_NONBLOCK
Sending file modes: C0664 40050 image.png
Sink: C0664 40050 image.png
image.png
d 6 clearing O_NONBLOCK
scp: debug1: fd • clearing O_NONBLOCK
image.png
debug1: client_input_channel_req: channel ✪ type exit-status reply debug1: channel 0: free: client-session, channels 1
Transferred: sent 40220, received 2576 bytes, in 0.1 seconds
Bytes per second: sent 352570.0, received 22581.3
root@ubuntu: ~
debug1: Exit status 0
debug1: compress outgoing: raw data 40287, compressed 38198, factor 0.95 debug1: compress incoming: raw data 792, compressed 757, factor 0.96 

#16. Kopírování mezi dvěma vzdálenými servery

Pokud chcete přenést soubory z jednoho vzdáleného serveru na druhý, pak můžete použít tento příkaz.

scp user1@remotehost1:/path/to/remote/file.txt user2@remotehost2:/path/to/destination/

Tento příkaz přímo přenese soubor.txt z remotehost1 na remotehost2.

Příklad

scp user1@remotehost1:/path/to/remote/file.txt [email protected]:/Users/abhishekvarma/Desktop

Výstup

file.txt                100%  512KB 512.0KB/s   00:00

Pokud se během přenosu vyskytnou nějaké chyby nebo problémy – výstup může zobrazovat chybové zprávy, které poskytují informace o tom, co se pokazilo.

ssh: connect to host source.example.com port 22: Connection refused
lost connection

V tomto případě chybová zpráva naznačuje, že připojení SSH ke zdrojovému serveru bylo odmítnuto. Může to být způsobeno různými důvody, například nesprávným názvem hostitele, IP adresou, portem nebo problémy s konfigurací SSH.

Často kladené otázky o SCP

Zde jsou některé často kladené otázky týkající se protokolu SCP spolu s jejich odpověďmi.

Jak se SCP liší od FTP nebo SFTP?

FTP je zkratka pro File Transfer Protocol.

SFTP je zkratka pro File Transfer Protocol. Oba se používají pro přenos souborů.

SCP funguje přes SSH a nabízí jak šifrování, tak autentizaci v jediném protokolu, díky čemuž je bezpečnější a efektivnější.

Kdy bych měl SCP používat?

SCP se nejlépe hodí pro scénáře, kde jsou vyžadovány bezpečné a spolehlivé přenosy souborů, jako je vzdálené zálohování, nasazení softwaru, distribuce konfiguračních souborů a spolupráce mezi členy týmu.

Je SCP kompatibilní s adresami IPv6?

Ano, SCP podporuje adresy IPv4 i IPv6, což vám umožňuje přenášet soubory přes sítě, které používají libovolné schéma adresování.

Závěr ✍️

Doufám, že vám tento článek pomohl při poznávání SCP a jeho fungování.

Také by vás mohlo zajímat informace o Linux Commands for System Administrator