SCP znamená zabezpečené kopírování. Je to nástroj příkazového řádku Linuxu používaný k bezpečnému kopírování souborů a adresářů mezi servery. SCP používá protokol SSH, takže mezi servery vyžaduje heslo nebo méně hesel. Pomocí SCP můžete kopírovat soubory mezi dvěma vzdálenými hostiteli z vašeho místního systému a také kopírovat soubory mezi místními a vzdálenými hostiteli.
V tomto tutoriálu vám na příkladech ukážeme, jak používat příkaz SCP.
Předpoklady
- Nové Ubuntu 18.04 VPS na cloudové platformě Atlantic.net.
- Heslo uživatele root nakonfigurované na vašem serveru.
Vytvořte cloudový server Atlantic.Net
Nejprve se přihlaste ke svému cloudovému serveru Atlantic.Net. Vytvořte nový server a jako operační systém vyberte Ubuntu 18.04 s alespoň 1 GB RAM. Připojte se ke svému cloudovému serveru přes SSH a přihlaste se pomocí přihlašovacích údajů zvýrazněných v horní části stránky.
Jakmile se přihlásíte ke svému serveru Ubuntu 18.04, spusťte následující příkaz a aktualizujte svůj základní systém nejnovějšími dostupnými balíčky.
apt-get update -y
1. Syntaxe SCP
Základní syntaxe příkazu SCP je uvedena níže:
scp [volba] [email protected]:/file_or_directory [email protected]:/directory
uživatel: Jméno uživatele.
source-ip: IP adresa systému, odkud chcete kopírovat soubory nebo adresáře.
cíl-ip: IP adresa cílového systému.
Některé z voleb používaných v příkazu scp jsou uvedeny níže:
-P: Zadejte číslo portu ssh cílového hostitele.
-r: Používá se k rekurzivnímu kopírování souborů a adresářů.
-v: Používá se k zobrazení podrobného výstupu během přenosu souboru.
-C: Používá se k povolení komprese souborů.
-i: Zadejte klíč SSH.
-l: Používá se k omezení šířky pásma při kopírování.
-p: Používá se k zachování oprávnění, režimů a doby přístupu k souborům při kopírování.
2. Kopírování souboru z místního do vzdáleného hostitele
Pokud chcete zkopírovat soubor s názvem /etc/rc.local z localhost do vzdáleného hostitele (172.20.10.3) v adresáři /mnt, spusťte následující příkaz:
scp /etc/rc.local [email protected]:/mnt/
Měli byste vidět následující výstup:
Pokud chcete zkopírovat více souborů (v tomto příkladu použijeme /etc/fstab a /etc/hosts, a zkopírujte je do vzdáleného hostitele (172.20.10.3) do adresáře /mnt), spusťte následující příkaz:
scp /etc/fstab /etc/hosts [email protected]:/mnt/
Měli byste vidět následující výstup:
3. Rekurzivní kopírování souborů a adresářů
Pro zkopírování celého adresáře z jednoho systému do druhého můžete použít rekurzivní volbu -r s SCP.
Chcete-li například zkopírovat adresář s názvem /var/log/apache2 z localhost na vzdálený hostitel (172.20.10.3) v adresáři /mnt rekurzivně spusťte následující příkaz:
scp -r /var/log/apache2 [email protected]:/mnt/
Měli byste vidět následující výstup:
Můžete také použít volbu -v s SCP pro zobrazení podrobného výstupu během procesu kopírování:
scp -vr /var/log/apache2 [email protected]:/mnt/
4. Kopírování souboru ze vzdáleného do místního hostitele
Pokud chcete zkopírovat soubor s názvem /etc/hostname ze vzdáleného hostitele (172.20.10.3) do localhost v adresáři /opt, spusťte následující příkaz:
scp [email protected]:/etc/hostname /opt/
Měli byste vidět následující výstup:
5. Kopírování souboru z jednoho vzdáleného hostitele na jiný vzdálený hostitel
Chcete-li kopírovat soubory a adresáře mezi dvěma vzdálenými hostiteli, budete muset nakonfigurovat ověřování pomocí klíče SSH mezi oběma vzdálenými hostiteli.
Po konfiguraci ověřování na základě klíče zkopírujte adresář s názvem /var/log z jednoho vzdáleného hostitele (172.20.10.3) do druhého vzdáleného hostitele (172.20.10.4) v adresáři /mnt a spusťte následující příkaz:
scp -r [email protected]:/var/log [email protected]:/mnt/
6. Omezení využití šířky pásma při kopírování
Můžete použít volbu -l s SCP k omezení šířky pásma během procesu kopírování.
Chcete-li například zkopírovat soubor s názvem google-chrome-stable_current_amd64.deb z localhost do vzdáleného hostitele (172.20.10.3) v adresáři /opt a omezit šířku pásma na 1000 kB/s (1000×8), spusťte následující příkaz:
scp -l 8000 /home/vyom/Downloads/google-chrome-stable_current_amd64.deb [email protected]:/opt/
Měli byste vidět následující výstup:
7. Určete konkrétní port pomocí SCP
V některých případech se port SSH na cílovém hostiteli liší. V tomto případě můžete použít volbu -P k určení portu SSH.
Chcete-li například zkopírovat soubor s názvem /etc/hosts v místním systému do vzdáleného hostitele (172.20.10.3) v adresáři /mnt pomocí portu 8088, spusťte následující příkaz:
scp -P 8088 /etc/hosts [email protected]:/mnt/
8. Povolení komprese při kopírování
Pomocí volby -C s SCP můžete povolit kompresi u zdroje a dekompresi na cílovém hostiteli. To může zvýšit rychlost přenosu velkých souborů.
Chcete-li například zkopírovat adresář /var/log/nginx na místním hostiteli ke vzdálenému hostiteli (172.20.10.3) v adresáři /mnt s kompresí spusťte následující příkaz:
scp -r -C /var/log/nginx [email protected]:/mnt/
Měli byste vidět následující výstup:
9. Zachovejte oprávnění, režimy a dobu přístupu k souborům při kopírování
Můžete použít volbu -p s SCP pro zachování oprávnění, doby přístupu a režimů během procesu kopírování.
Chcete-li například zkopírovat soubor s názvem magento-ce-2.3.5-p1-2020-04-24-08-59-28.tar.bz2 na místním hostiteli ke vzdálenému hostiteli (172.20.10.3) v adresáři /mnt a zachování oprávnění, doby přístupu a režimů spusťte následující příkaz:
scp -p /home/vyom/Downloads/magento-ce-2.3.5-p1-2020-04-24-08-59-28.tar.bz2 [email protected]:/mnt/
Měli byste vidět následující výstup:
Závěr
Ve výše uvedené příručce jste se naučili používat SCP k bezpečnému přenosu souborů a adresářů z jednoho serveru na druhý. Začněte s SCP na VPS Hosting účtu u Atlantic.Net ještě dnes!