Wget یک دانلود کننده شبکه رایگان است که برای دانلود فایلها از سرور استفاده میشود. به عنوان یک دانلود کننده غیرتعاملی، حتی زمانی که کاربر وارد سیستم نشده است، در پسزمینه کار میکند بدون اینکه مانعی برای فرآیند در حال انجام ایجاد کند. برای آموختن همه چیز درباره دستور Wget در لینوکس، تا انتها با ما بمانید و مثالهای عملی از استفاده از دستور wget برای دانلود فایلها را مرور کنید.
استفاده از دستور Wget به شما امکان میدهد تا یک بازیابی را شروع کنید، سپس اتصال خود را به سیستم قطع کرده و اجازه دهید Wget کار را تمام کند. همانطور که میدانید، اکثر مرورگرهای وب نیازمند حضور مداوم کاربر هستند که این میتواند یک مانع عمده در هنگام آپلود حجم زیادی از دادهها باشد.
از آنجایی که بسته wget در اکثر توزیعهای لینوکس از قبل نصب شده است، شما نیاز دارید تا یک سرور مجازی لینوکس خریداری کنید تا بتوانید از مزایای دستور Wget استفاده کنید.
همه چیزهایی که باید درباره دستور Wget در لینوکس بدانید
نرم افزار Wget توسط پروژه گنو (GNU Project) تولید شده است. Wget گنو یک ابزار خط فرمان برای دانلود فایلها از وب است. میتوان از آن برای دریافت دادهها و فایلها از سرورهای وب مختلف استفاده کرد. نام آن از ترکیب کلمات “World Wide Web” و “get” گرفته شده است.
پروتکلهای دانلود پشتیبانی شده شامل FTP، SFTP، HTTP و HTTPS هستند. Wget میتواند در هر سیستم یونیکس استفاده شود و با زبان C قابل حمل نوشته شده است. همچنین میتوان از آن در سیستمعاملهای دیگر مانند AmigaOS، مایکروسافت ویندوز، مک او اس ایکس و دیگر سیستمعاملهای رایج استفاده کرد. اگر دانلودی به دلیل مشکل شبکه ناموفق باشد، wget تا زمانی که کل فایل دانلود شود، دوباره و دوباره تلاش خواهد کرد. Wget برای مقاومت در برابر اتصالات شبکه کند یا نامنظم طراحی شده است. اگر سرور قادر به از سرگیری باشد، به آن گفته میشود که از جایی که متوقف شده بود، دانلود را از سر بگیرد.
Wget میتواند کپیهای محلی از وبسایتهای راه دور را با تکثیر کامل ساختار دایرکتوری سایت اصلی ایجاد کند. میتواند لینکها را در صفحات HTML و XHTML دنبال کند. لینکهای موجود در فایلهای HTML دانلود شده میتوانند با استفاده از دستور wget به فایلهای محلی برای مشاهده آفلاین تبدیل شوند.
به طور کلی، نحوه اصلی دستور Wget به این صورت است:
$ wget [گزینه] [URL]
برای مثال، برای دانلود یک صفحه وب، فقط کافی است دستور زیر را اجرا کنید:
wget http://example.com/sample.php
ویژگیهای دستور Wget
ویژگیهای زیر دستور Wget به شما کمک میکند تا تجربه دانلود فایل آسانی در لینوکس داشته باشید:
- دانلود همزمان فایلهای بزرگ و متعدد.
- تنظیم محدودیتهای دانلود برای پهنای باند و سرعت.
- استفاده از پروکسیها برای دانلود فایلها.
- پشتیبانی از SSL/TLS برای دانلودهای رمزگذاری شده با استفاده از کتابخانه OpenSSL یا GnuTLS.
- تلاش مجدد برای دانلودهای ناموفق.
- میرور کردن شاخهها به صورت بازگشتی.
- پشتیبانی از دانلودهای IPv4 و IPv6
چگونه Wget را در لینوکس نصب کنیم؟
در حالی که بسته wget در اکثر توزیع های لینوکس از قبل نصب شده است، می توانید بررسی کنید که آیا ابزار wget در لینوکس شما نصب شده است یا خیر. فقط دستور زیر را اجرا کنید:
$ rpm -q wget [در RHEL/CentOS/Fedora و Rocky Linux/AlmaLinux]
$ dpkg -l | grep wget [در Debian، Ubuntu و Mint]
اگر متوجه شدید که Wget نصب نشده است، از دستورات زیر برای نصب آن با استفاده از مدیر بسته لینوکس خود بر اساس توزیع در حال اجرا استفاده کنید.
$ sudo apt install wget -y [در Debian، Ubuntu و Mint]
$ sudo yum install wget -y [در RHEL/CentOS/Fedora و Rocky Linux/AlmaLinux]
$ sudo emerge -a net-misc/wget [در Gentoo Linux]
$ sudo pacman -Sy wget [در Arch Linux]
$ sudo zypper install wget [در OpenSUSE]
همانطور که می دانید، گزینه -y برای جلوگیری از درخواست تأیید قبل از نصب هر برنامه استفاده می شود.
دستورات متداول Wget در لینوکس [با مثالها]
پس از نصب موفق Wget، آماده مرور ۱۹ مثال دستور Wget هستید تا بتوانید از آن برای وظایف روزمره استفاده کنید.
۱. دانلود یک فایل با wget
یکی از سادهترین کاربردهای دستور wget، دانلود یک فایل تک و قرار دادن آن در دایرکتوری جاری است.
برای مثال، میتوانید از دستور زیر برای دریافت آخرین نسخه وردپرس استفاده کنید. در حین دانلود، میتوانید پیشرفت، اندازه، تاریخ و زمان را مشاهده کنید.
$ wget https://wordpress.org/latest.zip
همانطور که انتظار دارید، با اجرای دستور بالا، یک فایل با نام ‘latest.zip’ در دایرکتوری کاری جاری شما دانلود خواهد شد.
۲. دانلود چندین فایل با دستور Wget
بر اساس بخش ویژگیهای دستور Wget، میدانید که قادر به دانلود چندین فایل به طور همزمان است. برای این کار، یک سند متنی ایجاد کنید و آدرسهای دانلود را در آن قرار دهید. گزینه -i برای دریافت تمام فایلهای ذخیره شده در فایل متنی نمونه شما استفاده میشود. هر URL باید در یک خط جداگانه قرار گیرد.
برای مثال، برای دانلود فایلهای ایزو آرچ لینوکس، دبیان و فدورا، دستور زیر را اجرا کنید:
$ wget -i linux-distros.txt
linux-distros.txt
http://mirrors.edge.kernel.org/archlinux/iso/2018.06.01/archlinux-2018.06.01-x86_64.iso
https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-9.4.0-amd64-netinst.iso
https://download.fedoraproject.org/pub/fedora/linux/releases/28/Server/x86_64/iso/Fedora-Server-dvd-x86_64-28-1.1.iso
۳. دانلود چندین فایل با پروتکلهای HTTP و FTP با استفاده از Wget
برای دانلود چندین فایل با استفاده از پروتکلهای 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
۴. دانلود و ذخیره فایلها با نامهای متفاوت با استفاده از Wget
با کمک گزینه -O، میتوانید فایل دانلود شده را با نام متفاوتی دریافت کنید. دوباره، مثال وردپرس را میآوریم. بنابراین،
منبع دانلود شده باید به جای نام اصلی آن، با نام wordpress-install.zip ذخیره شود.
$ wget -O wordpress-install.zip https://wordpress.org/latest.zip
۵. دانلود فایلها در پسزمینه با استفاده از Wget
استفاده از دستور Wget در لینوکس به شما امکان میدهد فایلها را در پسزمینه دانلود کنید. میتوانید از تابع -b برای فایلهای واقعاً بزرگ استفاده کنید. این به شما کمک میکند تا محتوای خود را در پسزمینه دانلود کنید. اینجا نحوه آن آمده است:
$ wget -b http://www.example.com/samplepage.php
به این ترتیب، دانلود یک بار شروع شد، به پسزمینه فرستاده میشود و لاگها در فایل wget.log نوشته میشوند.
این فایل در دایرکتوری کاری شما ظاهر میشود و برای بررسی پیشرفت و آخرین وضعیت دانلود استفاده میشود.
۶. از سرگیری دانلود با Wget
این کاربرد در صورتی که اتصال شما در حین دانلود یک فایل بزرگ قطع شود، مفید است؛ زیرا میتوانید دانلود قبلی را از سر بگیرید به جای اینکه از ابتدا شروع کنید. با استفاده از گزینه -c، قادر خواهید بود یک دانلود ناتمام را از سر بگیرید.
نحوه آن به این صورت است:
$ wget -c [URL]
برای مثال، برای دانلود فایل ایزوی اوبونتو ۲۲.۰۴:
# wget -c https://releases.ubuntu.com/22.04/ubuntu-22.04-desktop-amd64.iso
۷. میرور کردن کل وبسایت با استفاده از Wget
این یک کاربرد دیگر از دستور Wget در لینوکس است. دستور زیر یک کپی محلی از وبسایت را همراه با تمام دادههای آن ایجاد میکند، که به شما امکان میدهد یک وبسایت کامل را برای مشاهده آفلاین دانلود، میرور یا کپی کنید.
$ wget --recursive --page-requisites --adjust-extension --span-hosts --convert-links --restrict-file-names=windows --domains yoursite.com --no-parent yoursite.com
برای تجزیه و تحلیل محتوای دستور بالا، به توضیح آن نگاه کنید:
wget \
–recursive \ # دانلود کل سایت
–page-requisites \ # دریافت تمام دادهها/عناصر (CSS/JS/تصاویر)
–adjust-extension \ # ذخیره فایلها با پسوند .html
–span-hosts \ # شامل دادههای مورد نیاز از سایتهای دیگر نیز میشود
–convert-links \ # بهروزرسانی لینکها برای کارکرد در نسخه استاتیک
–restrict-file-names=windows \ # اصلاح نام فایلها برای کارکرد در ویندوز
–domains yoursite.com \ # دنبال نکردن لینکهای خارج از این دامنه
–no-parent \ # دنبال نکردن لینکهای خارج از دایرکتوری ارائه شده
yoursite.com/whatever/path # آدرس دانلود
۸. محدود کردن سرعت دانلود با Wget
زمانی که نمیخواهید wget تمام پهنای باند در دسترس را مصرف کند، این گزینه مفید است. واحد اندازهگیری استاندارد برای سرعت، بایت/ثانیه است. محدودیت سرعت دانلود با استفاده از گزینه –limit-rate=100k به ۱۰۰k تنظیم شده است و لاگها در wget.log همانطور که در زیر نشان داده شده است، ایجاد میشوند.
$ wget -c --limit-rate=100k -b wget.log https://releases.ubuntu.com/22.04/ubuntu-22.04-desktop-amd64.iso
۹. دانلود از طریق FTP با Wget
مثال زیر نیز برای FTP قابل استفاده است. برای دانلود از طریق FTP، دستور زیر را اجرا کنید و فقط نام کاربری و گذرواژه را مشخص کنید.
$ wget --ftp-user=FTP_USERNAME --ftp-password=FTP_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
۱۰. استفاده از Wget برای رد کردن بررسی گواهینامه SSL
دستور Wget در لینوکس همچنین برای نادیده گرفتن بررسیهای گواهینامه SSL استفاده میشود. اگر میخواهید یک فایل را از طریق HTTPS از یک میزبان که گواهینامه SSL نامعتبری دارد دانلود کنید، از گزینه –no-check-certificate استفاده کنید:
$ wget --no-check-certificate https://domain-with-invalid-ss.com
۱۱. نمایش نسخه و راهنما با استفاده از Wget
برای مشاهده تمام گزینههای ممکن دستور خطی که با گزینههای خط فرمان Wget در دسترس است، میتوانید از –version و –help استفاده کنید.
$ wget --version
$ wget --help
۱۲. دانلود به خروجی استاندارد با Wget
میتوانید از Wget برای دانلود و خروجی آخرین نسخه فایل مورد نظر خود استفاده کنید. برای مثال، میتوانید دستور زیر را برای دانلود خروجی استاندارد وردپرس اجرا کنید:
$ wget -q -O - "http://wordpress.org/latest.tar.gz" | tar -xzf - -C /var/www
۱۳. استفاده از Wget برای تغییر عامل کاربر Wget
گاهی اوقات عامل کاربر Wget ممکن است در هنگام دانلود یک فایل توسط سرور راه دور مسدود شود. در این شرایط از گزینه -U برای شبیهسازی یک مرورگر دیگر استفاده کنید.
برای مثال، برای شبیهسازی فایرفاکس ۶۰ در درخواست صفحه از wget-forbidden.com، دستور زیر را اجرا کنید:
$ wget --user-agent="Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0" http://wget-forbidden.com/
۱۴. دانلود یک فایل در یک دایرکتوری خاص با Wget
Wget به طور پیشفرض فایلهای دانلود شده را در دایرکتوری کاری جاری ذخیره میکند. میتوانید از گزینه -P برای ذخیره فایل در یک مکان خاص استفاده کنید.
برای مثال، برای دستور دادن به wget که فایل ایزوی CentOS 7 را در دایرکتوری /mnt/iso ذخیره کند، تایپ کنید:
$ wget -P /mnt/iso http://mirrors.mit.edu/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1804.iso
۱۵. تنظیم تعداد تلاشهای تکرار با Wget
ممکن است دانلود شما به دلیل مشکلات اتصال اینترنت قطع شود. بنابراین، از تابع -tries برای افزایش تعداد تلاشهای تکرار برای رفع این مشکل استفاده کنید:
wget -tries=100 https://wordpress.org/latest.zip
۱۶. دانلود فایلهای شمارهگذاری شده با Wget
میتوانید با اجرای دستور زیر، به سرعت تمام فایلها یا تصاویر شمارهگذاری شده در یک لیست را دانلود کنید:
wget http://example.com/images/{1..50}.jpg
۱۷. استخراج چندین URL با Wget
برای افزودن تمام URLها در یک فایل urls.txt، تایپ کنید:
۱ https://example.com/1
۲ https://example.com/2
۳ https://example.com/3
$ wget -i urls.txt
۱۸. رونویسی لاگ با استفاده از Wget
wget http://www.example.com/filename.txt -o /path/filename.txt
۱۹. یافتن لینکهای خراب با استفاده از Wget
برنامه wget میتواند برای یافتن تمام URLهای خراب که خطاهای ۴۰۴ را در یک وبسایت خاص نشان میدهند، استفاده شود. نحوه آن به این صورت است:
wget -o wget-log -r -l 5 --spider http://example.com
دستور بالا به این معنی است:
-o: یک فایل را ایجاد میکند که خروجی را برای استفاده بعدی جمع میکند.
-l: سطح بازگشت را مشخص میکند.
-r: دانلود بازگشتی میشود.
–spider: wget را در حالت spider قرار میدهد.
اکنون که به فایل wget-log نگاه کردهاید، میتوانید لیست لینکهای خراب را پیدا کنید. ترتیب انجام این کار به این صورت است:
grep -B 2 '404' wget-log | grep "http" | cut -d " " -f 4 | sort -u
نتیجهگیری
در این مقاله، شما همه چیز را درباره دستور Wget در لینوکس آموختید. دستورات Wget لینوکس با گزینهها برای عملیات اداری روزمره در این مقاله پوشش داده شده است. ۱۵ مثال توضیح داده شده است تا به شما آموزش دهد که چگونه میتوانید از دستور Wget در لینوکس برای میرور کردن وبسایتها، از سرگیری دانلودهای قطع شده، دانلود چندین فایل به طور همزمان و ترکیب ویژگیهای Wget برای تطبیق با نیازهای خود با wget استفاده کنید.
شما همچنین میتوانید از تمام توابع این راهنما در اسکریپتها و کارهای زمانبندی شده (cron jobs) فراخوانی کنید. اگر با هر گونه مشکلی مواجه شدید، لطفاً از تماس با ما دریغ نکنید. تیم پشتیبانی فنی ما تلاش خود را برای حل مشکلات شما به کار خواهند گرفت.