Přenos souborů mezi počítači je velmi častým provozním úkolem, který budete jako vývojář dělat neustále.
Linux poskytuje řadu nástrojů pro přenos souborů. V tomto tutoriálu probereme FTP
a SCP
. Mnoho automatických skriptů také nasazuje FTP nebo SCP pro přesun souborů.
Co je to FTP?
FTP je síťový protokol používaný pro výměnu souborů po síti. Používá port 21. FTP vám umožňuje přístup ke vzdálenému systému pro výměnu souborů pomocí ftp
příkaz.
FTP syntaxe
Syntaxe FTP je následující:
ftp host
Zde host
může být buď název hostitele nebo adresa IP vzdáleného hostitele.
Příkazy FTP
FTP příkazy jsou podobné příkazům Linuxu. Některé z nich probereme.
Příkaz | Použití |
---|---|
otevřít | Otevírá vzdálené připojení k jinému počítači. |
získat | Zkopíruje soubor ze vzdáleného systému do místního systému. |
put | Zkopíruje soubor z místního systému do adresáře na vzdáleném systému. |
mget | Přenese více souborů ze vzdáleného systému do aktuálního adresáře místního systému. |
mput | Přenese více souborů z místního systému do adresáře na vzdáleném systému. |
ahoj/konec | Příprava na ukončení prostředí FTP. |
zavřít | Ukončí připojení FTP. |
ascii | Povoluje režim přenosu souborů do ASCII |
binární | Povoluje režim přenosu souborů na binární. |
Jak přenášet soubory přes FTP
FTP nabízí dva režimy přenosu:ASCII a Binary.
- ASCII znamená Americký standardní kód pro výměnu informací . Používá se k přenosu obyčejných souborů, jako jsou textové soubory.
- Binární režim :Binární režim se používá k přenosu netextových souborů, jako jsou obrázky.
Výchozí režim přenosu je ASCII.
Krok 1 – Připojení k FTP
V níže uvedeném příkladu hostA
je vzdálený hostitel. Budete vyzváni k zadání uživatelského jména a hesla.
$ ftp hostA
Connected to hostA.
220 hostA FTP server ready.
Name (hostA:user): user
331 Password required for user.
Password: password
230 User user logged in.
Remote system type is LINUX.
Jakmile je připojení úspěšné, všimnete si ftp>
symbol na začátku. Nyní můžeme spustit příkazy FTP.
Krok 2 – Vyberte režim přenosu souborů
V závislosti na typu souboru si můžete vybrat režim (binární nebo ASCII).
ftp> ascii
200 Type set to A.
Krok 3 – Přenos souborů
Používáme get
příkaz k přenosu souboru sample.txt
ze vzdáleného FTP serveru na místní počítač.
ftp> get sample.txt
200 PORT command successful.
150 Opening ASCII mode data connection for sample.txt (22 bytes).
226 Transfer complete.
local: sample.txt remote: sample.txt
22 bytes received in 0.012 seconds (1.54 Kbytes/s)
Krok 4. Ukončete relaci
ftp> bye
221-You have transferred 22 bytes in 1 files.
221-Total traffic for this session was 126 bytes in 2 transfers. 221-Thank you for using the FTP service on hostA.
221 Goodbye.
Jak přenést více souborů přes FTP
Pro hromadný přenos souborů existují dva příkazy:mget
a mput
.
Používáte mget
ke stažení souborů, zatímco vy používáte mput
k nahrání souborů.
ftp> mget sample_file.1 sample_file.2
ftp> mput sample_file.1 sample_file.2
Všechny kroky, které jsme se právě naučili, lze umístit do spustitelného souboru a naplánovat. Kód pro automatizaci naleznete zde.
Co je SCP?
SCP je zkratka pro Secure Copy. Využívá SSH a port 22. Data přenášená přes SCP jsou šifrovaná a sniffery k nim nemají přístup. Díky tomu je SCP velmi bezpečný.
SCP můžete použít k:
- Přeneste soubory z místního počítače do vzdáleného hostitele.
- Přeneste soubory ze vzdáleného hostitele do místního počítače.
SCP syntaxe
Pojďme prozkoumat syntaxi SCP.
scp [FLAG] [user@]SOURCE_HOST:]/path/to/file1 [user@]DESTINATION_HOST:]/path/to/file2
[FLAG]
specifikuje možnosti, které mohou být poskytnuty SCP. Zde jsou některé podrobnosti o příznakech:
Příznak | Popis |
---|---|
-r | Pro rekurzivní kopírování adresářů. |
-q | Slouží ke skrytí měřiče průběhu a jakýchkoli jiných informací kromě chyb. |
-C | Slouží ke komprimaci dat při jejich odesílání na místo určení. |
-P | Určuje cílový port SSH. |
-p | Zachovává časy přístupu k souboru. |
[user@]SOURCE_HOST
je zdrojový stroj.[user@]DESTINATION_HOST:]
je cílový stroj.
Poznámka :Chcete-li přenášet soubory přes SCP, musí být známy přihlašovací údaje a uživatel by měl mít oprávnění k zápisu .
Jak přenést soubory z místního počítače do vzdáleného hostitele pomocí SCP
Chcete-li přenést soubory do vzdáleného hostitele, použijte příkaz níže:
scp source_file.txt [email protected]:/path/to/remote/directory
Ve výše uvedeném příkazu source_file.txt
je soubor, který se má zkopírovat. Remote_username
je uživatelské jméno pro vzdálený hostitel 10.13.13.11
. Za :
je určena cílová cesta.
Ukázkový výstup:
Heslo uživatele[email protected]'s password:
source_file.txt 100% 0 0.0KB/s 00:00
Soubor source_file.txt
bude nyní umístěn do /path/to/remote/directory
.
Pro kopírování adresářů použijte -r
příznak, jak je ukázáno níže.
scp -r /local/directory [email protected]:/path/to/remote/directory
Jak přenášet soubory ze vzdáleného hostitele do místního počítače pomocí SCP
Chcete-li přenést soubory ze vzdáleného hostitele do místního počítače, použijte příkaz níže:
scp [email protected]:/remote/source_file.txt /path/to/local/directory
Buďte zvláště opatrní při přenosu souborů, protože SCP se přepisuje již existující soubory.
Zabalení
V tomto tutoriálu jste se naučili přenášet soubory a adresáře pomocí FTP a SCP pomocí příkazového řádku.
Když jsou tyto příkazy automatizovány, slouží ještě větším účelům v oblasti datových skladů, ETL (Extract, Transform, Load), reportingu, archivace a hromadného zpracování souborů. Vyzkoušejte tyto příkazy. Pojďme se připojit na Twitteru.