GNU/Linux >> Znalost Linux >  >> Linux

4 způsoby přenosu souborů a adresářů v systému Linux

Jako správce systému Linux existuje mnoho různých způsobů přenosu souborů , bezpečně nebo ne, mezi dvěma různými hostiteli.

Během své denní práce můžete být požádáni o provedení některých velkých přesunů mezi dvěma vzdálenými servery.

Možná budete muset zálohovat celou databázi na zabezpečeném sdíleném disku, nebo můžete jednoduše chtít získat vzdálený soubor do vašeho systému.

V důsledku toho chcete přenést soubory , ale chcete to udělat velmi bezpečným a bezpečným způsobem.

Naštěstí pro vás existuje mnoho různých příkazů, které můžete použít, abyste toho dosáhli.

V tomto tutoriálu se podíváme na všechny různé způsoby přenosu souborů mezi hostiteli v systému Linux pomocí ftp, sftp, scp nebo rsync.

Jste připraveni?

Zde jsou všechny způsoby přenosu souborů v systému Linux:

Přenos souborů v systému Linux pomocí ftp

Prvním způsobem přenosu souborů v systému Linux je použití ftp příkaz .

Ve výchozím nastavení používá protokol FTP protokol TCP, který je nezabezpečený .

To znamená, že pokud by někdo sledoval data nebo pakety odesílané přes síť, mohl by vidět, co posíláte vzdáleným hostitelům.

Ve většině případů to není něco, co chcete pro přenosy souborů, zvláště když se provádějí přes internet.

Stále však poskytneme syntaxi příkazu ftp, protože může být užitečné jej použít pro jednoduchost v místních sítích.

Ve výchozím nastavení nemusí mít vaše distribuce ve výchozím nastavení nainstalován příkaz ftp.

Chcete-li zkontrolovat, zda je na vašem hostiteli nainstalován ftp, můžete spustit následující příkaz

$ command -v ftp

Pokud vám nejsou poskytnuty žádné výstupy, znamená to, že ftp není ve vašem systému dostupný.

Instalace ftp na distribucích založených na Debianu

Chcete-li jej nainstalovat do Debianu -založené distribuce, spusťte následující příkaz

Abyste mohli nainstalovat nové balíčky, musíte mít ve své distribuci Debian oprávnění sudo

$ sudo apt-get install ftp

Po instalaci spusťte znovu příkaz „command“, abyste se ujistili, že je ve vašem systému správně dostupný.

$ command -v ftp
/usr/bin/ftp

Instalace ftp na distribucích založených na Red Hatu

Chcete-li nainstalovat ftp na distribuce založené na Red Hat, musíte spustit následující příkazy

Chcete-li nainstalovat nové balíčky na RHEL nebo CentOS , musíte mít ve své distribuci CentOS oprávnění sudo.

$ sudo yum install ftp

Znovu spusťte příkaz „command“, abyste zkontrolovali, zda byly vaše balíčky správně nainstalovány

$ command -v ftp
/usr/bin/ftp

Připojte se ke vzdáleným hostitelům pomocí ftp

Chcete-li se připojit ke vzdáleným hostitelům pomocí příkazu ftp, musíte použít následující syntaxi

$ ftp <destination_ip>

Toto byste měli vidět při připojování, pokud se připojujete k nechráněnému FTP serveru.

Zadejte uživatelské jméno, které vám bylo přiděleno pro připojení k tomuto FTP serveru.

Budete vyzváni k zadání hesla. Pokud jsou přihlašovací údaje správné, měli byste být schopni se přihlásit přímo na váš FTP server.

Stahování souborů v systému Linux pomocí ftp

Když jste připojeni ke svému FTP serveru, existuje mnoho způsobů, jak s ním komunikovat.

Nejprve klikněte na „? “, abyste viděli všechny příkazy, které máte k dispozici.

Jak můžete vidět, dostupné příkazy jsou téměř totožné s těmi, které byste našli na standardním systému Linux.

Ve výchozím nastavení vám na vašem FTP serveru bude poskytnut FTP shell přístup přímo do vašeho domovského adresáře.

Chcete-li zobrazit všechny soubory, které máte v aktuálním adresáři k dispozici, spusťte následující příkaz

$ ls

Jak můžete vidět zde, uvádím seznam položek mého domovského adresáře.

Chcete-li se pohybovat v jedné ze složek, stiskněte standardní příkaz „cd“ s cestou, kam chcete přejít.

Chcete-li stáhnout soubor z aktuálního adresáře, musíte spustit následující příkaz

$ get <file>

Místní bude zkopírováno do vašeho aktuálního pracovního adresáře na místním počítači, což znamená cestu, odkud jste spustili příkaz ftp.

Jako vedlejší poznámku, pokud chcete stáhnout více souborů ze vzdálených hostitelů, musíte použít příkaz „mget“ s následující syntaxí

$ mget <file1> <file2> ... <filen>

Gratulujeme!

Úspěšně jste přenesli soubor ze vzdáleného počítače do místního počítače pomocí FTP.

Nahrávání souborů v systému Linux pomocí ftp

Pomocí FTP můžete stahovat soubory ze vzdálených hostitelů, ale také můžete soubory nahrávat na vzdálené hostitele.

Chcete-li nahrát soubory pomocí ftp, musíte použít příkaz „put“ s následující syntaxí

$ put <file>

Váš soubor by nyní měl být přístupný na vašem vzdáleném hostiteli, v domovském adresáři uživatele, kterého používáte k přenosu souborů.

$ ls /home/<user>
file.txt

Podobně, pokud chcete nahrát více souborů na vaše vzdálené hostitele, můžete použít „mput“ tímto způsobem

$ mput <file1> <file2> ... <filen>

Gratulujeme!

Úspěšně jste přenesli soubory z místního hostitele do vzdáleného hostitele pomocí ftp.

Přenos souborů pomocí sftp v systému Linux

Bezpečnějším způsobem přenosu souborů mezi dvěma hostiteli je použití příkazu sftp.

Příkaz sftp, který znamená „Secure File Transfer Protocol “, je způsob přenosu souborů mezi dvěma hostiteli pomocí šifrovaného provozu.

V důsledku toho, i když někdo zachytí provoz mezi vámi a vzdáleným hostitelem, nebude jej moci dešifrovat, aniž by měl přístup k vašim klíčům SSH.

Při použití příkazu sftp musí být hostitel, do kterého se pokoušíte stáhnout nebo odeslat soubory, vybaven serverem SSH.

Pokud na svém vzdáleném hostiteli používáte server OpenSSH, budete se k němu moci připojit, abyste mohli přenášet soubory.

Ve výchozím nastavení sftp by měl být dostupný ve vašem systému, ale můžete to ověřit spuštěním následujícího příkazu.

$ command -v sftp
/usr/bin/sftp

Připojte se ke vzdáleným hostitelům pomocí sftp

Chcete-li se připojit ke vzdáleným hostitelům pomocí sftp, musíte použít následující syntaxi

$ sftp <destination_ip>

Ve výchozím nastavení, pokud se ke vzdálenému hostiteli připojujete poprvé, budete požádáni o přidání hostitele do seznamu důvěryhodných hostitelů vašeho systému (ve výchozím nastavení se nachází na /home/user/.ssh/known_hosts)

Nyní, když jste připojeni ke vzdálenému serveru SSH, je syntaxe pro navigaci nebo přenos souborů stejná jako u standardního příkazu ftp.

Stahování souborů v systému Linux pomocí sftp

Nejprve můžete stisknout "?" abyste viděli všechny příkazy, které máte na SSH serveru k dispozici.

Nejprve stiskněte příkaz „ls“, abyste viděli všechny soubory a složky, které máte na vzdáleném systému k dispozici.

$ ls

Jak můžete vidět, tento příkaz vypíše celou složku, ve které právě sedím (což je v tomto případě domovský adresář).

Chcete-li přejít do složky, stiskněte příkaz „cd“, který by normálně fungoval na standardním FTP serveru.

$ cd <path>

Chcete-li stáhnout soubor na SFTP server, použijte příkaz „get“ s touto syntaxí

$ get <file>

Soubor bude zkopírován z aktuálního vzdáleného adresáře do místního adresáře, ve kterém jste spustili příkaz sftp.

Gratulujeme! Správně jste přenesli soubory ze vzdáleného hostitele do místního počítače.

Nahrávání souborů v systému Linux pomocí sftp

Případně můžete přenášet soubory mezi místním počítačem do vzdáleného hostitele.

Chcete-li přenést soubory pomocí sftp, musíte použít příkaz „put“.

$ put <file>

Pokud uvedete seznam položek vašeho vzdáleného adresáře, měli byste vidět svůj soubor.

$ sftp> ls -l

Gratulujeme!

Úspěšně jste přenesli soubory z místního hostitele do vzdáleného počítače.

Přenos souborů v systému Linux pomocí scp

Jedním z dalších způsobů přenosu souborů mezi dvěma hostiteli v systému Linux je použití příkazu scp.

$ scp <option> <source_user>@<source_host>:<file> <destination_user>@<destination_host>:<file>

Příkaz scp naváže zabezpečené spojení mezi dvěma hostiteli a k ​​přenosu souborů používá standardní port SSH.

V důsledku toho budete pro přenos souboru potřebovat SSH server na vašem cílovém hostiteli.

Chcete-li například přenést místní soubor z vašeho aktuálního počítače do vzdáleného hostitele, spustili byste následující příkaz

$ scp file [email protected]:file

Ve výchozím nastavení, pokud neurčíte absolutní cestu, budou soubory zkopírovány přímo do domovského adresáře uživatele, se kterým se připojujete.

Nyní, když zkontroluji soubory na svém vzdáleném hostiteli, soubor by měl být umístěn v domovském adresáři uživatele.

Přenos adresářů v systému Linux pomocí scp

Pomocí příkazu scp je také možné přenést celé adresáře do cílového hostitele.

Chcete-li kopírovat adresáře, musíte zadat volbu „-r“.

Vezměme si příklad složky s názvem „adresář“ se 3 soubory. Chcete-li je zkopírovat, musíte použít následující příkaz

$ scp -r directory [email protected]:.

Pokud si prohlédnete adresáře na vašem cílovém hostiteli, měli byste být schopni vidět váš přenesený adresář.

Všimněte si, že pokud u cíle zadáte vlastní adresář, bude vytvořen, pokud ve výchozím nastavení neexistuje.

Přenos souborů mezi dvěma vzdálenými hostiteli

V předchozím příkladu jsme použili místního hostitele se vzdáleným hostitelem, kterého jsme kontaktovali pomocí jeho IP adresy.

Nyní možná budete muset přenášet soubory mezi dvěma vzdálenými hostiteli umístěnými na dvou různých IP adresách.

Chcete-li přenést soubory mezi těmito dvěma hostiteli, provedete následující příkaz

$ scp <option> <source_user>@<source_host>:<file> <destination_user>@<destination_host>:<file>

Například by to vedlo k

$ scp [email protected]:file [email protected]:file

Pamatujte, že v tomto případě budete potřebovat dva servery SSH na obou instancích, jinak to nebude fungovat.

Používání scp s ukazatelem průběhu

Chcete-li zobrazit statistiky pro proces scp, musíte zadat volbu „-v“ (což znamená verbose)

$ scp -v <source_user>@<source_host>:<file> <destination_user>@<destination_host>:<file>

Přenos souborů v systému Linux pomocí nástroje rsync

Konečně posledním způsobem přenosu souborů mezi dvěma hostiteli v Linuxu je použití příkazu rsync.

Příkaz rsync také používá zabezpečený protokol, protože pro přenos dat spoléhá na protokol SSH. Lze jej použít mnoha různými způsoby, ale my se v tomto tutoriálu zaměříme na přenos souborů.

Příkazy scp a rsync jsou velmi podobné, ale rsync poskytuje mnohem více funkcí pro přenos souborů. Můžete se například rozhodnout zahrnout určité soubory a vyloučit jiné. Můžete se také rozhodnout zachovat oprávnění nebo pevné odkazy během kopírování.

Celkově je rsync superset příkazu scp.

Ve výchozím nastavení nemusí být ve vašem systému nainstalován příkaz rsync. Chcete-li jej nainstalovat, postupujte podle těchto pokynů.

Instalace rsync na distribucích založených na Debianu

Abyste mohli nainstalovat rsync, budete na svém hostiteli uživatelem sudo.

Chcete-li nainstalovat rsync, spusťte následující příkaz

$ sudo apt-get install rsync

Nakonec spusťte příkaz, abyste se ujistili, že byl správně nainstalován.

$ rsync --help

Instalace rsync na distribucích založených na Red Hatu

Chcete-li nainstalovat rsync na RHEL nebo CentOS, spusťte následující příkaz

$ sudo yum install rsync

Podobně spusťte možnost nápovědy, abyste se ujistili, že byla nainstalována správně.

$ rsync --help

Použití rsync k přenosu souborů v Linuxu

Nyní, když je rsync správně nainstalován na vašem hostiteli, můžete jej používat následujícím způsobem

$ rsync <option> <source_user>@<source_host>:<file> <destination_user>@<destination_host>:<file>

Chcete-li například přenést soubory z místního hostitele na vzdálený počítač, spustili byste následující příkaz

$ rsync file [email protected]:file

Podobně pro kopírování souborů ze vzdáleného hostitele do místního počítače byste spustili

$ rsync [email protected]:file file

Použití rsync k přenosu adresářů v Linuxu

Pomocí rsync můžete také přenést kompletní adresáře z místního hostitele na vzdálený.

Stačí ke své aktuální syntaxi přidat volbu „-r“

$ rsync -r <source_user>@<source_host>:<file> <destination_user>@<destination_host>:<file>

Při kopírování adresářů existuje pravidlo, které musíte znát.

Při zadávání zdrojového adresáře máte možnost přidat na konec koncové lomítko, abyste zkopírovali obsah adresáře a ne adresář samotný.

Pro ilustraci řekněme, že máte adresář s názvem „adresář“, který chcete přenést do vzdáleného adresáře s názvem „adresář“ na vašem vzdáleném počítači.

Při použití koncové syntaxe to je to, co byste získali na vzdáleném hostiteli

$ rsync directory/ [email protected]:directory

Na vzdáleném hostiteli

/home/user/
├── directory
    ├── file1
    ├── file2
    ├── file3

Pokud však píšete rsync bez koncového lomítka, tj.

$ rsync directory [email protected]:directory

Na vzdáleném hostiteli

/home/user/
├── directory
    ├── directory
        ├── file1
        ├── file2
        ├── file3

V důsledku toho můžete chtít ve výchozím nastavení zahrnout koncová lomítka při kopírování souborů z jednoho hostitele na druhého, abyste se vyhnuli duplicitním názvům adresářů.

Použití rsync s ukazatelem průběhu

Jedním z velmi praktických způsobů, jak používat rsync, je mít k němu přiřazený ukazatel průběhu pro dlouhé přenosy.

Chcete-li mít ukazatel průběhu při používání rsync, musíte použít možnost „–progress“ (pro čitelné pro člověka)

$ rsync --progress <source_user>@<source_host>:<file> <destination_user>@<destination_host>:<file>

Závěr

V tomto tutoriálu jste se naučili, jak můžete snadno přenášet soubory v Linuxu pomocí příkazů ftp, sftp, scp nebo rsync.

Viděli jste rozdíly mezi těmito příkazy a jak je lze použít k přenosu kompletních adresářů.


Linux
  1. Najděte soubory a adresáře v Linuxu pomocí příkazu find

  2. Najděte soubory a adresáře v Linuxu jako profík

  3. Jak odstranit soubory a adresáře v Linuxu z příkazového řádku

  1. Kopírování souborů a adresářů v Linuxu

  2. Jak přenášet soubory mezi servery v Linuxu pomocí SCP a FTP

  3. Linux Odstraňte soubory a adresáře

  1. Jak odstranit adresáře a soubory pomocí Linuxu

  2. Najít příkaz v Linuxu (Najít soubory a adresáře)

  3. Jak odstranit soubory a adresáře v příkazovém řádku Linuxu [Výukový program pro začátečníky]