
آموزش کاربردی نصب و استفاده از دستور wget در لینوکس
ویژگی های متنوع Wget سبب شد که ما تصمیم بگیریم مقاله ای را برای آموزش نصب و استفاده از Wget در لینوکس اختصاص دهیم. احتمالا شما هم می پرسید مگر Wget چه ویژگی هایی دارد؟
Wget ابزار رایگان خط فرمان و در حقیقت یکdownloader network غیرتعاملی CLI است که از پروتکل هایی مانند HTTP، HTTPS، FTP و FTPS استفاده می کند و بسته های شما را از شبکه جهانی (WWW) دانلود می کند و نگهداری می کند تا شما بتوانید نصب و نگهداری آن ها را انجام دهید.
Wget ویژگی های زیادی دارد که امکان دانلود فایل را برای شما آسان می کند؛ برای مثال:
- امکان دانلود فایل های حجیم
- امکان دانلود فایل ها به صورت همزمان
- تنظیم پهنای باند و محدودیت سرعت برای دانلود ها
- استفاده از پروکسی برای دانلود فایل ها
- امکان از سرگیری مجدد دانلودهای متوقف شده
- اجرا شدن در سیستم عامل های مشابه یونیکس و ویندوز
- پشتیبانی کردن از HTTP به صورت مداوم
- پشتیبانی از SSL/TLS برای دانلودهای رمزگذاری شده با استفاده از کتابخانه OpenSSL یا GnuTLS.
- پشتیبانی از دانلودهای IPv4 و IPv6.
اگر شما هم دوست دارید تا از Wget استفاده کنید، آموزش کاربردی نصب و استفاده از دستور wget در لینوکس را همراه با ما اجرا کنید، اما پیش از آن که ادامه مقاله را مطالعه کنید، یک سرور مجازی لینوکس با سرعت و کیفیت بالا را از سایت ما خریداری کنید تا بتوانید به خوبی از این ابزار استفاده کنید. برای این کار می توانید به صفحه خرید سرور مجازی لینوکس ما سر بزنید.
سینتکس اصلی Wget
$ wget [option] [URL]
قبل از آن که گام بعدی را اجرا کنید، این اطمینان را حاصل کنید که ابزار wget از پیش در لینوکس شما نصب شده باشد. برای آن که متوجه شوید wget قبلا نصب شده است یا خیر، از کد زیر استفاده کنید:
$ rpm -q wget [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
$ dpkg -l | grep wget [On Debian, Ubuntu and Mint]
چگونه Wget را در لینوکس نصب کنیم؟
پس از آن که مطمئن شدید که Wget قبلا نصب نشده است، می توانید از مدیریت بسته پیش فرض استفاده کنید و آن را نصب کنید:
$ 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]
گزینه -y که در اینجا استفاده می شود برای جلوگیری از درخواست های تایید قبل از نصب هر بسته ای است.
یک فایل با Wget دانلود کنید
این دستور یک فایل را دانلود کرده و آن را در دایرکتوری فعلی ذخیره می کند. همچنین پیشرفت دانلود، اندازه، تاریخ و زمان را در حین دانلود نشان می دهد.
# 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]
Wget دانلود فایل با نام های مختلف
با استفاده از گزینه -O (با حروف بزرگ)، فایل هایی با نام های مختلف فایل دانلود می شود. در اینجا ما نام فایل wget.zip را مطابق شکل زیر داده ایم.
# 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]
با Wget چندین فایل را با پروتکل HTTP و FTP بارگیری کنید
در اینجا می بینیم که چگونه می توان چندین فایل را با استفاده از پروتکل HTTP و FTP با دستور 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]
Wget دانلود چند فایل از یک فایل
برای دانلود چند فایل به صورت همزمان، از گزینه -i با محل فایلی که حاوی لیست URL هایی است که باید دانلود شود استفاده کنید. همانطور که نشان داده شده است، هر URL باید در یک خط جداگانه اضافه شود.
به عنوان مثال، فایل زیر فایل “download-linux.txt” حاوی لیست URL هایی است که باید دانلود شوند.
# 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...
اگر لیست URL شما دارای الگوی شماره گذاری خاصی است، می توانید بریس های فرفری اضافه کنید تا همه URL های مطابق با الگو را واکشی کنید. به عنوان مثال، اگر می خواهید یک سری از هسته های لینوکس را از نسخه 5.1.1 تا 5.1.15 دانلود کنید، می توانید موارد زیر را انجام دهید.
$ 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
در صورت دانلود فایل هایی که حجم بالایی دارند، ممکن است گاهی اوقات این اتفاق بیفتد که دانلود متوقف شود، در این صورت میتوانیم دانلود همان فایلی را که در آنجا متوقف شده بود با گزینه -c از سر بگیریم.
اما وقتی شروع به دانلود فایل ها بدون تعیین -c می کنید، گزینه wget پسوند 0.1 را در انتهای فایل اضافه می کند که به عنوان یک دانلود جدید در نظر گرفته می شود. بنابراین، اضافه کردن سوئیچ -c هنگام دانلود فایلهای بزرگ تمرین خوبی است.
# 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
[[email protected] ~]# 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 ^
Wget Mirror تمام وب سایت
برای دانلود یا کپی کردن یا کپی کردن کل یک وب سایت برای مشاهده آفلاین، می توانید از دستور زیر استفاده کنید که یک کپی از وب سایت همراه با تمام المان ها (جاوا اسکریپت، CSS، تصاویر) ایجاد می کند.
$ wget --recursive --page-requisites --adjust-extension --span-hosts --convert-links
--restrict-file-names=windows --domains yoursite.com --no-parent yoursite.com
توضیح دستور بالا
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
Wget دانلود فایل ها در پس زمینه
با گزینه-b
می توانید بلافاصله پس از شروع دانلود و نوشتن گزارش ها در فایل 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’.
محدودیت سرعت دانلود فایل Wget Set
با گزینه –limit-rate=100k، محدودیت سرعت دانلود به 100k محدود می شود و گزارش ها مطابق شکل زیر در wget.log ایجاد می شوند.
$ 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’.
فایل wget.log را ببینید و سرعت دانلود 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
...
Wget دانلود فایل های محافظت شده با رمز عبور از طریق FTP و HTTP
برای دانلود یک فایل از یک سرور FTP محافظت شده با رمز عبور، می توانید از گزینه های--ftp-user=username
و--ftp-password=password
استفاده کنید.
$ wget --ftp-user=narad --ftp-password=password ftp://ftp.example.com/filename.tar.gz
برای دانلود یک فایل از یک سرور HTTP محافظت شده با رمز عبور، می توانید از گزینه های--http-user=username
و--http-password=password
مطابق شکل استفاده کنید.
$ wget --http-user=narad --http-password=password http://http.example.com/filename.tar.gz
نادیده گرفتن بررسی گواهی SSL
برای نادیده گرفتن بررسی گواهی SSL هنگام دانلود فایل ها از طریق HTTPS، می توانید از گزینه--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’...
نسخه Wget و راهنما
با گزینه های –version و –help می توانید نسخه را مشاهده کرده و در صورت نیاز کمک کنید.
$ wget --version$ wget --help
سخن آخر
در این مقاله دستورات wget لینوکس را با گزینه هایی با کاربردهای رایج آموزش دادیم. در صورتی که سوالی در این زمینه دارید، می توانید با ما در قسمت نظرات به اشتراک بگذارید.
سوالات متداول:
آیا wget از HTTP پشتیبانی می کند؟
بله پشتیبانی کردن از HTTP به صورت مداوم از ویژگی های Wget است.