10 Wget (Linux File Downloader) Amri Mifano katika Linux


Katika makala haya, tutapitia matumizi ya wget ambayo hurejesha faili kutoka kwa Mtandao Wote wa Ulimwenguni (WWW) kwa kutumia itifaki zinazotumiwa sana kama HTTP, HTTPS, FTP, na FTPS.

Wget ni matumizi ya bure ya mstari wa amri na upakuaji wa faili wa mtandao, ambayo inakuja na huduma nyingi ambazo hurahisisha upakuaji wa faili, pamoja na:

  • Pakua faili kubwa au kioo tovuti kamili au tovuti za FTP.
  • Pakua faili nyingi kwa wakati mmoja.
  • Weka kipimo data na kikomo cha kasi cha upakuaji.
  • Pakua faili kupitia seva mbadala.
  • Inaweza kuendelea na upakuaji uliokatizwa.
  • Onyesha saraka kwa kujirudia.
  • Hufanya kazi kwenye mifumo mingi ya uendeshaji inayofanana na UNIX pamoja na Windows.
  • Uendeshaji usiosimamiwa/wa usuli.
  • Usaidizi wa miunganisho endelevu ya HTTP.
  • Usaidizi wa SSL/TLS kwa vipakuliwa vilivyosimbwa kwa kutumia OpenSSL au maktaba ya GnuTLS.
  • Usaidizi wa vipakuliwa vya IPv4 na IPv6.

Syntax ya msingi ya Wget ni:

$ wget [option] [URL]

Kwanza, angalia ikiwa matumizi ya wget tayari yamesakinishwa au la kwenye kisanduku chako cha Linux, kwa kutumia amri ifuatayo.

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

Ikiwa Wget haijasakinishwa, unaweza kuisakinisha kwa kutumia kidhibiti chaguo-msingi cha mfumo wako wa Linux kama inavyoonyeshwa.

$ 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]    

Chaguo la -y linalotumika hapa ni kuzuia vidokezo vya uthibitishaji kabla ya kusakinisha kifurushi chochote. Kwa mifano zaidi ya amri za YUM na APT na chaguzi soma nakala zetu kwenye:

  • Amri 20 za Linux YUM kwa Usimamizi wa Kifurushi
  • Mifano 15 ya Amri za APT katika Ubuntu/Debian na Mint
  • Mifano 45 ya Amri ya Zypper ya Kusimamia OpenSUSE Linux

1. Pakua Faili ukitumia Wget

Amri itapakua faili moja na kuihifadhi kwenye saraka ya sasa. Inaonyesha pia maendeleo ya upakuaji, saizi, tarehe na wakati wakati wa kupakua.

# 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 Pakua Faili na Jina Tofauti

Kwa kutumia chaguo la -O (herufi kubwa), pakua faili zilizo na majina tofauti ya faili. Hapa tumetoa jina la faili ya wget.zip kama inavyoonyeshwa hapa chini.

# 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 Pakua Faili Nyingi na Itifaki ya HTTP na FTP

Hapa tunaona jinsi ya kupakua faili nyingi kwa kutumia itifaki ya HTTP na FTP na amri ya wget mara moja.

$ 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 Pakua Faili Nyingi Kutoka kwa Faili

Ili kupakua faili nyingi kwa wakati mmoja, tumia chaguo la -i na eneo la faili ambalo lina orodha ya URL za kupakuliwa. Kila URL inahitaji kuongezwa kwenye mstari tofauti kama inavyoonyeshwa.

Kwa mfano, faili ifuatayo ya ‘download-linux.txt’ ina orodha ya URL za kupakuliwa.

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

Ikiwa orodha yako ya URL ina muundo fulani wa nambari, unaweza kuongeza viunga vilivyopinda ili kuleta URL zote zinazolingana na mchoro. Kwa mfano, ikiwa unataka kupakua mfululizo wa kernels za Linux kuanzia toleo la 5.1.1 hadi 5.1.15, unaweza kufanya yafuatayo.

$ 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 Upakuaji ambao haujakamilika

Katika kesi ya upakuaji mkubwa wa faili, inaweza kutokea wakati mwingine kusitisha upakuaji katika hali hiyo tunaweza kuendelea kupakua faili ile ile ambapo iliachwa na chaguo la -c.

Lakini unapoanza kupakua faili bila kubainisha -c chaguo wget itaongeza .1 kiendelezi mwishoni mwa faili, ikizingatiwa kama upakuaji mpya. Kwa hivyo, ni mazoezi mazuri kuongeza -c kubadili unapopakua faili kubwa.

# 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
 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 Tovuti Nzima

Ili kupakua au kuakisi au kunakili tovuti nzima kwa kutazama nje ya mtandao, unaweza kutumia amri ifuatayo ambayo itafanya nakala ya ndani ya tovuti pamoja na mali zote (JavaScript, CSS, Picha).

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

Ufafanuzi wa amri hapo juu.

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 Pakua Faili katika Mandharinyuma

Ukiwa na chaguo la -b unaweza kutuma upakuaji chinichini mara baada ya kuanza upakuaji na kumbukumbu zimeandikwa katika faili ya 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 Weka Vikomo vya Kasi ya Upakuaji wa Faili

Kwa chaguo --limit-rate=100k, kikomo cha kasi ya upakuaji ni 100k pekee na kumbukumbu zitaundwa chini ya wget.log kama inavyoonyeshwa hapa chini.

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

Tazama faili ya wget.log na uangalie kasi ya upakuaji wa 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 Pakua Faili Zilizolindwa Nenosiri kupitia FTP na HTTP

Ili kupakua faili kutoka kwa seva ya FTP iliyolindwa na nenosiri, unaweza kutumia chaguo --ftp-user=username na --ftp-password=password kama inavyoonyeshwa.

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

Ili kupakua faili kutoka kwa seva ya HTTP iliyolindwa kwa nenosiri, unaweza kutumia chaguo --http-user=username na --http-password=password kama inavyoonyeshwa.

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

10. Wget Puuza Cheti cha Cheti cha SSL

Ili kupuuza ukaguzi wa cheti cha SSL unapopakua faili kupitia HTTPS, unaweza kutumia chaguo la --no-check-cheti:

$ 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. Toleo la Wget na Msaada

Ukiwa na chaguo --version na --help unaweza kuona toleo na usaidizi inavyohitajika.

$ wget --version
$ wget --help

Katika nakala hii, tumeshughulikia amri za Linux wget na chaguzi za kazi za kila siku za usimamizi. Fanya man wget ikiwa unataka kujua zaidi juu yake. Tafadhali shiriki kupitia kisanduku chetu cha maoni au ikiwa tumekosa chochote, tujulishe.