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
نحوه نصب و ايمن سازي 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 ارزان –