Úvod
Příkaz Wget je nástroj příkazového řádku Linuxu, který nám pomáhá stahovat soubory z webu. Soubory můžeme stahovat z webových serverů pomocí protokolů HTTP, HTTPS a FTP. Můžeme použít wget ve skriptech a cronjobs.
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 for CentOS 7 / RHEL 7
$ sudo dnf install -y wget for CentOS 8/ RHEL 8/ Rocky Linux 8
$ sudo apt install -y wget for Ubuntu / Debian
$ sudo pacman -S wget for Arch Linux
$ sudo zypper install wget for OpenSUSE
Stažení jednoho souboru pomocí wget
[unixcop@rhel-pc ~]$ wget https://releases.ubuntu.com/20.04.2.0/ubuntu-20.04.2.0-desktop-amd64.iso
--2021-08-13 04:24:05-- https://releases.ubuntu.com/20.04.2.0/ubuntu-20.04.2.0-desktop-amd64.iso
Resolving releases.ubuntu.com (releases.ubuntu.com)... 91.189.91.124, 91.189.91.123, 2001:67c:1562::28, ...
Connecting to releases.ubuntu.com (releases.ubuntu.com)|91.189.91.124|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2877227008 (2.7G) [application/x-iso9660-image]
Saving to: ‘ubuntu-20.04.2.0-desktop-amd64.iso’
ubuntu-20.04.2.0-desktop-amd64.iso 47%[======= ] 4.3G 2.13M/s eta 1h 02m
Tento příkaz stáhne soubor ISO Ubuntu do aktuálního pracovního adresáře uživatele.
Obnovte částečně stažený soubor
Pomocí volby ‚-c‘ v příkazu wget můžeme obnovit stahování z místa, kde bylo odpojeno.
[unixcop@rhel-pc ~]$ wget -c https://releases.ubuntu.com/20.04.2.0/ubuntu-20.04.2.0-desktop-amd64.iso
Stahování souborů na pozadí
Použijte volbu „-b“ v příkazu wget ke stažení souborů na pozadí
[unixcop@rhel-pc ~]$ wget -b https://releases.ubuntu.com/20.04.2.0/ubuntu-20.04.2.0-desktop-amd64.iso
Continuing in background, pid 2412.
Output will be written to ‘wget-log’.
[unixcop@rhel-pc ~]$
Pro zobrazení stavu stahování použijte také příkaz tail.
[unixcop@rhel-pc ~]$ tail -f wget-log
2700K .......... .......... .......... .......... .......... 0% 85.8K 16h41m
2750K .......... .......... .......... .......... .......... 0% 90.0K 16h32m
2800K .......... .......... .......... .......... .......... 0% 78.8K 16h25m
2850K .......... .......... .......... .......... .......... 0% 189K 16h13m
2900K .......... .......... .......... .......... .......... 0% 92.4K 16h5m
2950K .......... .......... .......... .......... .......... 0% 89.7K 15h57m
3000K .......... .......... .......... .......... .......... 0% 92.8K 15h50m
3050K .......... .......... .......... .......... .......... 0% 177K 15h39m
3100K .......... .......... .......... .......... .......... 0% 91.2K 15h32m
3150K .......... .......... .......... .......... .......... 0% 96.0K 15h25m
3200K .......... .......... .......... .......... .......... 0% 79.6K 15h20m
3250K .......... .......... .......... .......... .......... 0% 199K 15h9m
3300K .......... .......... .......... .......... .......... 0% 97.7K 15h3m
3350K .......... .......... .......... .......... .......... 0% 94.6K 14h57m
3400K .......... .......... .......... .......... .......... 0% 95.8K 14h51m
3450K .......... .......... .......... .......... .......... 0% 96.0K 14h45m
3500K .......... .......... .......... .......... .......... 0% 102K 14h39m
3550K .......... .......... .......... .......... .......... 0% 153K 14h31m
3600K .......... .......... .......... .......... .......... 0% 62.1K 14h29m
3650K .......... .......... .......... .......... .......... 0% 109K 14h23m
3700K .......... .......... .......... .......... .......... 0% 83.1K 14h19m
3750K .......... .......... .......... .......... .......... 0% 118K 14h13m
3800K .......... .......... .......... .......... .......... 0% 104K 14h8m
3850K .......... .......... .......... .......... .......... 0% 112K 14h2m
etc..
Při stahování souborů omezte rychlost stahování
Rychlost stahování můžete omezit pomocí možnosti „–limit-rate“.
[unixcop@rhel-pc ~]$ wget --limit-rate=350k https://releases.ubuntu.com/20.04.2.0/ubuntu-20.04.2.0-desktop-amd64.iso
limit stahování jsme nastavili na 350 kB.
Stáhnout více souborů
Nejprve vytvořte textový soubor a přidejte všechny adresy URL do tohoto textového souboru, jak je znázorněno níže:
[unixcop@rhel-pc ~]$ cat wget-download-list.txt
http://centos.mirror.server24.net/8.4.2105/isos/x86_64/CentOS-8.4.2105-x86_64-dvd1.iso
https://releases.ubuntu.com/20.04.2.0/ubuntu-20.04.2.0-desktop-amd64.iso
https://download.rockylinux.org/pub/rocky/8/isos/x86_64/Rocky-8.4-x86_64-minimal.iso
[unixcop@rhel-pc ~]$
Nyní spusťte :
[unixcop@rhel-pc ~]$ wget -i wget-download-list.txt
--2021-08-13 04:36:46-- http://centos.mirror.server24.net/8.4.2105/isos/x86_64/CentOS-8.4.2105-x86_64-dvd1.iso
Resolving centos.mirror.server24.net (centos.mirror.server24.net)... 217.70.144.100, 2001:1a38:144::100
Connecting to centos.mirror.server24.net (centos.mirror.server24.net)|217.70.144.100|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 9928966144 (9.2G) [application/octet-stream]
Saving to: ‘CentOS-8.4.2105-x86_64-dvd1.iso’
CentOS-8.4.2105-x86_64-dvd1.iso 4%[== ] 964M 1.9M/s eta 3h 44m
[unixcop@rhel-pc ~]$
Zvýšení počtu 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é.
# wget --tries=60 http://centos.mirror.server24.net/8.4.2105/isos/x86_64/CentOS-8.4.2105-x86_64-dvd1.iso
Výše uvedený příkaz způsobí, že se příkaz wget pokusí stáhnout soubor maximálně 60krát.
Přesměrujte výstup příkazu wget do souboru
Výstup můžeme přesměrovat do souboru protokolu pomocí volby „-o“, jak je uvedeno níže:
$ wget -o download_file.log http://centos.mirror.server24.net/8.4.2105/isos/x86_64/CentOS-8.4.2105-x86_64-dvd1.iso
Můžete to zobrazit pomocí
# ls
# cat download_file.log
Zrcadlení kompletní webové stránky pomocí příkazu wget
Můžeme to udělat pomocí:
# wget --mirror -p --convert-links -P ./<Local-Folder> website-URL
Kde
- –zrcadlo :zapněte možnosti vhodné pro zrcadlení.
- –p :stáhnout všechny soubory pro správné zobrazení dané HTML stránky.
- –převést-odkazy :převést 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.
Při stahování odmítnout typy souborů
Pokud plánujete stáhnout celý web , můžeme příkaz wget donutit, aby nestahoval soubory PDF, například pomocí možnosti ‚–reject‘.
# wget --reject=pdf <Website-To-Be-Downloaded>
Nastavte kvótu stahování
Wget může ukončit 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 -Q14m -i wget-download-list.txt
Povolit wgetu přepsat soubory
Pokud zadáme výstupní soubor pomocí volby -o, přepíše jakýkoli existující soubor.
wget -q http://www.example.com/filename.txt -O /path/filename.txt
Stáhnout soubor pomocí serveru FTP
Wget používá anonymní FTP ke stahování souborů z webu. Ke stažení souborů nevyžaduje přihlášení na FTP.
# wget ftp://ftp.example.com/file.tar.gz
Stahování souboru z webu chráněného heslem
# wget --ftp-user=<user-name> --ftp-password=<password> Download-URL
OR
# wget --user <user_name> --password <password> http://<url-path>/file_you_want_to_download
Další způsob, jak zadat uživatelské jméno a heslo, je v samotné adrese URL.
Stáhněte si soubor z nedůvěryhodné zabezpečené adresy URL
Chcete si stáhnout soubor z https portů a chcete přeskočit kontroly certifikátů?
takže to lze provést pomocí volby „–no-check-certificate“
# wget https://example.com/file.tar.gz –no-check-certificate
Příklad :Stažení Oracle Java 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
Nejprve musíme nastavit proxy a poté můžeme stáhnout soubor 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 proxy vyžadováno uživatelské jméno a heslo, použijte :
# 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>
Zkontrolujte verzi wget
Můžeme zkontrolovat verzi příkazu Wget, jak je uvedeno níže
# wget –version
Závěr
Wget má obrovské množství možností, pokryli jsme mnoho z nich.
Mimochodem, na stránce manuálu najdeme další možnosti.
# man wget