GNU/Linux >> Znalost Linux >  >> Linux

Příkaz Wget v Linuxu s příklady

Ú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


Linux
  1. Linux Tee Command s příklady

  2. JQ Command v Linuxu s příklady

  3. Příklady příkazů wget v Linuxu

  1. wc Linux Command s příklady

  2. Linux řazení příkazů s příklady

  3. 12 Užitečné příklady příkazů Wget v Linuxu

  1. Echo Command v Linuxu (s příklady)

  2. man Command v Linuxu s příklady

  3. Příkaz AWK v Linuxu s příklady