
Linuxový nástroj příkazového řádku wget je šikovný nástroj používaný ke stahování souborů přes internet. Obvykle se používá, když chcete stáhnout tarball a soubory zip, balíčky deb a rpm z webu.
Pomocí příkazu wget můžete stáhnout soubor přes protokoly HTTP, HTTPS nebo dokonce FTP. Spolu s příkazem wget můžete použít řadu možností, díky nimž je výkonný.
V tomto tutoriálu se na příkladech podíváme na to, jak používat příkaz GNU wget.
syntaxe wget
Syntaxe pro použití wget je docela přímočará. Jednoduše vyvolejte příkaz wget, poté možnosti a poté odkaz na web, jak je znázorněno.
$ wget [ options ] url
Nainstalujte wget
Většina moderních linuxových distribucí se dodává s nástrojem wget, takže jej nemusíte instalovat. Existují však případy, kdy může být vyžadována instalace, zejména ve starších systémech a některých cloudových instancích nebo k vyřešení chybové zprávy „–bash:wget:Command not found“.
Pro příchutě Ubuntu a Debian spusťte pomocí správce balíčků APT následující příkaz:
$ sudo apt-get install wget
Chcete-li nainstalovat příkaz wget ve variantách RHEL / CentOS 8, spusťte:
$ sudo dnf install wget
Pro starší verze (RHEL 7 a CentOS 7 a starší) použijte správce balíčků yum následovně
$ sudo yum install wget
Pro distribuce Arch Linux a Arch Linux, jako je Manjaro, Arch Linux a Endeavour OS, použijte správce balíčků pacman následovně:
$ sudo pacman -S wget
Stáhnout soubor z internetu
Ve své nejzákladnější podobě, bez použití jakýchkoli možností, příkaz wget stáhne soubor z internetu, jak je uvedeno v URL. Nejjednodušší syntaxe je uvedena níže:
$ wget website_url
Například v níže uvedeném příkladu stahujeme nejnovější tarball WordPress z oficiálního webu WordPress.
$ wget https://wordpress.org/latest.tar.gz
Z výstupu vidíme, že wget nejprve přeloží doménu webu na IP adresu, na kterou se připojí k serveru a následně zahájí přenos souboru. Když stahování probíhá, zobrazí se indikátor průběhu, který uvádí název souboru, velikost, rychlost stahování a odhadovaný čas dokončení stahování.
Po dokončení stahování se ujistěte, že soubor najdete ve svém aktuálním pracovním adresáři. To lze ověřit vyvoláním příkazu ls.
Stáhněte si soubor a uložte jej pod konkrétním jménem
Pokud chcete soubor uložit pod jiným názvem, než je původní název, jednoduše předejte -O
možnost následovaná vámi preferovaným jménem.
$ wget -O wordpress.tar.gz https://wordpress.org/latest.tar.gz
Výše uvedený příkaz stáhne původní soubor 'latest.tar.gz' z webu WordPress a uloží jej jako 'wordpress.tar.gz'.
Stáhnout do konkrétního adresáře
Jak bylo uvedeno výše, wget stáhne soubor do vašeho aktuálního pracovního adresáře. Pomocí -P
můžete určit jiné umístění stahování příznak následovaný cestou k cílovému adresáři.
$ wget -P /var/www/html https://wordpress.org/latest.tar.gz
Ve výše uvedeném příkladu je soubor uložen v adresáři /var/www/html.
Omezit rychlost stahování
Pomocí wget můžete také omezit rychlost stahování souborů. Chcete-li omezit rychlost stahování, vyvolejte --limit-rate
možnost následovaná rychlostí stahování. Rychlost se obvykle měří v bajtech za sekundu.
Chcete-li nastavit limitní rychlost na 500 KB/s, spusťte následující příkaz:
$ wget --limit-rate=500k https://wordpress.org/latest.tar.gz
Jak pokračovat v získávání částečně staženého souboru
Někdy během stahování souboru může vaše připojení náhle přestat a zůstane vám částečně stažený soubor. Místo restartování stahování použijte wget -C
možnost obnovit stahování, jak je uvedeno.
$ wget -c https://wordpress.org/latest.tar.gz
Ve výše uvedeném příkladu obnovujeme stahování souboru tarball souboru z WordPressu. Pamatujte, že pokud web nereaguje na obnovení stahování souboru, příkaz restartuje stahování souboru a přepíše stávající.
Stáhnout soubor na pozadí
Chcete-li stáhnout soubor na pozadí, předejte wget -b
možnost, jak je uvedeno níže.
$ wget -b https://osdn.net/projects/manjaro/storage/kde/20.0.3/manjaro-kde-20.0.3-200606-linux56.iso
Ve výše uvedeném příkladu stahujeme soubor Manjaro KDE Plasma ISO na pozadí. Chcete-li sledovat stav stahování, použijte příkaz wget log, jak je uvedeno
$ tail –f wget –log
Stáhnout více souborů
Pokud máte ke stažení více souborů, je obtížné spouštět příkaz wget opakovaně na terminálu. Lepším přístupem by bylo spustit příkaz wget jednou a stáhnout soubory jeden po druhém.
Chcete-li to provést, uložte adresy URL webových stránek do textového souboru. Poté vyvolejte příkaz wget s -i
možnost následovaná názvem textového souboru.
V tomto příkladu si chceme stáhnout soubor WordPress tarball a komprimovaný soubor OwnCloud. Nejprve jsme uložili odkazy ke stažení do ukázkového souboru, nazvěme ho 'downloads.txt':
https://wordpress.org/latest.tar.gz
https://download.owncloud.org/community/owncloud-complete-20200731.zip
Chcete-li nyní stáhnout více souborů, spusťte:
$ wget -i downloads.txt
Ty budou staženy jeden po druhém. A takto stahujete více souborů.
Stáhněte si zrcadlo webové stránky
Dalším ne běžně známým použitím wgetu je schopnost klonovat nebo vytvořit zrcadlovou kopii webové stránky. Můžete toho dosáhnout předáním -m
možnost, jak je znázorněno. Tím se vytvoří zrcadlová kopie webu spolu se všemi interními odkazy a dalšími zdroji, jako jsou obrázky, widgety, Javascript a soubory CSS.
$ wget -m http://www.example.com
Pokud máte v úmyslu klonovat web pro místní procházení, předejte další argumenty, jak je uvedeno.
$ wget -m -k -p http://www.example.com
-k
flag usnadňuje převod odkazu do formátu vhodného pro místní prohlížení. Mezitím -p
volba dává pokyn obslužnému programu wget ke stažení relevantních souborů potřebných pro zobrazení obsahu na stránce HTML v prohlížeči.
Ignorovat certifikát SSL
Aby nedošlo k chybě při stahování souboru přes HTTPS z webového serveru, jehož certifikát SSL není důvěryhodný nebo platný, předejte --no-check-certificate
možnost:
$ wget --no-check-certificate https://domain-with-untrusted-ssl-cert
Stáhnout a přesměrovat výstup do souboru protokolu
Výstup příkazu wget lze zaprotokolovat během stahování souboru pomocí -o
možnost podle obrázku:
$ wget -o download.log https://wordpress.org/latest.tar.gz
Poté můžete zobrazit soubor protokolu v reálném čase, jak stahování probíhá, pomocí příkazu tail, jak je znázorněno:
$ tail -f download.log
Omezit počet opakování stahování
Někdy můžete zaznamenat nízkou rychlost šířky pásma, která vám může bránit ve stahování souboru. Počet opakování stahování můžete nastavit pomocí wget --tries=[no. of tries]
možnost podle obrázku:
$ wget --tries=10 https://wordpress.org/latest.tar.gz
Ve výše uvedeném příkladu se get pokusí stáhnout soubor tarball 10krát před ukončením.
Stáhnout ze serveru FTP
Můžete si také stáhnout soubor z FTP serveru, i když je chráněn heslem. Vše, co musíte udělat, je předat ftp uživatelské jméno a heslo do příkazu wget, jak je uvedeno:
$ wget --ftp-user=[ftp_user] --ftp-password=[ftp_password] ftp://ftp.ftp-site.com
Změnit wget User agent
Uživatelský agent je v podstatě pole záhlaví, které prohlížeč odesílá na webový server. Pokud stahujete webovou stránku, wget bude emulovat webový prohlížeč. Stává se, že se občas zobrazí chyba označující, že nemáte dostatečná oprávnění pro přístup k serveru. Když k tomu dojde, je pravděpodobné, že webová stránka nebo webový server blokuje prohlížeč, který je spojen s konkrétním „User-Agentem“. Zde je databáze uživatelských agentů, které můžete najít.
Chcete-li změnit uživatelského agenta, použijte syntaxi:
$ wget -U "user agent" URL
Chcete-li například stáhnout web example.com při emulaci prohlížeče Google Chrome verze 74 – což je nejnovější verze, použijte:
$ wget -U "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36" "http://example.com"
Rekurzivní stahování
Chcete-li stáhnout web pro místní prohlížení, musíte zapnout rekurzivní stahování pomocí -r
nebo --recursive
a odkazy se převedou na místní odkazy pomocí -k
nebo --convert-links
možnost.
Například:
$ wget -rk https://example.com
Závěr
Jak jste si všimli, wget je tak výkonný a flexibilní nástroj, který můžete použít k získávání souborů z internetu. V tomto tutoriálu jsem vám ukázal různé způsoby, jak můžete používat wget a jak můžete stahovat soubory a webové stránky z webových serverů přes http, https a ftp. Pro více informací o použití příkazu wget navštivte manuálové stránky.