- نصب و مقدمات
- دانلود پایهای و مدیریت خروجی
- ادامه دانلود و فایلهای بزرگ
- دانلود بازگشتی و mirror
- کار با REST APIها با wget
- اسکریپتینگ، retry و backoff
- پراکسی، TLS و گواهینامهها
- نکات عملکردی برای سرورهای ابری و لوکیشنها
- مقایسه wget و curl و ابزارهای دیگر
- امنیت و بهترین شیوهها
- Заключение
- اطلاعات پلنها و پشتیبانی
- Часто задаваемые вопросы
نصب و مقدمات
در بسیاری از توزیعهای لینوکس، wget از پیش نصب شده است. در صورت نیاز به نصب میتوانید از دستورهای زیر استفاده کنید. برای بررسی نسخه نیز از دستور wget --version بهره ببرید.
apt update
apt install -y wget
yum install -y wget
brew install wget
wget --version
دانلود پایهای و مدیریت خروجی
برای دانلود فایل ساده از آدرس مشخص از wget استفاده کنید. میتوانید نام فایل ذخیره شده را تغییر دهید یا خروجی verbose را کاهش دهید.
wget https://example.com/file.tar.gz
wget -O custom-name.tar.gz https://example.com/file.tar.gz
wget -q https://example.com/file.tar.gz
wget -nv https://example.com/file.tar.gz
wget -o /var/log/wget-download.log https://example.com/file.tar.gz
ادامه دانلود و فایلهای بزرگ
برای دانلود فایلهای حجیم یا در صورت قطع و وصل شبکه از گزینه -c برای resume استفاده کنید. همچنین کنترل سرعت و تعداد تلاشها میتواند برای سرورهای اشتراکی مفید باشد.
wget -c https://example.com/large.iso
wget --limit-rate=1m https://example.com/large.iso
wget --tries=10 --timeout=30 --retry-connrefused https://example.com/large.iso
دانلود بازگشتی و mirror
برای دانلود بازگشتی یک مسیر یا ساخت mirror از سایت از گزینههای بازگشتی استفاده کنید. -np جلوگیری از صعود به مسیر والد را انجام میدهد و -к لینکها را برای دسترسی محلی تبدیل میکند.
wget -r -np -k https://example.com/some/path/
wget --mirror -p --convert-links -P ./localdir https://example.com/
کار با REST APIها با wget
اگرچه завиток برای کار با APIها انعطافپذیری بیشتری دارد، wget برای تعاملات ساده مانند GET و POST و ارسال هدرها کاربردی است. در ادامه نمونههای متداول آورده شده است.
ارسال هدرها (Headers)
برای اضافه کردن هدرهای دلخواه از گزینه --header Использовать.
wget --header="X-API-Version: 2" --header="Accept: application/json" -O response.json "https://api.example.com/resource?id=10"نمونههای رایج احراز هویت با wget به شکل زیر هستند.
wget --http-user=USERNAME --http-password='PASSWORD' -O resp.json "https://api.example.com/secure"
wget --header="Authorization: Bearer YOUR_TOKEN" -O resp.json "https://api.example.com/protected"
wget --save-cookies cookies.txt --keep-session-cookies --post-data='username=me&password=secret' https://example.com/login
wget --load-cookies cookies.txt -O dashboard.html https://example.com/dashboardارسال JSON و POST
برای ارسال payload JSON میتوانید از --post-data Или --post-file استفاده کنید. برای payloadهای بزرگ توصیه میشود داده را در فایل قرار دهید.
wget --header="Content-Type: application/json" --post-data='{"name":"test","value":42}' -O resp.json "https://api.example.com/items"
echo '{"name":"big","value":123}' > payload.json
wget --header="Content-Type: application/json" --post-file=payload.json -O resp.json "https://api.example.com/items"محدودیتها و جایگزینها
به خاطر داشته باشید که wget برای متدهای HTTP بجز GET و POST محدودیت دارد. برای متدهای ПОМЕЩАТЬ, PATCH, УДАЛИТЬ یا فرمهای multipart بهتر است از завиток Использовать.
برای دانلود موازی یا تقسیم فایل از ابزارهایی مانند aria2 بهره ببرید.
اسکریپتینگ، retry و backoff
برای تعامل پایدار با APIها و مقابله با محدودیت نرخ، الگوریتم retry با exponential backoff مناسب است. نمونه اسکریپت bash ساده زیر قابل استفاده است.
#!/bin/bash
URL="https://api.example.com/data"
OUT="resp.json"
TOKEN="YOUR_TOKEN"
attempt=0
max=5
sleep_time=1
while [ $attempt -lt $max ]; do
wget --header="Authorization: Bearer $TOKEN" -O "$OUT" "$URL"
code=$?
if [ $code -eq 0 ]; then
echo "Success"
exit 0
fi
attempt=$((attempt+1))
echo "Attempt $attempt failed, sleeping $sleep_time"
sleep $sleep_time
sleep_time=$((sleep_time * 2))
done
exit 1برای زمانبندی منظم دانلودها از cron یا systemd timers استفاده کنید تا روی سرورهای VPS یا ابری در لوکیشنهای مختلف وظایف به صورت خودکار اجرا شوند.
پراکسی، TLS و گواهینامهها
اگر پشت پراکسی قرار دارید، wget از متغیرهای محیطی پشتیبانی میکند. برای کنترل تایید گواهی میتوانید مسیر فایل CA را مشخص کنید.
export http_proxy="http://proxy.example:3128"
export https_proxy="http://proxy.example:3128"گزینههای مربوط به گواهی:
--ca-certificate=/path/to/ca.pem--no-check-certificate(استفاده نکنید مگر در محیطهای تست)
نکات عملکردی برای سرورهای ابری و لوکیشنها
انتخاب لوکیشن مناسب میتواند RTT و پینگ را کاهش دهد. برای کاربردهای حساس مانند ترید، گیمینگ، رندرینگ یا هوش مصنوعی با سرورهای GPU، نزدیک بودن به سرویس مقصد اهمیت دارد — شرکت مورد نظر امکان ارائه خدمات در ۸۵+ لوکیشن Да, так и есть.
- انتخاب لوکیشن: نزدیکترین دیتاسنتر به مقصد را انتخاب کنید تا latency کاهش یابد.
- دانلود مدلهای AI و رندر: От
-cبرای resume و--limit-rateهنگام پردازش سنگین استفاده کنید. - امنیت شبکه: از سرورهای با حفاظت DDoS برای میزبانی فایلهای پرترافیک بهره ببرید.
- CDN و BGP: ترکیب wget برای تست نقطهبهنقطه و CDN برای توزیع نهایی توصیه میشود.
مثال عملی دانلود مدل بزرگ روی سرور GPU:
wget -c https://models.example.com/large-model.tar.gz -O /mnt/nvme/models/large-model.tar.gz --limit-rate=5m --tries=20
مقایسه wget و curl و ابزارهای دیگر
خلاصهای از مزایا و کاربرد هر ابزار:
- wget: مناسب دانلود فایلها، mirror کردن سایت، دانلود بازگشتی؛ ساده و مناسب اسکریپتها.
- curl: انعطافپذیری بالا برای REST APIها، پشتیبانی کامل از متدهای HTTP و multipart.
- aria2: دانلود موازی و چند کانکشن برای شتابدهی دانلود.
- rsync / scp: همگامسازی امن سرور به سرور (SSH/SFTP).
امنیت و بهترین شیوهها
چند توصیه کلیدی برای استفاده امن از wget و مدیریت اسرار:
- نگهداری توکنها: فایلهای حاوی توکن را محدود کنید و از secret manager استفاده کنید.
- TLS: تایید گواهی را فعال نگه دارید و از
--no-check-certificateتنها در تست استفاده کنید. - محدود کردن نرخ: برای جلوگیری از بلاک شدن از headerهای Rate-Limit و الگوریتم backoff استفاده کنید.
- حفاظت شبکه: از سرورهای ضد DDoS و CDN برای میزبانی فایلهای پراستفاده استفاده نمایید.
Заключение
در پاسخ به پرسش اصلی، wget ابزاری ساده و پایدار برای دانلود فایلها، mirror کردن و تعاملات پایه با REST APIها است. برای نیازهای پیچیدهتر HTTP و تعاملات متنوعتر، завиток گزینه بهتری است. در محیطهای ابری، انتخاب لوکیشن مناسب، استفاده از سرورهای دارای حفاظت و کانفیگ شبکه مناسب میتواند تجربه کاری را بهطور چشمگیری بهبود بخشد.
اطلاعات پلنها و پشتیبانی
پلنها در بیش از ۸۵ لوکیشن جهانی در دسترس قرار دارند و برای کاربریهای خاص مانند سرورهای GPU، سرورهای کملاتنسی برای ترید، یا سرورهای مناسب گیم و میزبانی پرترافیک، گزینههای متفاوتی ارائه میشود.
برای مشاهده جزئیات پلنها یا دریافت اطلاعات تکمیلی میتوانید به پنل وب مراجعه کرده یا از طریق پشتیبانی اطلاعات بیشتری دریافت کنید.









