Wyszukiwanie w witrynie

10 przykładów poleceń Wget (Linux File Downloader) w systemie Linux


W tym artykule omówimy narzędzie wget, które pobiera pliki z sieci WWW (WWW) przy użyciu powszechnie używanych protokołów, takich jak HTTP , HTTPS, FTP i FTPS.

Wget to bezpłatne narzędzie wiersza poleceń i narzędzie do pobierania plików sieciowych, wyposażone w wiele funkcji ułatwiających pobieranie plików, w tym:

  • Pobieraj duże pliki lub kopiuj całe witryny internetowe lub FTP.
  • Pobierz wiele plików na raz.
  • Ustaw przepustowość i limit prędkości pobierania.
  • Pobieraj pliki przez proxy.
  • Może wznowić przerwane pobieranie.
  • Rekursywnie odzwierciedlaj katalogi.
  • Działa na większości systemów operacyjnych typu UNIX oraz Windows.
  • Praca bez nadzoru/w tle.
  • Obsługa trwałych połączeń HTTP.
  • Obsługa SSL/TLS dla szyfrowanych plików do pobrania przy użyciu biblioteki OpenSSL lub GnuTLS.
  • Obsługa pobierania plików IPv4 i IPv6.

Składnia polecenia Wget

Podstawowa składnia Wget to:

wget [option] [URL]

Najpierw sprawdź, czy narzędzie wget jest już zainstalowane na Twoim Linuksie, używając następującego polecenia.

rpm -q wget         [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
dpkg -l | grep wget [On Debian, Ubuntu and Mint]

Zainstaluj Wget w systemie Linux

Jeśli Wget nie jest zainstalowany, możesz go zainstalować przy użyciu domyślnego menedżera pakietów w systemie Linux, jak pokazano.

sudo apt install wget -y      [On Debian, Ubuntu and Mint]
sudo yum install wget -y      [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
sudo emerge -a net-misc/wget  [On Gentoo Linux]
sudo pacman -Sy wget           [On Arch Linux]
sudo zypper install wget      [On OpenSUSE]    

Zastosowana tutaj opcja -y ma na celu zapobieganie wyświetlaniu monitów o potwierdzenie przed instalacją jakiegokolwiek pakietu. Więcej przykładów i opcji poleceń YUM i APT znajdziesz w naszych artykułach na temat:

  • 20 poleceń Linux YUM do zarządzania pakietami
  • 15 przykładów poleceń APT w Ubuntu/Debianie i Mint
  • 45 przykładów poleceń Zyppera do zarządzania OpenSUSE Linux

1. Pobierz plik za pomocą Wget

Polecenie pobierze pojedynczy plik i zapisze go w bieżącym katalogu. Pokazuje także postęp pobierania, rozmiar, datę i godzinę podczas pobierania.

wget http://ftp.gnu.org/gnu/wget/wget2-2.0.0.tar.gz

--2021-12-10 04:15:16--  http://ftp.gnu.org/gnu/wget/wget2-2.0.0.tar.gz
Resolving ftp.gnu.org (ftp.gnu.org)... 209.51.188.20, 2001:470:142:3::b
Connecting to ftp.gnu.org (ftp.gnu.org)|209.51.188.20|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3565643 (3.4M) [application/x-gzip]
Saving to: ‘wget2-2.0.0.tar.gz’

wget2-2.0.0.tar.gz      100%[==========>]   3.40M  2.31MB/s    in 1.5s    

2021-12-10 04:15:18 (2.31 MB/s) - ‘wget2-2.0.0.tar.gz’ saved [3565643/3565643]

2. Wget Pobierz plik pod inną nazwą

Użycie opcji -O (wielkie litery) powoduje pobranie plików o różnych nazwach. Tutaj podaliśmy nazwę pliku wget.zip, jak pokazano poniżej.

wget -O wget.zip http://ftp.gnu.org/gnu/wget/wget2-2.0.0.tar.gz

--2021-12-10 04:20:19--  http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz
Resolving ftp.gnu.org (ftp.gnu.org)... 209.51.188.20, 2001:470:142:3::b
Connecting to ftp.gnu.org (ftp.gnu.org)|209.51.188.20|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 446966 (436K) [application/x-gzip]
Saving to: ‘wget.zip’

wget.zip      100%[===================>] 436.49K   510KB/s    in 0.9s    

2021-12-10 04:20:21 (510 KB/s) - ‘wget.zip’ saved [446966/446966]

3. Wget Pobierz wiele plików za pomocą protokołów HTTP i FTP

Tutaj widzimy, jak pobrać wiele plików przy użyciu protokołu HTTP i FTP jednocześnie za pomocą polecenia wget.

wget http://ftp.gnu.org/gnu/wget/wget2-2.0.0.tar.gz ftp://ftp.gnu.org/gnu/wget/wget2-2.0.0.tar.gz.sig

--2021-12-10 06:45:17--  http://ftp.gnu.org/gnu/wget/wget2-2.0.0.tar.gz
Resolving ftp.gnu.org (ftp.gnu.org)... 209.51.188.20, 2001:470:142:3::b
Connecting to ftp.gnu.org (ftp.gnu.org)|209.51.188.20|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3565643 (3.4M) [application/x-gzip]
Saving to: ‘wget2-2.0.0.tar.gz’

wget2-2.0.0.tar.gz      100%[==========>]   4.40M  4.31MB/s    in 1.1s    

2021-12-10 06:46:10 (2.31 MB/s) - ‘wget2-2.0.0.tar.gz’ saved [3565643/3565643]

4. Wget Pobierz wiele plików z pliku

Aby pobrać wiele plików na raz, użyj opcji -i, podając lokalizację pliku zawierającego listę adresów URL do pobrania. Każdy adres URL należy dodać w osobnej linii, jak pokazano.

Na przykład następujący plik „download-linux.txt” zawiera listę adresów URL do pobrania.

cat download-linux.txt 

https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso
https://download.rockylinux.org/pub/rocky/8/isos/x86_64/Rocky-8.5-x86_64-dvd1.iso
https://cdimage.debian.org/debian-cd/current/amd64/iso-dvd/debian-11.2.0-amd64-DVD-1.iso
wget -i download-linux.txt

--2021-12-10 04:52:40--  https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso
Resolving releases.ubuntu.com (releases.ubuntu.com)... 91.189.88.248, 91.189.88.247, 91.189.91.124, ...
Connecting to releases.ubuntu.com (releases.ubuntu.com)|91.189.88.248|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3071934464 (2.9G) [application/x-iso9660-image]
Saving to: ‘ubuntu-20.04.3-desktop-amd64.iso’

ubuntu-20.04.3-desktop-amd64   4%[=>      ] 137.71M  11.2MB/s    eta 3m 30s
...

Jeśli lista adresów URL ma określony wzorzec numeracji, możesz dodać nawiasy klamrowe, aby pobrać wszystkie adresy URL pasujące do tego wzorca. Na przykład, jeśli chcesz pobrać serię jąder Linuksa, począwszy od wersji 5.1.1 do 5.1.15, możesz wykonać następujące czynności.

wget https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.1.{1..15}.tar.gz

--2021-12-10 05:46:59--  https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.1.1.tar.gz
Resolving mirrors.edge.kernel.org (mirrors.edge.kernel.org)... 147.75.95.133, 2604:1380:3000:1500::1
Connecting to mirrors.edge.kernel.org (mirrors.edge.kernel.org)|147.75.95.133|:443... connected.
WARNING: The certificate of ‘mirrors.edge.kernel.org’ is not trusted.
WARNING: The certificate of ‘mirrors.edge.kernel.org’ is not yet activated.
The certificate has not yet been activated
HTTP request sent, awaiting response... 200 OK
Length: 164113671 (157M) [application/x-gzip]
Saving to: ‘linux-5.1.1.tar.gz’

linux-5.1.1.tar.gz      100%[===========>] 156.51M  2.59MB/s    in 61s     

2021-12-10 05:48:01 (2.57 MB/s) - ‘linux-5.1.1.tar.gz’ saved [164113671/164113671]

--2021-12-10 05:48:01--  https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.1.2.tar.gz
Reusing existing connection to mirrors.edge.kernel.org:443.
HTTP request sent, awaiting response... 200 OK
Length: 164110470 (157M) [application/x-gzip]
Saving to: ‘linux-5.1.2.tar.gz’

linux-5.1.2.tar.gz     19%[===========]  30.57M  2.58MB/s    eta 50s

5. Wget Wznów nieukończone pobieranie

W przypadku pobierania dużego pliku może się czasem zdarzyć, że pobieranie zostanie zatrzymane. W takim przypadku możemy wznowić pobieranie tego samego pliku, w którym zostało przerwane, za pomocą opcji -c.

Ale kiedy zaczniesz pobierać pliki bez określenia -c, opcja wget doda rozszerzenie .1 na końcu pliku, uznawanego za świeży pobierać. Dlatego dobrą praktyką jest dodanie przełącznika -c podczas pobierania dużych plików.

# wget -c https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso

--2021-12-10 05:27:59--  https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso
Resolving releases.ubuntu.com (releases.ubuntu.com)... 91.189.88.247, 91.189.91.123, 91.189.91.124, ...
Connecting to releases.ubuntu.com (releases.ubuntu.com)|91.189.88.247|:443... connected.
HTTP request sent, awaiting response... 206 Partial Content
Length: 3071934464 (2.9G), 2922987520 (2.7G) remaining [application/x-iso9660-image]
Saving to: ‘ubuntu-20.04.3-desktop-amd64.iso’

ubuntu-20.04.3-desktop-amd64.iso        5%[++++++> ]   167.93M  11.1MB/s               
^C
[root@tecmint ~]# wget -c https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso
--2021-12-10 05:28:03--  https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso
Resolving releases.ubuntu.com (releases.ubuntu.com)... 91.189.88.248, 91.189.91.124, 91.189.91.123, ...
Connecting to releases.ubuntu.com (releases.ubuntu.com)|91.189.88.248|:443... connected.
HTTP request sent, awaiting response... 206 Partial Content
Length: 3071934464 (2.9G), 2894266368 (2.7G) remaining [application/x-iso9660-image]
Saving to: ‘ubuntu-20.04.3-desktop-amd64.iso’

ubuntu-20.04.3-desktop-amd64.iso        10%[+++++++=====> ] 296.32M  17.2MB/s    eta 2m 49s ^

6. Wget Mirror Cała witryna internetowa

Aby pobrać, odzwierciedlić lub skopiować całą witrynę do przeglądania w trybie offline, możesz użyć następującego polecenia, które utworzy lokalną kopię witryny wraz ze wszystkimi zasobami (JavaScript, CSS, obrazy).

wget --recursive --page-requisites --adjust-extension --span-hosts --convert-links --restrict-file-names=windows --domains yoursite.com --no-parent yoursite.com

Wyjaśnienie powyższego polecenia.

wget \
     --recursive \ # Download the whole site.
     --page-requisites \ # Get all assets/elements (CSS/JS/images).
     --adjust-extension \ # Save files with .html on the end.
     --span-hosts \ # Include necessary assets from offsite as well.
     --convert-links \ # Update links to still work in the static version.
     --restrict-file-names=windows \ # Modify filenames to work in Windows as well.
     --domains yoursite.com \ # Do not follow links outside this domain.
     --no-parent \ # Don't follow links outside the directory you pass in.
         yoursite.com/whatever/path # The URL to download

7. Wget pobiera pliki w tle

Dzięki opcji -b możesz wysłać pobieranie w tle natychmiast po rozpoczęciu pobierania i zapisaniu logów w pliku wget.log.

wget -b wget.log https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso

Continuing in background, pid 8999.
Output will be written to ‘wget.log’.

8. Wget Ustawia limity prędkości pobierania plików

W przypadku opcji --limit-rate=100k limit prędkości pobierania jest ograniczony do 100k, a logi będą tworzone w wget.log, jak pokazano poniżej.

wget -c --limit-rate=100k -b wget.log https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso

Continuing in background, pid 9108.
Output will be written to ‘wget-log’.

Wyświetl plik wget.log i sprawdź prędkość pobierania wget.

tail -f wget-log 

 5600K .......... .......... .......... .......... ..........  0%  104K 8h19m
 5650K .......... .......... .......... .......... ..........  0%  103K 8h19m
 5700K .......... .......... .......... .......... ..........  0%  105K 8h19m
 5750K .......... .......... .......... .......... ..........  0%  104K 8h18m
 5800K .......... .......... .......... .......... ..........  0%  104K 8h18m
 5850K .......... .......... .......... .......... ..........  0%  105K 8h18m
 5900K .......... .......... .......... .......... ..........  0%  103K 8h18m
 5950K .......... .......... .......... .......... ..........  0%  105K 8h18m
 6000K .......... .......... .......... .......... ..........  0% 69.0K 8h20m
 6050K .......... .......... .......... .......... ..........  0%  106K 8h19m
 6100K .......... .......... .......... .......... ..........  0% 98.5K 8h20m
 6150K .......... .......... .......... .......... ..........  0%  110K 8h19m
 6200K .......... .......... .......... .......... ..........  0%  104K 8h19m
 6250K .......... .......... .......... .......... ..........  0%  104K 8h19m
...

9. Wget Pobieraj pliki chronione hasłem przez FTP i HTTP

Aby pobrać plik z serwera FTP chronionego hasłem, możesz użyć opcji --ftp-user=nazwa użytkownika i --ftp-password=hasło, jak pokazano.

wget --ftp-user=narad --ftp-password=password ftp://ftp.example.com/filename.tar.gz

Aby pobrać plik z serwera HTTP chronionego hasłem, możesz użyć opcji --http-user=username i --http-password=hasło, jak pokazano.

wget --http-user=narad --http-password=password http://http.example.com/filename.tar.gz

10. Wget Ignoruj sprawdzanie certyfikatu SSL

Aby zignorować sprawdzanie certyfikatu SSL podczas pobierania plików przez HTTPS, możesz użyć opcji --no-check-certificate:

wget --no-check-certificate https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.1.1.tar.gz

--2021-12-10 06:21:21--  https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.1.1.tar.gz
Resolving mirrors.edge.kernel.org (mirrors.edge.kernel.org)... 147.75.95.133, 2604:1380:3000:1500::1
Connecting to mirrors.edge.kernel.org (mirrors.edge.kernel.org)|147.75.95.133|:443... connected.
WARNING: The certificate of ‘mirrors.edge.kernel.org’ is not trusted.
WARNING: The certificate of ‘mirrors.edge.kernel.org’ is not yet activated.
The certificate has not yet been activated
HTTP request sent, awaiting response... 200 OK
Length: 164113671 (157M) [application/x-gzip]
Saving to: ‘linux-5.1.1.tar.gz’
...

11. Wersja i pomoc Wget

Za pomocą opcji --version i --help możesz w razie potrzeby wyświetlić wersję i pomoc.

wget --version
wget --help

W tym artykule omówiliśmy polecenia wget systemu Linux wraz z opcjami wykonywania codziennych zadań administracyjnych. Czy man wget jeśli chcesz dowiedzieć się więcej na ten temat? Udostępnij w naszym polu komentarza, a jeśli coś przeoczyliśmy, daj nam znać.