آموزش دانلود فایل با cURL در لینوکس
بهروزرسانی: 27 می 2025 پیش از هر کاری، مطمئن شوید که با اتصال SSH به سرور خود متصل شدهاید.
cURL (مخفف Client URL) یک ابزار خط فرمان و کتابخانه قدرتمند برای انتقال داده بین سیستمهاست. این ابزار از پروتکلهای متعددی مانند HTTP، HTTPS، FTP و … پشتیبانی میکند و معمولاً بهصورت پیشفرض روی اکثر سیستمعاملهای شبهیونیکس نصب است. بهدلیل در دسترس بودن و انعطافپذیری بالا، cURL یکی از بهترین گزینهها برای دانلود فایلها در محیطهای سروری محسوب میشود.
در این آموزش یاد میگیرید چگونه با استفاده از دستور
curl
⚠️ هشدار امنیتی: دانلود فایل از اینترنت همیشه میتواند خطرناک باشد. فقط از منابع معتبر فایل دریافت کنید و قبل از اجرای هر اسکریپت، حتماً محتوای آن را بررسی کنید.
مرحله ۱ — دریافت فایل از سرور (Fetch)
اگر دستور
curl
مثال: دریافت فایل
robots.txt
curl https://www.digitalocean.com/robots.txtخروجی:
User-agent: *
Disallow:
sitemap: https://www.digitalocean.com/sitemap.xml
sitemap: https://www.digitalocean.com/community/main_sitemap.xml.gz
sitemap: https://www.digitalocean.com/community/questions_sitemap.xml.gz
sitemap: https://www.digitalocean.com/community/users_sitemap.xml.gzذخیره فایل روی سیستم (Saving Remote Files)
برای ذخیره فایل دانلودشده با همان نام اصلی روی سیستم، از گزینه
-O--remote-name
curl -O https://www.digitalocean.com/robots.txtدر این حالت، بهجای نمایش محتوا، یک نوار پیشرفت نمایش داده میشود و فایل ذخیره میگردد.
برای مشاهده فایل:
cat robots.txtمرحله ۲ — ذخیره فایل با نام دلخواه
اگر نمیخواهید فایل با نام اصلی ذخیره شود یا از overwrite شدن فایلهای قبلی جلوگیری کنید، از گزینه
-o
curl -o do-bots.txt https://www.digitalocean.com/robots.txtسپس بررسی فایل:
cat do-bots.txtمرحله ۳ — دنبال کردن ریدایرکتها (Redirect)
بهصورت پیشفرض، cURL ریدایرکتها را دنبال نمیکند. برای مثال اگر آدرس از HTTP به HTTPS منتقل شود، باید از گزینه
-L
بررسی هدرها:
curl -I www.digitalocean.com/robots.txtبرای دنبال کردن ریدایرکت:
curl -L www.digitalocean.com/robots.txtذخیره فایل همراه با ریدایرکت:
curl -L -o do-bots.txt www.digitalocean.com/robots.txtمرحله ۴ — دانلود فایل با احراز هویت
احراز هویت ساده (نام کاربری و رمز عبور)
curl -u username:password -O https://example.com/securefile.zipاحراز هویت توکنی (Bearer Token)
curl -H "Authorization: Bearer YOUR_TOKEN" -O https://api.example.com/protected/data.jsonتوصیه امنیتی: اطلاعات حساس را در اسکریپتها هاردکد نکنید. از متغیرهای محیطی استفاده کنید.
مرحله ۵ — مدیریت قطع ارتباط، زمان انتظار و ادامه دانلود
ادامه دانلود نیمهکاره
curl -C - -O https://example.com/largefile.isoتعیین حداکثر زمان دانلود
curl --max-time 30 -O https://example.com/file.txtتلاش مجدد در صورت خطا
curl --retry 3 -O https://example.com/file.txtمرحله ۶ — خودکارسازی دانلود با اسکریپت Shell
نمونه اسکریپت ساده:
#!/bin/bash
URL="https://example.com/file.zip"
DEST="/home/user/downloads/file.zip"
curl -L -o "$DEST" "$URL"سپس:
chmod +x script.shو میتوانید آن را با
cron
مرحله ۷ — رفع مشکلات رایج دانلود
بررسی هدرها
curl -I https://example.com/file.zipتنظیم User-Agent
curl -A "Mozilla/5.0" -O https://example.com/file.zipبررسی خطاهای SSL
curl -v -O https://example.com/file.zipاستفاده از HTTP بهجای HTTPS (در صورت امکان)
curl -O http://example.com/file.zipمرحله ۸ — استفاده از wget بهعنوان جایگزین
دانلود ساده
wget https://example.com/file.zipقابلیتهای مهم wget
-
تلاش مجدد خودکار:
wget -t 3 https://example.com/file.zipدانلود در پسزمینه:
wget -b https://example.com/file.zipمحدود کردن سرعت:
wget --limit-rate=200k https://example.com/file.zipمیرور کردن وبسایت:
wget --mirror --convert-links --adjust-extension --page-requisites --no-parent https://example.comچه زمانی curl و چه زمانی wget؟
-
curl: تعامل با APIها، درخواستهای پیچیده HTTP، اسکریپتنویسی حرفهای
-
wget: دانلودهای ساده، دانلود بازگشتی، میرور سایتها
سوالات متداول (FAQ)
تفاوت -O و -o در curl چیست؟
-O
-o
ادامه دانلود قطعشده چگونه است؟
curl -C - -O https://example.com/largefile.isoآیا cURL روی ویندوز وجود دارد؟
بله، از ویندوز 10 به بعد بهصورت پیشفرض وجود دارد و همچنین از طریق Git Bash، Cygwin یا Chocolatey قابل نصب است.
دانلود چند فایل همزمان
curl -O https://example.com/file1.zip -O https://example.com/file2.zipیا:
curl -O https://example.com/file{1..5}.zipجمعبندی
cURL ابزاری سریع، سبک و بسیار قدرتمند برای دانلود فایل و ارتباط شبکهای است. از دانلود ساده فایلها گرفته تا تعامل پیچیده با APIها، مدیریت ریدایرکت، احراز هویت و اسکریپتنویسی، همه را در اختیار شما قرار میدهد.
برای انتقال امن فایلها بین سیستم شما و سرور، میتوانید از راهنمای استفاده از SFTP نیز استفاده کنید.
برای مطالعه بیشتر، راهنمای کامل را ببینید:
man curl
