شما برای مطالعه این مقاله فقط 7 دقیقه وقت نیاز دارید

wget

آموزش کاربردی نصب و استفاده از دستور wget در لینوکس

4.5/5 - (2 امتیاز)

ویژگی های متنوع 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

  1. یک فایل با 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]
  1. استفاده از 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]
  1. با 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]
  1. دانلود چند فایل از یک فایل به صورت همزمان

برای دانلود چند فایل به صورت همزمان، از گزینه -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
  1. دانلود یک فایل و ذخیره در دایرکتوری مشخص  به کمک دستور wget

    برای آن که بتوانیم در لینوکس یک فایل را دانلود کنیم و آن را در دایرکتوری دلخواهمان ذخیره کنیم، باید از –P استفاده کنیم.  مثلا اگر بخواهید فایلی را داخل دایرکتوری /opt/wordpress ذخیره کنید، می توانید از دستور زیر استفاده کنید

    wget -P /opt/wordpress https://wordpress.org/latest.zip #
  2. دانلود مجدد دانلودهای ناتمام با دستور Wget

در صورت دانلود فایل هایی که حجم بالایی دارند، ممکن است گاهی اوقات این اتفاق بیفتد که دانلود متوقف شود، در این صورت می‌توانیم دانلود همان فایلی را که در آنجا متوقف شده بود با گزینه -c از سر بگیریم.

کلیک کنید  سرور چیست؟ معرفی انواع Server و راهنمای انتخاب سرور مناسب

اما وقتی شروع به دانلود فایل ها بدون تعیین -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 [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 ^
  1. 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
  1. دانلود فایل ها در پس زمینه با استفاده از 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’.
  1. محدودیت سرعت دانلود فایل 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 ...
  1. 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
  1. نادیده گرفتن بررسی گواهی 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’...
  1. نسخه Wget و راهنما

با گزینه های –version و –help می توانید نسخه را مشاهده کرده و در صورت نیاز کمک کنید.

$ wget --version$ wget --help

12. تلاش برای اتصال به اینترنت در پی قطع شدن آن به کمک دستور wget

اگر شما هم با مشکل قطع شدن پی در پی اینترنت مواجه هستید و قصد دارید فایلی را دانلود کنید، در این صورت برای آن که تلاش ها را برای دانلود کردن مجدد فایل ها را افزایش دهید، می توانید از دستور زیر استفاده کنید:

wget -tries=100 https://example.com/file.zip #

عدد 100 در این دستور به این معناست که در صورت قطع شدن اینترنت، حداکثر 100 بار تلاش برای ادامه دانلود انجام می شود.

13. پیدا کردن لینک های شکسته با دستور Wgetبه کمک دستور wget

دستور زیر به شما کمک می کند تا بتوانید لینک های شکسته را پیدا کنید.

wget -o wget.log -r -l 10 --spider http://example.com

سخن آخر

در این مقاله دستورات wget لینوکس را با گزینه هایی با کاربردهای رایج آموزش دادیم. در صورتی که سوالی در این زمینه دارید، می توانید با ما در قسمت نظرات به اشتراک بگذارید.

سوالات متداول:

بله پشتیبانی کردن از HTTP به صورت مداوم از ویژگی های Wget است.

مطالب مشابهی که شاید علاقمند باشید

32 تا حرف داریم ولی باهاش می تونیم حرف بزنیم، ارتباط برقرار کنیم، آثار هنری خلق کنیم، آموزش بدیم، محبت کنیم، نفرت بورزیم و... برای همین دنیای کلمات، برای من جذاب ترین دنیاست. منم تصمیم گرفتم نویسنده بشم تا با 32 تا حرف فارسی، کلی مقاله آموزشی بنویسم و هم معلم باشم و هم نویسنده. سعی می کنم ساده و روان بنویسم تا هیچوقت از یاد گرفتن خسته نشید و لذت ببرید.

دیدگاه های شما

برای دریافت این مقاله لطفا ایمیلتان را وارد کنید

می توانید مقاله را دانلود کنید یا پرینت بگیرید