GNU Wget je nástroj příkazového řádku pro stahování souborů z webu. Pomocí Wget můžete stahovat soubory pomocí protokolů HTTP, HTTPS a FTP. Wget poskytuje řadu možností, které vám umožní stáhnout více souborů, obnovit stahování, omezit šířku pásma, rekurzivní stahování, stahování na pozadí, zrcadlení webových stránek a mnoho dalšího.
Tento článek ukazuje, jak používat wget
pomocí praktických příkladů a podrobných vysvětlení nejběžnějších možností.
Instalace Wget #
Balíček wget je dnes předinstalován na většině distribucí Linuxu.
Chcete-li zkontrolovat, zda je na vašem systému nainstalován balíček Wget, otevřete konzoli a zadejte wget
a stiskněte enter. Pokud máte nainstalovaný wget, systém vypíše wget: missing URL
. V opačném případě vypíše wget command not found
.
Pokud wget
není nainstalován, můžete jej snadno nainstalovat pomocí správce balíčků vašeho distribuce.
Instalace Wget na Ubuntu a Debian #
sudo apt install wget
Instalace Wget na CentOS a Fedora #
sudo yum install wget
Syntaxe příkazu Wget #
Než se pustíte do používání wget
příkaz, začněme zopakováním základní syntaxe.
wget
pomocné výrazy mají následující podobu:
wget [options] [url]
options
- Možnosti Wgeturl
- URL souboru nebo adresáře, který chcete stáhnout nebo synchronizovat.
Jak stáhnout soubor pomocí wget
#
Ve své nejjednodušší podobě, když je použit bez jakékoli možnosti, wget
stáhne zdroj uvedený v [url] do aktuálního adresáře.
V následujícím příkladu stahujeme archiv tar linuxového jádra:
wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.17.2.tar.xz
Jak můžete vidět na obrázku výše, wget
začíná vyřešením IP adresy domény, poté se připojí ke vzdálenému serveru a zahájí přenos.
Během stahování wget
zobrazuje ukazatel průběhu vedle názvu souboru, velikosti souboru, rychlosti stahování a odhadovaného času dokončení stahování. Po dokončení stahování najdete stažený soubor ve svém aktuálním pracovním adresáři.
Pro vypnutí výstupu použijte -q
možnost.
Pokud soubor již existuje, wget
přidá .N
(číslo) na konci názvu souboru.
Uložení staženého souboru pod jiným názvem #
Chcete-li stažený soubor uložit pod jiným názvem, předejte -O
možnost následovaná zvoleným názvem:
wget -O latest-hugo.zip https://github.com/gohugoio/hugo/archive/master.zip
Výše uvedený příkaz uloží nejnovější soubor hugozip z GitHubu jako latest-hugo.zip
místo původního názvu.
Stažení souboru do konkrétního adresáře #
Ve výchozím nastavení wget
uloží stažený soubor do aktuálního pracovního adresáře. Chcete-li uložit soubor do určitého umístění, použijte -P
možnost:
wget -P /mnt/iso http://mirrors.mit.edu/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1804.iso
Výše uvedený příkaz říká wget
pro uložení souboru iso CentOS 7 do /mnt/iso
adresář.
Omezení rychlosti stahování #
Chcete-li omezit rychlost stahování, použijte --limit-rate
volba. Ve výchozím nastavení se rychlost měří v bajtech/sekundu. Připojte k
pro kilobajty m
pro megabajty a g
pro gigabajty.
Následující příkaz stáhne binární soubor Go a omezí rychlost stahování na 1 MB:
wget --limit-rate=1m https://dl.google.com/go/go1.10.3.linux-amd64.tar.gz
Tato možnost je užitečná, když nechcete wget
využívat veškerou dostupnou šířku pásma.
Obnovení stahování #
Stahování můžete obnovit pomocí -c
volba. To je užitečné, pokud vaše připojení během stahování velkého souboru přestane fungovat a místo stahování od začátku můžete pokračovat v předchozím.
V následujícím příkladu obnovujeme stahování souboru iso Ubuntu 18.04:
wget -c http://releases.ubuntu.com/18.04/ubuntu-18.04-live-server-amd64.iso
Pokud vzdálený server nepodporuje obnovení stahování, wget
spustí stahování od začátku a přepíše existující soubor.
Stahování na pozadí #
Pro stahování na pozadí použijte -b
volba. V následujícím příkladu stahujeme soubor iso OpenSuse na pozadí:
wget -b https://download.opensuse.org/tumbleweed/iso/openSUSE-Tumbleweed-DVD-x86_64-Current.iso
Ve výchozím nastavení je výstup přesměrován do wget-log
soubor v aktuálním adresáři. Chcete-li sledovat stav stahování, použijte tail
příkaz:
tail -f wget-log
Změna Wget User-Agent #
Někdy při stahování souboru může být vzdálený server nastaven tak, aby blokoval Wget User-Agent. V situacích jako je tato, chcete-li emulovat jiný prohlížeč, předejte -U
možnost.
wget --user-agent="Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0" http://wget-forbidden.com/
Výše uvedený příkaz bude emulovat Firefox 60, který požaduje stránku z wget-forbidden.com
Stahování více souborů #
Pokud chcete stáhnout více souborů najednou, použijte -i
následuje cesta k místnímu nebo externímu souboru obsahujícímu seznam adres URL ke stažení. Každá adresa URL musí být na samostatném řádku.
Následující příklad ukazuje, jak stáhnout soubory iso Arch Linux, Debian a Fedora pomocí adres URL uvedených v linux-distros.txt
soubor:
wget -i linux-distros.txt
linux-distros.txthttp://mirrors.edge.kernel.org/archlinux/iso/2018.06.01/archlinux-2018.06.01-x86_64.iso
https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-9.4.0-amd64-netinst.iso
https://download.fedoraproject.org/pub/fedora/linux/releases/28/Server/x86_64/iso/Fedora-Server-dvd-x86_64-28-1.1.iso
Pokud zadáte -
jako název souboru budou adresy URL čteny ze standardního vstupu.
Stahování přes FTP #
Chcete-li stáhnout soubor ze serveru FTP chráněného heslem, zadejte uživatelské jméno a heslo, jak je uvedeno níže:
wget --ftp-user=FTP_USERNAME --ftp-password=FTP_PASSWORD ftp://ftp.example.com/filename.tar.gz
Vytvoření zrcadla webu #
Chcete-li vytvořit zrcadlo webu pomocí wget
, použijte -m
volba. Tím se vytvoří úplná místní kopie webu sledováním a stahováním všech interních odkazů a zdrojů webu (JavaScript, CSS, obrázky).
wget -m https://example.com
Pokud chcete stažený web použít pro místní procházení, budete muset příkazu výše předat několik dalších argumentů.
wget -m -k -p https://example.com
-k
volba způsobí wget
převést odkazy ve stažených dokumentech, aby byly vhodné pro místní prohlížení. -p
volba řekne wget
stáhnout všechny potřebné soubory pro zobrazení stránky HTML.
Přeskočení kontroly certifikátu #
Pokud chcete stáhnout soubor přes HTTPS z hostitele, který má neplatný certifikát SSL, použijte --no-check-certificate
možnost:
wget --no-check-certificate https://domain-with-invalid-ss.com
Stahování do standardního výstupu #
V následujícím příkladu wget
bude tiše ( příznak -q
) stáhnout a odeslat nejnovější verzi WordPressu na stdout (příznak -O -
) a potrubím do tar
utilita, která rozbalí archiv do /var/www
adresář.
wget -q -O - "http://wordpress.org/latest.tar.gz" | tar -xzf - -C /var/www
Závěr č.
Pomocí wget
, můžete si stáhnout více souborů, obnovit částečné stahování, zrcadlit webové stránky a kombinovat možnosti Wget podle vašich potřeb.
Chcete-li se dozvědět více o Wget, navštivte GNU wget Manualpage.