Obecně platí, že pokud chcete kopírovat soubory a adresáře z jednoho serveru / zařízení localhost na jiný, musíte použít služby sdílení souborů, jako je Samba (SMB) nebo NFS. I když jsou spolehlivé, je při kopírování jednorázových souborů zdlouhavý proces.
Je to proto, že musíte nastavit a nakonfigurovat server Samba nebo NFS. To přináší potřebu porozumět a používat příkaz SCP Linux.
Příkaz SCP (Secure Copy) je nástroj pro Linux, který se používá k bezpečnému kopírování souborů / adresářů mezi hostiteli. K přenosu a ověřování uživatelů používá SSH (Secure Shell). Proto, stejně jako při použití SSH, jste povinni znát pověření vašich vzdálených hostitelů.
Pokud jste dobře obeznámeni s příkazem Linux CP, který se používá ke kopírování souborů a adresářů, pak se SCP příliš neliší. Jediným přidaným a užitečným parametrem je vzdálený cílový název hostitele. Podívejte se na níže uvedenou syntaxi.
scp file_name_to_copy uživatelské jméno @ destination_host: cesta_ cílového_adresáře
V parametru destination_host musíte zadat IP adresu vašeho vzdáleného hostitele. Pokud nevíte, jak to najít, spusťte ipconfig příkaz na terminálu.
Nejlepší způsoby použití příkazu SCP v systému Linux
V tomto článku se podíváme na 15 užitečných příkazů SCP, které můžete použít při každodenní interakci se systémy Linux. Budeme používat Ubuntu 18.04 Virtuální stroj LTS Server jako náš vzdálený hostitel.
1. Zkopírujte jeden soubor z místního počítače na vzdáleného hostitele
Je to jeden z nejpřímějších příkazů. Mám soubor s názvem Ahoj.scp na našem místním počítači, který zkopírujeme do našeho vzdáleného hostitele. Viz příkaz níže.
scp Dobrý den.scp tuts @ 192.168.83.132: / home / tuts / FOSSLINUX
Na pravé straně máme náš localhost a na levé straně je náš server Ubuntu. Pokud to děláte poprvé, mělo by se zobrazit varování s dotazem, zda chcete pokračovat v připojování, zadejte 'Ano.„Měla by se zobrazit výzva k zadání hesla vzdáleného hostitele. Provedením je příkaz na vzdáleném hostiteli, vidíme, že jsme náš soubor úspěšně zkopírovali.
2. Zkopírujte více souborů
V předchozím příkazu jsme viděli, jak můžeme zkopírovat jeden soubor. Chcete-li zkopírovat více souborů, použijte syntaxi v níže uvedeném příkazu. Zkopírujeme tři soubory, Ahoj1, Ahoj2, a Ahoj3.
scp Hello1 Hello2 Hello3 tutuje @ 192.168.83.132: / home / tuts / FOSSLINUX
Spuštěním je příkaz na vzdáleném hostiteli, vidíme, že jsme úspěšně zkopírovali soubory.
3. Zkopírujte adresář rekurzivně
Kromě souborů můžeme pomocí SCP zkopírovat adresář z místního počítače do vzdáleného cíle. Použijte syntaxi v níže uvedeném příkazu. Zkopírujeme složku FOSSTUTS.
scp -r FOSSTUTS vyučuje @ 192.168.83.132: / home / tuts / FOSSLINUX
Všimněte si, že při provádění jakékoli akce v celém adresáři budeme muset zahrnout parametr -r, což znamená rekurzivní.
4. Kopírování souborů s podrobným výstupem
Zahrnutí podrobného parametru do naší syntaxe SCP vytiskne veškerý proces, který SCP dělá na pozadí. Zkopírujme více souborů na našeho vzdáleného hostitele pomocí parametru -v (verbose).
scp Hello1 Hello2 Hello3 tutuje @ 192.168.83.132: / home / tuts / FOSSLINUX
Z výše uvedeného obrázku vidíte, že máme mnoho výstupů z příkazu, který jsme spustili v místním počítači. Poskytne vám všechny podrobnosti týkající se aktuálně prováděné operace.
5. Zkopírujte soubory přes dva vzdálené hostitele
Za předpokladu, že spravujete více vzdálených serverů a chcete zkopírovat soubor z jednoho serveru na druhý. Podívejte se na syntaxi v níže uvedeném příkazu.
scp tuts @ 192.168.43.96: / home / tuts / FOSSLINUX / Hello1 tuts @ 192.168.83.132: / home / tuts / FOSSLINUX
Kopírujeme soubor Ahoj1 od hostitele 192.168.43.96 na hostitele 192.168.83.132.
6. Komprese a kopírování souborů
Chcete-li urychlit proces kopírování a ušetřit na šířce pásma, můžete komprimovat soubory pomocí parametru -C. Data jsou za běhu komprimována na místním počítači a na vzdáleném hostiteli dekomprimována. Viz syntaxe níže.
scp -vC Hello1 vede @ 192.168.83.132: / home / tuts / FOSSLINUX
Zahrnuli jsme parametr -v (verbose), abyste viděli, co se děje.
7. Správa šířky pásma
Kopírování souboru na vzdáleného hostitele lze vysvětlit jako upload. Pokud je šířka pásma nahrávání vysoká, může to ovlivnit další procesy běžící na pozadí. Můžete omezit šířku pásma pro použití v procesu kopírování pomocí parametru -l. Viz příkaz níže.
scp -l 100 Hello1 sleduje @ 192.168.83.132: / home / tuts / FOSSLINUX
Šířka pásma, kterou přiřadíte, je v kilobajtech. Proto ve výše uvedeném příkazu používáme k provedení procesu kopírování maximálně 100 kB / s.
8. Použijte vlastní číslování portů
Jak bylo vysvětleno výše, SCP používá SSH k provádění procesu kopírování souborů. Ve výchozím nastavení běží SSH na portu 22; pokud jste však nakonfigurovali server SSH na vzdáleném serveru tak, aby běžel na jiném portu, můžete to zadat ve svém příkazu SCP. Viz příkaz níže.
scp -P 22 Hello1 vede @ 192.168.83.132: / home / tuts / FOSSLINUX
Vzhledem k tomu, že jsem nenakonfiguroval žádný server SSH, necháme pro tento příspěvek číslo portu na 22.
9. Kopírování a uchování atributů souboru
V případě, že chcete zkopírovat soubor a zachovat atributy, jako jsou oprávnění, časy úprav, časy přístupu atd., použijte parametr -p s příkazem SCP. Viz příkaz níže.
scp -P 22 Hello1 vede @ 192.168.83.132: / home / tuts / FOSSLINUX
Všimněte si, že v tomto příkladu je 'p' malá písmena, na rozdíl od použití vlastního čísla portu.
10. Potlačit výstup SCP pomocí parametru -q
Předpokládejme, že nechcete tisknout výstup SCP, upozornění na chyby, varování nebo dokonce měřič průběhu. Můžete toho dosáhnout pomocí parametru -q, který potlačí veškerý výstup SCP.
scp -q Hello1 tuts @ 192.168.83.132: / home / tuts / FOSSLINUX
Z výše uvedeného obrázku je jediným výstupem SCP výzva k zadání hesla. Parametr -q potlačuje všechny ostatní výstupy.
11. Pomocí SCP zkopírujte soubor ze vzdáleného hostitele do místního počítače.
U většiny výše uvedených příkladů kopírujeme soubory z místního počítače na vzdálený server. Nyní předpokládejme, že chcete zkopírovat soubor ze vzdáleného serveru do místního počítače. Měli byste použít příkaz SCP s trochou vylepšení v obvyklé syntaxi. Podívejte se na příkaz níže.
scp tuts @ 192.168.83.132: / home / tuts / FOSSLINUX / serverFile.txt / home / tuts / FOSSLINUX
Spuštěním je příkaz na našem místním počítači, vidíme, že 'serverFile.txt 'úspěšně zkopírován.
12. Zkopírujte soubory a adresáře bez použití hesel
Z výše uvedených příkladů vidíme, že kdykoli potřebujeme zkopírovat soubor, zobrazí se výzva k zadání hesla. Tento krok můžeme přeskočit generováním klíčů SSH, které se použijí během procesu ověřování.
Chcete-li vygenerovat klíč SSH, použijte níže uvedený příkaz.
ssh-keygen -t rsa
Systém by měl vygenerovat klíč SSH. Proces, který probíhá, můžete vidět z výstupu v terminálu. Nyní musíme zkopírovat klíč do našeho vzdáleného hostitele, abychom jej mohli použít k ověřování. Použijte následující příkaz.
ssh-copy-id root @ 192.168.4.200
Zkusme nyní zkopírovat soubor z místního počítače na vzdáleného hostitele.
scp Hello1 tuts @ 192.168.83.132: / home / tuts / FOSSLINUX
Z výše uvedeného obrázku vidíme, že se nezobrazila žádná výzva k zadání hesla.
13. Použijte jinou šifru
SCP používá k bezpečnému kopírování souborů šifrování / šifrování AES. Pomocí parametru -c však můžete určit jiné šifrovací schéma. Všimněte si, že C je malá na rozdíl od komprese, kde C je velká písmena. Viz příkaz níže.
scp -c aes128-gcm @ openssh.com TESTFILE se přihlásí @ 192.168.83.132: / home / tuts / FOSSLINUX
Specifikovali jsme šifrovací schéma, které chceme použít jako AES. Můžete také použít jiné, jako je blowfish a mnoho dalších.
scp -c blowfish TESTFILE provádí @ 192.168.83.132: / home / tuts / FOSSLINUX
14. Místo hesla použijte soubor klíče SSH
SCP umožňuje použít soubor klíčů místo hesla k dokončení procesu ověřování pomocí parametru -i následovaného souborem klíčů. Viz příkaz níže.
scp -c privateKey.pem TESTFILE vyučuje @ 192.168.83.132: / home / tuts / FOSSLINUX
15. Ke kopírování souborů použijte skript SCP
Za předpokladu, že musíte příkaz SCP používat pravidelně, můžete pro zjednodušení celého procesu napsat shell skript. V tomto článku budeme psát skript, který čte cílového hostitele z destfile.txt.
Níže je náš SCP skript
echo "SPUŠTĚNÍ SCP SCRIPT" echo echo -e "Zadejte cestu k souboru, který chcete zkopírovat: \ c" přečíst soubor pro cíl v 'cat / tmp / destfile.txt '; udělat scp -rC $ soubor $ dest: / tmp / hotovo
Uložte soubor pomocí a ''.sh.'' rozšíření, protože je to bash skript. Před spuštěním proveďte skript spustitelný pomocí příkazu chmod, jak je znázorněno na obrázku níže.
Závěr
Jedná se o 15 praktických příkladů SCP, které můžete použít, aby vám usnadnil život při práci se systémy Linux. Máte příkaz SCP, který chcete sdílet s našimi čtenáři? Zanechat komentář níže. Pokud vám tento článek připadá vynalézavý, sdílejte odkaz s přáteli.