10 Wget (Linux File Downloader) Kommandoeksempler i Linux


I dette indlæg skal vi gennemgå wget-værktøjet, der henter filer fra World Wide Web (WWW) ved hjælp af meget anvendte protokoller som HTTP, HTTPS og FTP. Wget-værktøjet er gratis tilgængelig pakke, og licensen er under GNU GPL-licens. Dette værktøj kan installeres ethvert Unix-lignende operativsystem inklusive Windows og MAC OS. Det er et ikke-interaktivt kommandolinjeværktøj. Vigtigste træk ved Wget's robusthed. Det er designet på en sådan måde, at det fungerer i langsomme eller ustabile netværksforbindelser. Wget starter automatisk download, hvor det blev afbrudt i tilfælde af netværksproblem. Downloader også filen rekursivt. Det fortsætter med at prøve, indtil filen er hentet helt.

Kontroller først, om wget-værktøjet allerede er installeret eller ikke i din Linux-boks ved hjælp af følgende kommando.

# rpm -qa wget

wget-1.12-1.4.el6.i686

Installer det ved hjælp af YUM-kommandoen, hvis wget ikke allerede er installeret, eller du også kan downloade binær pakke på http://ftp.gnu.org/gnu/wget/.

# yum -y install wget

Indstillingen -y, der anvendes her, er at forhindre bekræftelsesprompt, inden du installerer en pakke. For flere YUM-kommandoeksempler og -indstillinger, læs artiklen om 20 YUM Command-eksempler til Linux-pakkehåndtering.

1. Download af enkelt fil

Kommandoen downloader en enkelt fil og gemmes i en aktuel mappe. Det viser også downloadforløb, størrelse, dato og klokkeslæt under download.

# wget http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz

--2012-10-02 11:28:30--  http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz
Resolving ftp.gnu.org... 208.118.235.20, 2001:4830:134:3::b
Connecting to ftp.gnu.org|208.118.235.20|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 446966 (436K) [application/x-gzip]
Saving to: wget-1.5.3.tar.gz
100%[===================================================================================>] 446,966     60.0K/s   in 7.4s
2012-10-02 11:28:38 (58.9 KB/s) - wget-1.5.3.tar.gz

2. Download fil med andet navn

Brug -O (store bogstaver), downloader fil med andet filnavn. Her har vi givet wget.zip filnavnet som vist nedenfor.

# wget -O wget.zip http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz

--2012-10-02 11:55:54--  http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz
Resolving ftp.gnu.org... 208.118.235.20, 2001:4830:134:3::b
Connecting to ftp.gnu.org|208.118.235.20|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 446966 (436K) [application/x-gzip]
Saving to: wget.zip
100%[===================================================================================>] 446,966     60.0K/s   in 7.5s
2012-10-02 11:56:02 (58.5 KB/s) - wget.zip

3. Download flere filer med http og ftp-protokol

Her ser vi, hvordan man downloader flere filer ved hjælp af HTTP og FTP-protokol med wget-kommandoen som en.

# wget http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz ftp://ftp.gnu.org/gnu/wget/wget-1.10.1.tar.gz.sig

--2012-10-02 12:11:16--  http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz
Resolving ftp.gnu.org... 208.118.235.20, 2001:4830:134:3::b
Connecting to ftp.gnu.org|208.118.235.20|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 446966 (436K) [application/x-gzip]
Saving to: wget-1.5.3.tar.gz

100%[===================================================================================>] 446,966     56.7K/s   in 7.6s

2012-10-02 12:11:29 (57.1 KB/s) - wget-1.5.3.tar.gz

--2012-10-02 12:11:29--  ftp://ftp.gnu.org/gnu/wget/wget-1.10.1.tar.gz.sig
           => wget-1.10.1.tar.gz.sig

Logging in as anonymous ... Logged in!
==> SYST ... done.    ==> PWD ... done.
==> TYPE I ... done.  ==> CWD (1) /gnu/wget ... done.
==> SIZE wget-1.10.1.tar.gz.sig ... 65
==> PASV ... done.    ==> RETR wget-1.10.1.tar.gz.sig ... done.
Length: 65 (unauthoritative)

100%[===================================================================================>] 65          --.-K/s   in 0s

2012-10-02 12:11:33 (2.66 MB/s) - wget-1.10.1.tar.gz.sig

FINISHED --2012-10-02 12:11:33--
Downloaded: 2 files, 437K in 7.6s (57.1 KB/s)

4. Læs URL'er fra en fil

Du kan gemme antallet af webadresser i tekstfilen og downloade dem med -i-indstillingen. Nedenfor har vi oprettet tmp.txt under wget-biblioteket, hvor vi lægger serier af URL'er til download.

# wget -i /wget/tmp.txt

--2012-10-02 12:34:12--  http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz ftp://ftp.gnu.org/gnu/wget/wget-1.10.1.tar.gz.sig
Resolving ftp.gnu.org... 208.118.235.20, 2001:4830:134:3::b
Connecting to ftp.gnu.org|208.118.235.20|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 446966 (436K) [application/x-gzip]
Saving to: wget-1.10.1.tar.gz.sig

100%[===================================================================================>] 446,966     35.0K/s   in 10s

2012-10-02 12:34:23 (42.7 KB/s) - wget-1.10.1.tar.gz.sig

--2012-10-02 12:34:23--  http://mirrors.hns.net.in/centos/6.3/isos/x86_64/CentOS-6.3-x86_64-LiveDVD.iso
Resolving mirrors.hns.net.in... 111.91.91.34, 2401:4800::111:91:91:34
Connecting to mirrors.hns.net.in|111.91.91.34|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1761607680 (1.6G) [application/octet-stream]
Saving to: CentOS-6.3-x86_64-LiveDVD.iso

 45%[==========================================                                          ] 1,262,000   51.6K/s  eta 8h 17m

5. Genoptag ufuldstændig download

I tilfælde af download af store filer kan det ske en gang at stoppe download, i så fald kan vi genoptage download af den samme fil, hvor den blev afbrudt med -c mulighed. Men når du begynder at downloade fil uden at angive -c option vil wget tilføje .1 udvidelse i slutningen af filen, betragtes som en ny download. Så det er god praksis at tilføje -c switch, når du downloader store filer.

# wget -c http://mirrors.hns.net.in/centos/6.3/isos/x86_64/CentOS-6.3-x86_64-LiveDVD.iso

--2012-10-02 12:46:57--  http://mirrors.hns.net.in/centos/6.3/isos/x86_64/CentOS-6.3-x86_64-LiveDVD.iso
Resolving mirrors.hns.net.in... 111.91.91.34, 2401:4800::111:91:91:34
Connecting to mirrors.hns.net.in|111.91.91.34|:80... connected.
HTTP request sent, awaiting response... 206 Partial Content
Length: 1761607680 (1.6G), 1758132697 (1.6G) remaining [application/octet-stream]
Saving to: CentOS-6.3-x86_64-LiveDVD.iso

 51% [=================================================                                  ] 3,877,262   47.0K/s  eta 10h 27m ^

6. Download fil med tilføjet .1 i filnavn

Når du starter download uden -c-indstilling, tilføj wget .1 i slutningen af filen og start med ny download. Hvis .1 allerede findes .2 tilføj i slutningen af filen.

# wget http://mirrors.hns.net.in/centos/6.3/isos/x86_64/CentOS-6.3-x86_64-LiveDVD.iso

--2012-10-02 12:50:49--  http://mirrors.hns.net.in/centos/6.3/isos/x86_64/CentOS-6.3-x86_64-LiveDVD.iso
Resolving mirrors.hns.net.in... 111.91.91.34, 2401:4800::111:91:91:34
Connecting to mirrors.hns.net.in|111.91.91.34|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1761607680 (1.6G) [application/octet-stream]
Saving to: CentOS-6.3-x86_64-LiveDVD.iso.1

 18% [==================                                                                 ] 172,436     59.2K/s   

Se eksempler på filer med .1 udvidelse tilføjet i slutningen af filen.

# ls -l CentOS*

-rw-r--r--. 1 root root 3877262 Oct  2 12:47 CentOS-6.3-x86_64-LiveDVD.iso
-rw-r--r--. 1 root root  181004 Oct  2 12:50 CentOS-6.3-x86_64-LiveDVD.iso.1

7. Download filer i baggrunden

Med -b-indstillingen kan du sende download i baggrunden umiddelbart efter downloadstart og logfiler er skrevet i /wget/log.txt-filen.

# wget -b /wget/log.txt ftp://ftp.iinet.net.au/debian/debian-cd/6.0.5/i386/iso-dvd/debian-6.0.5-i386-DVD-1.iso

Continuing in background, pid 3550.

8. Begræns downloadhastighedsbegrænsninger

Med Option –limit-rate = 100k er downloadhastighedsgrænsen begrænset til 100k, og loggene oprettes under /wget/log.txt som vist nedenfor.

# wget -c --limit-rate=100k  /wget/log.txt ftp://ftp.iinet.net.au/debian/debian-cd/6.0.5/i386/iso-dvd/debian-6.0.5-i386-DVD-1.iso

/wget/log.txt: Scheme missing.
--2012-10-02 13:16:21--  ftp://ftp.iinet.net.au/debian/debian-cd/6.0.5/i386/iso-dvd/debian-6.0.5-i386-DVD-1.iso
           => debian-6.0.5-i386-DVD-1.iso
esolving ftp.iinet.net.au... 203.0.178.32
Connecting to ftp.iinet.net.au|203.0.178.32|:21... connected.
Logging in as anonymous ... Logged in!
==> SYST ... done.    ==> PWD ... done.
==> TYPE I ... done.  ==> CWD (1) /debian/debian-cd/6.0.5/i386/iso-dvd ... done.
==> SIZE debian-6.0.5-i386-DVD-1.iso ... 4691312640
==> PASV ... done.    ==> REST 2825236 ... done.
==> RETR debian-6.0.5-i386-DVD-1.iso ... done.
Length: 4688487404 (4.4G), 4685662168 (4.4G) remaining (unauthoritative)

 0% [                                                                                    ] 3,372,160   35.5K/s  eta 28h 39m

9. Begrænset FTP- og HTTP-download med brugernavn og adgangskode

Med indstillinger –http-bruger = brugernavn, –http-adgangskode = adgangskode & –ftp-bruger = brugernavn, –ftp-adgangskode = adgangskode, kan du downloade adgangskodebegrænsede HTTP- eller FTP-websteder som vist nedenfor.

# wget --http-user=narad --http-password=password http://mirrors.hns.net.in/centos/6.3/isos/x86_64/CentOS-6.3-x86_64-LiveDVD.iso
# wget --ftp-user=narad --ftp-password=password ftp://ftp.iinet.net.au/debian/debian-cd/6.0.5/i386/iso-dvd/debian-6.0.5-i386-DVD-1.iso

10. Find wget-version og hjælp

Med Options –version og –help kan du se version og hjælp efter behov.

# wget --version

# wget --help

I denne artikel har vi dækket Linux wget-kommando med muligheder for daglig administrativ opgave. Gør mand wget, hvis du vil vide mere om det. Del venligst gennem vores kommentarfelt, eller hvis vi har gået glip af noget, så lad os det vide.