Příkaz Wget v Linuxu se používá ke stahování souborů z webu pomocí protokolů HTTP, HTTPS a FTP. Jinými slovy můžeme říci, že wget je neinteraktivní nástroj pro stahování příkazového řádku pro systémy Linux. Podporuje také stahování souborů přes HTTP proxy.
Zde neinteraktivní znamená, že může pracovat na pozadí, zatímco uživatel není přihlášen. Když provedeme minimální instalaci linuxových distribucí, příkaz wget není nainstalován, takže pro instalaci wget na linuxové distribuce spusťte
$ sudo yum install -y wget // CentOS 7 / RHEL 7 $ sudo dnf install -y wget // CentOS 8/ RHEL 8/ Rocky Linux 8 $ sudo apt install -y wget // Ubuntu / Debian $ sudo pacman -S wget // Arch Linux $ sudo zypper install wget // OpenSUSE
V tomto tutoriálu probereme 12 užitečných příkladů příkazů wget. Tyto příklady vám pomohou začít používat příkaz wget jako profesionál. Pojďme se tedy hlouběji ponořit do příkladů.
1) Stažení jednoho souboru pomocí wget
Chcete-li stáhnout soubor pomocí příkazu wget, jednoduše zadejte příkaz wget následovaný absolutní cestou k souboru, příklad je uveden níže:
$ wget https://download.rockylinux.org/pub/rocky/8/isos/x86_64/Rocky-8.4-x86_64-minimal.iso
Tento příkaz stáhne soubor ISO Rocky Linux 8 do aktuálního pracovního adresáře uživatele.
2) Obnovit částečný stažený soubor (-c)
Existují některé scénáře, kdy začneme stahovat velký soubor, ale uprostřed se odpojí internet, takže pomocí volby ‚-c‘ v příkazu wget můžeme obnovit stahování z místa, kde došlo k odpojení. Příklad je uveden níže,
$ wget -c https://download.rockylinux.org/pub/rocky/8/isos/x86_64/Rocky-8.4-x86_64-minimal.iso
3) Stáhnout soubory na pozadí (-b)
Ke stažení souborů na pozadí použijte volbu „-b“ v příkazu wget. Tato možnost je velmi užitečná, pokud je soubor příliš velký a chcete použít terminál pro jiné úkoly.
$ wget -b https://download.rockylinux.org/pub/rocky/8/isos/x86_64/Rocky-8.4-x86_64-dvd1.iso Continuing in background, pid 4505. Output will be written to ‘wget-log’.
Jak můžeme vidět výše, průběh stahování je zachycen v souboru „wget-log“ v aktuálním adresáři uživatele. Pro zobrazení stavu stahování použijte příkaz tail.
$ tail -f wget-log 2300K .......... .......... .......... .......... .......... 0% 48.1K 18h5m 2350K .......... .......... .......... .......... .......... 0% 53.7K 18h9m 2400K .......... .......... .......... .......... .......... 0% 52.1K 18h13m 2450K .......... .......... .......... .......... .......... 0% 58.3K 18h14m 2500K .......... .......... .......... .......... .......... 0% 63.6K 18h14m 2550K .......... .......... .......... .......... .......... 0% 63.4K 18h13m 2600K .......... .......... .......... .......... .......... 0% 72.8K 18h10m 2650K .......... .......... .......... .......... .......... 0% 59.8K 18h11m 2700K .......... .......... .......... .......... .......... 0% 52.8K 18h14m 2750K .......... .......... .......... .......... .......... 0% 58.4K 18h15m 2800K .......... .......... .......... .......... .......... 0% 58.2K 18h16m 2850K .......... .......... .......... .......... .......... 0% 52.2K 18h20m
4) Omezení rychlosti stahování v příkazu wget
Ve výchozím nastavení se příkaz wget pokusí použít plnou šířku pásma , ale může nastat případ, že používáte sdílený internet , takže pokud se pokusíte stáhnout velký soubor pomocí wget , může to zpomalit internet ostatních uživatelů. Této situaci lze předejít, pokud omezíte rychlost stahování pomocí možnosti „–limit-rate“.
$ wget --limit-rate=100k https://download.rockylinux.org/pub/rocky/8/isos/x86_64/Rocky-8.4-x86_64-dvd1.iso
Ve výše uvedeném příkazu wget jsme nastavili limit stahování na 100 kB.
5) Stáhněte si více souborů pomocí wget
Pokud chcete stáhnout více souborů pomocí příkazu wget , pak nejprve vytvořte textový soubor a přidejte všechny adresy URL do tohoto textového souboru. Příklad je uveden níže:
$ cat download-list.txt https://download.rockylinux.org/pub/rocky/8/isos/x86_64/Rocky-8.4-x86_64-dvd1.iso https://releases.ubuntu.com/20.04.2.0/ubuntu-20.04.2.0-desktop-amd64.iso https://download.opensuse.org/distribution/leap/15.3/iso/openSUSE-Leap-15.3-DVD-x86_64-Current.iso
Nyní spusťte níže uvedený příkaz,
$ wget -i download-list.txt
Výše uvedený příkaz wget začne postupně stahovat soubory ISO.
6) Zvýšit počet pokusů o opakování ve wget
Pokusy o opakování můžeme zvýšit pomocí možnosti „–tries“ ve wget. Ve výchozím nastavení se příkaz wget zopakuje 20krát, aby bylo stahování úspěšné.
Tato možnost je velmi užitečná, když máte problém s připojením k internetu a stahujete velký soubor.
$ wget --tries=75 https://download.opensuse.org/distribution/leap/15.3/iso/openSUSE-Leap-15.3-DVD-x86_64-Current.iso
Výše uvedený příkaz wget se pokusí stáhnout soubor maximálně 75krát.
7) Přesměrovat výstup příkazu wget do souboru protokolu
Výstup příkazu wget můžeme přesměrovat do souboru protokolu pomocí volby „-o“. Příklad je uveden níže,
$ wget -o download.log https://releases.ubuntu.com/20.04.2.0/ubuntu-20.04.2.0-desktop-amd64.iso
soubor download.log bude vytvořen automaticky v aktuálním adresáři uživatele.
8) Stáhněte si kompletní webovou stránku pro místní prohlížení
Pomocí příkazu wget si můžeme stáhnout kompletní webovou stránku pro místní prohlížení, syntaxe je uvedena níže,
$ wget --mirror -p --convert-links -P ./<Local-Folder> website-URL
Kde
- –mirror :zapněte možnosti vhodné pro zrcadlení.
- -p :stáhne všechny soubory, které jsou nezbytné pro správné zobrazení dané HTML stránky.
- –convert-links :po stažení převeďte odkazy v dokumentu pro místní prohlížení.
- -P ./Local-Folder :uložte všechny soubory a adresáře do určeného adresáře.
9) Odmítnout typy souborů během stahování
Když plánujete stáhnout celý web , můžeme přinutit příkaz wget, aby nestahoval obrázky pomocí ‘ –odmítnout‘ možnost .
$ wget --reject=png <Website-To-Be-Downloaded>
10) Nastavení kvóty stahování ve wget
Můžeme donutit příkaz wget k ukončení stahování, když velikost stahování překročí určitou velikost. K nastavení kvóty stahování použijte volbu „-Q“ v příkazu wget.
$ wget -Q10m -i download-list.txt
Pamatujte, že kvóta nikdy neovlivní stahování jednoho souboru. Pokud tedy zadáte wget -Q10m ftp://wuarchive.wustl.edu/ls-lR.gz, budou staženy všechny soubory ls-lR.gz. Totéž platí, i když je na příkazovém řádku uvedeno několik adres URL. Kvóta však bude fungovat pouze při načítání buď rekurzivně, nebo ze vstupního souboru. Proto můžete bezpečně napsat „wget -Q10m -i download-list.txt“ stahování bude přerušeno, když bude překročena kvóta.
11) Stahování souboru z webu chráněného heslem
příkazy wget
$ wget --ftp-user=<user-name> --ftp-password=<password> Download-URL or $ wget --user <user_name> --password <password> http://<url-path>/file_to_be_downloaded
Další způsob, jak zadat uživatelské jméno a heslo, je v samotné adrese URL.
Každá metoda odhalí vaše heslo každému, kdo se obtěžuje spustit „ps“. Abyste zabránili zobrazení hesel, uložte je do .wgetrc nebo .netrc a ujistěte se, že tyto soubory chráníte před ostatními uživateli pomocí „chmod“. Pokud jsou hesla opravdu důležitá, nenechávejte je ležet v těchto souborech, buď soubory upravte a smažte je poté, co wget zahájí stahování.
12) Stažení souboru přeskočením kontrol certifikátů
Existují některé scénáře, kdy chceme stáhnout soubor z portů https a chceme přeskočit kontroly certifikátů, takže to lze provést pomocí volby „–no-check-certificate“ v příkazu wget,
$ wget https://about.gitlab.com/ --no-check-certificate
Stažení Oracle Java pomocí příkazu wget z portálu https a přeskočení kontrol certifikátů
$ wget --header "Cookie: oraclelicense=accept-securebackup-cookie" https://download.oracle.com/otn-pub/java/jdk/12.0.1+12/69cfe15208a647278a19ef0990eea691/jdk-12.0.1_linux-x64_bin.rpm --no-check-certificate
Stahování souborů přes proxy
Existují situace, kdy náš systém běží za proxy serverem, takže v takových situacích musíme nejprve nastavit proxy a poté můžeme použít příkaz wget ke stažení souboru z internetu. Chcete-li nastavit proxy na příkazovém řádku, použijte následující proměnné a příkaz export
$ export http_proxy=http://<Your-Proxy-IP>:<Proxy-Port> $ export https_proxy=http://<Your-Proxy-IP>:<Proxy-Port> $ export ftp_proxy=http://<Your-Proxy-IP>:<Proxy-Port>
V případě, že je pro fungování serveru proxy vyžadováno uživatelské jméno a heslo, použijte následující
$ export http_proxy=http://<user-name>:<password>@<Your-Proxy-IP>:<Proxy-Port> $ export https_proxy=http://<user-name>:<password>@<Your-Proxy-IP>:<Proxy-Port> $ export ftp_proxy=http://<user-name>:<password>@<Your-Proxy-IP>:<Proxy-Port>
Další příklad
Stáhněte a rozbalte soubor tar jediným příkazem wget
Předpokládejme, že si chceme stáhnout nejnovější verzi tar souboru WordPress a chceme jej extrahovat do konkrétní složky, jako je /var/www/html, takže tento úkol provedeme pomocí níže uvedeného příkazu wget,
# wget -q -O - http://wordpress.org/latest.tar.gz | tar -xzf - --strip-components=1 -C /var/www/html
To je vše z tohoto tutoriálu, doufám, že jste zjistili, že tyto příklady příkazů wget jsou velmi informativní. Prosím, podělte se o své cenné zpětné vazby a komentáře v sekci komentářů níže.