10 Wget (Linux File Downloader) primjera naredbi u Linuxu


U ovom članku ćemo pregledati wget uslužni program koji preuzima datoteke sa World Wide Weba (WWW) koristeći široko korištene protokole kao što je HTTP , HTTPS, FTP, i FTPS.

Wget je besplatni uslužni program naredbenog retka i program za preuzimanje mrežnih datoteka, koji dolazi s mnogim funkcijama koje olakšavaju preuzimanje datoteka, uključujući:

  • Preuzmite velike datoteke ili preslikajte kompletne web ili FTP stranice.
  • Preuzmite više datoteka odjednom.
  • Postavite propusni opseg i ograničenje brzine za preuzimanja.
  • Preuzmite fajlove preko proksija.
  • Može nastaviti prekinuta preuzimanja.
  • Rekurzivno ogledalo direktorije.
  • Radi na većini operativnih sistema sličnih UNIX-u, kao i na Windows-u.
  • Rad bez nadzora/u pozadini.
  • Podrška za trajne HTTP veze.
  • Podrška za SSL/TLS za šifrovana preuzimanja koristeći OpenSSL ili GnuTLS biblioteku.
  • Podrška za IPv4 i IPv6 preuzimanja.

Sintaksa naredbe Wget

Osnovna sintaksa Wget-a je:

wget [option] [URL]

Prvo provjerite da li je uslužni program wget već instaliran ili ne u vašem Linux kutiju, koristeći sljedeću naredbu.

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

Instalirajte Wget na Linux

Ako Wget nije instaliran, možete ga instalirati koristeći zadani upravitelj paketa vašeg Linux sistema kao što je prikazano.

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]    

Opcija -y koja se ovdje koristi je da spriječi upite za potvrdu prije instaliranja bilo kojeg paketa. Za više primjera i opcija YUM i APT naredbi pročitajte naše članke na:

  • 20 Linux YUM komande za upravljanje paketima
  • 15 primjera APT naredbi u Ubuntu/Debian i Mint
  • 45 Zypper primjera naredbi za upravljanje OpenSUSE Linuxom

1. Preuzmite datoteku sa Wget-om

Naredba će preuzeti jednu datoteku i pohraniti je u trenutni direktorij. Također prikazuje napredak preuzimanja, veličinu, datum i vrijeme tokom preuzimanja.

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 Download File sa drugim imenom

Koristeći opciju -O (velika slova), preuzima datoteke s različitim nazivima datoteka. Ovdje smo dali naziv datoteke wget.zip kao što je prikazano ispod.

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 preuzimanje više datoteka sa HTTP i FTP protokolom

Ovdje vidimo kako istovremeno preuzeti više datoteka koristeći HTTP i FTP protokol sa naredbom 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 preuzimanje više datoteka iz datoteke

Za preuzimanje više datoteka odjednom, koristite opciju -i sa lokacijom datoteke koja sadrži listu URL-ova za preuzimanje. Svaki URL treba dodati u poseban red kao što je prikazano.

Na primjer, sljedeća datoteka „download-linux.txt“ sadrži listu URL-ova za preuzimanje.

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
...

Ako vaša lista URL-ova ima određeni obrazac numeriranja, možete dodati vitičaste zagrade da dohvatite sve URL-ove koji odgovaraju uzorku. Na primjer, ako želite da preuzmete niz Linux kernela počevši od verzije 5.1.1 do 5.1.15, možete učiniti sljedeće.

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 Resume Nedovršeno preuzimanje

U slučaju velikog preuzimanja fajla, ponekad se može desiti da prestanemo sa preuzimanjem, u tom slučaju možemo da nastavimo sa preuzimanjem istog fajla gde je prekinuto sa -c opcijom.

Ali kada počnete preuzimati fajlove bez navođenja -c, opcija wget će dodati ekstenziju .1 na kraju datoteke, koja se smatra svježom skinuti. Dakle, dobra je praksa dodati prekidač -c kada preuzimate velike fajlove.

# 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 Cijela web stranica

Za preuzimanje ili preslikavanje ili kopiranje cijele web stranice za gledanje van mreže, možete koristiti sljedeću naredbu koja će napraviti lokalnu kopiju web stranice zajedno sa svim sredstvima (JavaScript, CSS, slike).

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

Objašnjenje gornje naredbe.

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 preuzimanje datoteka u pozadini

Sa -b opcijom možete poslati preuzimanje u pozadini odmah nakon što preuzimanje započne i zapisnici se zapisuju u datoteku 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 Postavite ograničenja brzine preuzimanja datoteke

Sa opcijom --limit-rate=100k, ograničenje brzine preuzimanja je ograničeno na 100k i dnevnici će se kreirati pod wget.log kao što je prikazano ispod.

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’.

Pogledajte datoteku wget.log i provjerite brzinu preuzimanja wget-a.

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 preuzimanje datoteka zaštićenih lozinkom putem FTP-a i HTTP-a

Za preuzimanje datoteke sa FTP servera zaštićenog lozinkom, možete koristiti opcije --ftp-user=username i --ftp-password=password kao što je prikazano.

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

Za preuzimanje datoteke sa HTTP servera zaštićenog lozinkom, možete koristiti opcije --http-user=username i --http-password=password kao što je prikazano.

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

10. Wget Ignore SSL Certificate Check

Da zanemarite provjeru SSL certifikata prilikom preuzimanja datoteka preko HTTPS, možete koristiti opciju --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. Wget verzija i pomoć

Sa opcijama --version i --help možete pogledati verziju i pomoć po potrebi.

wget --version
wget --help

U ovom članku smo pokrili Linux wget komande sa opcijama za dnevne administrativne zadatke. Da li man wget ako želite saznati više o tome? Molimo vas da podijelite kroz naš okvir za komentare ili ako smo nešto propustili, obavijestite nas.