URL  کلاینت یا cURL ، یک کتابخانه و ابزار خط فرمان برای انتقال داده ها بین سیستم ها است. از بسیاری از پروتکل ها پشتیبانی می کند و به طور پیش فرض روی بسیاری از سیستم عامل های یونیکس مانند نصب میباشد. به دلیل در دسترس بودن به صورت عمومی ، برای زمانی که شما نیاز به دانلود یک فایل در سیستم محلی خود دارید ، به خصوص در محیط سرور مجازی ، انتخاب خوبی است.

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

دانلود فایل ها از طریق اینترنت می تواند خطرناک باشد ، بنابراین مطمئن شوید که از منابع معتبر دانلود می کنید.

مرحله 1 – گرفتن فایل های از راه دور

خارج از باکس ، بدون هیچ آرگومان خط فرمان ، دستور curl یک فایل را واکشی می کند و محتوای آن را به خروجی استاندارد نشان می دهد.

با دانلود فایل robots.txt بیایید آن را امتحان کنیم:

·                 $ curl https://www.digitalocean.com/robots.txt

محتوای فایل را در صفحه نمایش خواهید دید:

Output

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

 

به curl یک URL بدهید و منبع را واکشی کرده و محتوای آن را نمایش می دهد.

ذخیره فایل های از راه دور

واکشی یک فایل و نمایش محتوای آن کاملاً خوب است ، اما اگر بخواهید فایل را در سیستم خود ذخیره کنید چه می کنید؟

برای ذخیره فایل از راه دور در سیستم محلی خود ، با همان نام فایل سرور مجازی که از آن دانلود می کنید ، آرگومان –remote-name را اضافه کنید یا از گزینه -O استفاده کنید:

  • $ curl -O https://www.digitalocean.com/robots.txt

فایل شما دانلود می شود:

[secondary_label Output

% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

Dload  Upload   Total   Spent    Left  Speed

100   286    0   286    0     0   5296      0 –:–:– –:–:– –:–:–  5296

 

curl به جای نمایش محتویات فایل ، پیشرفت بر پایه متن را نشان می دهد و فایل را به همان نام فایل راه دور ذخیره می کند. با دستور cat می توانید موارد را بررسی کنید:

  • $ cattxt

این فایل شامل همان مطالبی است که قبلاً مشاهده کرده اید:

[secondary_label Output

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

 

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

مرحله 2 – ذخیره فایل های از راه دور با نام فایل خاص

ممکن است قبلاً یک فایل محلی با همان نام فایل در سرور مجازی راه دور داشته باشید.

برای جلوگیری از رونویسی مجدد فایل محلی خود به همین نام ، از آرگومان -o یا –output و به دنبال آن نام فایل محلی که می خواهید محتوا را در آن ذخیره کنید استفاده کنید.

برای دانلود فایل از راه دور robots.txt در فایل do-bots.txt که به صورت محلی نامگذاری شده است ، دستور زیر را اجرا کنید:

  • $ curl -o do-bots.txt https://www.digitalocean.com/robots.txt

بار دیگر نوار پیشرفت را مشاهده خواهید کرد:

Output

% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

Dload  Upload   Total   Spent    Left  Speed

100   286    0   286    0     0   6975      0 –:–:– –:–:– –:–:–  7150

 

اکنون برای نمایش محتویات do-bots.txt از دستور cat استفاده کنید تا فایل مورد نظر را دانلود کنید:

  • $ cat do-bots.txt

خروجی یکسان میباشد:

Output

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

 

به طور پیش فرض ، curl تغییر مسیرها را دنبال نمی کند ، بنابراین هنگام انتقال فایل ها ، ممکن است آنچه انتظار دارید را دریافت نکنید. بیایید ببینیم چگونه این مشکل را برطرف کنیم.

مرحله 3 – دنبال کردن تغییر مسیرها

تاکنون همه مثالها شامل URL های کاملاً واجد شرایط هستند که شامل پروتکل https: // هستند. اگر بخواهید فایل robots.txt را گرفته و فقط www.example.com را مشخص کنید ، هیچ خروجی نمی بینید ، زیرا example درخواست های http: // را به https: // هدایت می کند:

شما می توانید این را با استفاده از پرچم -I تأیید کنید ، که عناوین درخواست را به جای محتویات فایل نمایش می دهد:

  • $ curl -I www.digitalocean.com

خروجی نشان می دهد که URL تغییر مسیر داده است. خط اول خروجی به شما می گوید که جابه جا شده است و خط location مکان آن را به شما می گوید:

[secondary_label Output

HTTP/1.1 301 Moved Permanently

Date: Wed, 26 Aug 2020 19:01:33 GMT

Connection: keep-alive

Cache-Control: max-age=3600

Expires: Wed, 26 Aug 2020 20:01:33 GMT

Location: https://www.digitalocean.com/robots.txt

cf-request-id: 04cdbea7a40000c5cc8d34d200000001

Server: cloudflare

CF-RAY: 5c8fcd52aea0c5cc-EWR

 

می توانید از curl برای درخواستی دیگر به صورت دستی استفاده کنید ، یا می توانید از آرگومان –location یا -L استفاده کنید که به curl می گوید هر زمان که با یک تغییر مسیر مواجه شد درخواست را به مکان جدید دوباره انجام دهد. آن را امتحان کنید:

  • $ curl -L www.digitalocean.com/robots.txt

این بار خروجی را مشاهده می کنید ، زیرا curl به دنبال تغییر مسیر می رود:

Output

User-agent: *

Sitemap: https://www.digitalocean.com/sitemap.xml

 

برای دانلود فایل در سیستم محلی خود می توانید آرگومان -L را با برخی از آرگومان های فوق الذکر ترکیب کنید:

  • $ curl -L -o do-bots.txt www.digitalocean.com/robots.txt

 

 

هشدار: بسیاری از منابع آنلاین از شما می خواهند که برای دانلود اسکریپت ها و اجرای آنها از curl استفاده کنید. قبل از اجرای اسکریپت های دانلود شده ، بهتر است محتوای آنها را بررسی کنید. برای بررسی کد و اطمینان از چیزی که می خواهید اجرا کنید ، از دستور less استفاده کنید.

 

نتیجه

curl به شما امکان می دهد که فایل ها را سربع از یک سیستم از راه دور دانلود کنید.  Curl  از پروتکل های مختلف پشتیبانی می کند و همچنین می تواند درخواست های وب پیچیده تری از جمله تعامل با API های از راه دور برای ارسال و دریافت داده ها را ایجاد کند.

با مشاهده صفحه دستی  man در مورد curl می توانید اطلاعات بیشتری کسب کنید.

نحوه استفاده از Traefik به عنوان پروکسی معکوس برای کانتینرهای Docker در اوبونتو 20.04

نحوه دانلود فایل ها با cURL

نحوه نصب و ایمن سازی Redis در Centos7

چگونه می توان محیط JupyterLab را در اوبونتو 18.04 تنظیم کرد

نحوه نصب Webmin در Ubuntu 20.04

نحوه بازنویسی آدرس های اینترنتی با mod_rewrite برای Apache در اوبونتو 20.04

نحوه مدیریت چندین سرور با دستورات Ad Hoc Ansible

چگونه می توان REST API را با Prisma و PostgreSQL ساخت

نحوه میزبانی وب سایت با استفاده از Cloudflare و Nginx در اوبونتو 18.04

نحوه استفاده از Traefik به عنوان پروکسی معکوس برای کانتینرهای Docker در Ubuntu 18.04

 

خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکاخرید سرور مجازی ارزان هلندvpsخرید vps هلندخرید سرور مجازی آمریکاخرید vps فرانسهتست vpsسرور مجازی تستسرور مجازی ویندوزارزانترین vpsخرید وی پی اسvps ارزان –