وبلاگ نت‌آرامآموزش، تجربه و راهکارهای زیرساخت

دستور wget؛ دانلود HTTPS، ادامهٔ انتقال و بررسی فایل

wget ابزار دریافت فایل است و روش استفاده باید با TLS معتبر و بررسی خروجی همراه باشد. URL های نسخهٔ قدیمی GNU در این صفحه، پیشنهاد نصب آن نسخه‌ها نیستند.

انتشار:
آخرین ویرایش:
توسط مصطفی جانقربان
۱۰ دقیقه زمان مطالعه
۰ دیدگاه
محتوای تخصصی، ساده و کاربردی
هماهنگ با هویت حرفه‌ای نت‌آرام
بازگشت به لیست مقالات
تصویر شاخص مقاله دستور wget؛ دانلود HTTPS، ادامهٔ انتقال و بررسی فایل در وبلاگ نت‌آرام
محتوای آموزشی وبلاگ نت‌آرام
فرض کنید می‌خواهید یک فایل را روی سرور دریافت کنید، اما آنجا مرورگر ندارید. wget این کار را از پنجرهٔ فرمان انجام می‌دهد: نشانی فایل را می‌گیرد، آن را دانلود می‌کند و میزان پیشرفت را نشان می‌دهد. اگر روی سرور کار می‌کنید، فرمان‌ها را در اتصال SSH همان سرور اجرا کنید؛ فایل روی سرور ذخیره می‌شود، نه روی رایانه‌ای که با آن وصل شده‌اید.
در ادامه ده کاربرد اصلی را می‌بینید؛ از دانلود ساده تا نام‌گذاری، ادامهٔ فایل نیمه‌کاره و محدود کردن سرعت. نشانی فایل و مسیر ذخیره را با اطلاعات خودتان جایگزین کنید. خروجی‌های تاریخی برای شناخت شکل پیام‌ها حفظ شده‌اند و پیشنهاد نصب نسخه‌های قدیمی نیستند. برای تمرین، فایل عمومی کوچک تحت اختیار خودتان انتخاب کنید تا خطا و نتیجه را راحت‌تر ببینید.
با دستور زیر ابتدا چک کنید که آیا دستور wget روی لینوکس شما نصب شده است یا خیر ؟
فرمان قابل اجرا و خروجی آن در دو کادر جدا نمایش داده می‌شوند. فقط فرمان را در ترمینال وارد کنید؛ سطرهایی مانند Resolving، Connecting یا درصد پیشرفت، پاسخ ابزارند و قرار نیست دوباره اجرا شوند.
کد / دستورrpm -qa wget
نمونهٔ خروجی ثبت‌شده در نسخهٔ قدیمی آموزش؛ عدد نسخه و تاریخ، وضعیت امروز رایانهٔ شما نیست:
کد / دستورwget-1.12-1.4.el6.i686
اگر فرمان پیدا نمی‌شود، wget را از مخزن معتبر همان سیستم‌عامل نصب کنید. روش نصب در توزیع‌های مختلف فرق دارد؛ yum در نمونهٔ تاریخی زیر برای خانوادهٔ مربوط به آن است و فرمان عمومی همهٔ لینوکس‌ها نیست. نسخهٔ قدیمیِ نوشته‌شده در خروجی یا فایل آرشیو را به‌عنوان نسخهٔ پیشنهادی امروز نصب نکنید. بعد از نصب، wget --version باید نام ابزار و نسخهٔ نصب‌شدهٔ شما را نشان دهد.
کد / دستورyum -y install wget

1. دانلود یک فایل

این دستور یک فایل را با یک لینک مشخص در دایرکتوری جاری دانلود می کند و میزان سرعت، پیشرفت دانلود، تاریخ و زمان را نمایش می دهد.
کد / دستورwget http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz
نمونهٔ خروجی ثبت‌شده در نسخهٔ قدیمی آموزش؛ عدد نسخه و تاریخ، وضعیت امروز رایانهٔ شما نیست:
کد / دستور–2012-10-02 11:28:30– http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz Resolving ftp.gnu.org… 208.118.235.20, 2001:4830:134:3::b Connecting to ftp.gnu.org|208.118.235.20|:80… connected. HTTP request sent, awaiting response… 200 OK Length: 446966 (436K) [application/x-gzip] Saving to: wget-1.5.3.tar.gz 100%[<==================================] 446,966 60.0K/s in 7.4s 2012-10-02 11:28:38 (58.9 KB/s) – wget-1.5.3.tar.gz

2. دانلود یک فایل و ذخیره آن با نام مشخص

از -O برای ذخیره فایل دانلودی با نام مشخص استفاده کنید برای مثال من در این دستور فایل را با نام wget.zip ذخیره می کنم.
نمونهٔ خروجی ثبت‌شده در نسخهٔ قدیمی آموزش؛ عدد نسخه و تاریخ، وضعیت امروز رایانهٔ شما نیست:
کد / دستور# wget -O wget.zip http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz –2012-10-02 11:55:54– http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz Resolving ftp.gnu.org… 208.118.235.20, 2001:4830:134:3::b Connecting to ftp.gnu.org|208.118.235.20|:80… connected. HTTP request sent, awaiting response… 200 OK Length: 446966 (436K) [application/x-gzip] Saving to: wget.zip 100%[=============================>] 446,966 60.0K/s in 7.5s 2012-10-02 11:56:02 (58.5 KB/s) – wget.zip

3. دانلود چند فایل از پروتکل های http و ftp

در اینجا ما مشاهده می کنیم که چگونه چند فایل از پروتکل های wget و ftp به وسیله دستور wget دانلود می شود.
نمونهٔ خروجی ثبت‌شده در نسخهٔ قدیمی آموزش؛ عدد نسخه و تاریخ، وضعیت امروز رایانهٔ شما نیست:
کد / دستور# wget http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz ftp://ftp.gnu.org/gnu/wget/wget-1.10.1.tar.gz.sig –2012-10-02 12:11:16– http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz Resolving ftp.gnu.org… 208.118.235.20, 2001:4830:134:3::b Connecting to ftp.gnu.org|208.118.235.20|:80… connected. HTTP request sent, awaiting response… 200 OK Length: 446966 (436K) [application/x-gzip] Saving to: wget-1.5.3.tar.gz 100%[==========================================>] 446,966 56.7K/s in 7.6s 2012-10-02 12:11:29 (57.1 KB/s) – wget-1.5.3.tar.gz –2012-10-02 12:11:29– ftp://ftp.gnu.org/gnu/wget/wget-1.10.1.tar.gz.sig => wget-1.10.1.tar.gz.sig Logging in as anonymous … Logged in! ==> SYST … done. ==> PWD … done. ==> TYPE I … done. ==> CWD (1) /gnu/wget … done. ==> SIZE wget-1.10.1.tar.gz.sig … 65 ==> PASV … done. ==> RETR wget-1.10.1.tar.gz.sig … done. Length: 65 (unauthoritative) 100%[===================================================================================>] 65 –.-K/s in 0s 2012-10-02 12:11:33 (2.66 MB/s) – wget-1.10.1.tar.gz.sig FINISHED –2012-10-02 12:11:33– Downloaded: 2 files, 437K in 7.6s (57.1 KB/s)

4. دانلود از لینک های داخل یک فایل

شما می توانید تمام لینک ها را داخل یک فایل text قرار دهید و سپس با استفاده از -i تمام لینک های موجود در فایل متنی را دانلود نمایید.
کد / دستورwget -i /wget/tmp.txt
نمونهٔ خروجی ثبت‌شده در نسخهٔ قدیمی آموزش؛ عدد نسخه و تاریخ، وضعیت امروز رایانهٔ شما نیست:
کد / دستور–2012-10-02 12:34:12– http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz ftp://ftp.gnu.org/gnu/wget/wget-1.10.1.tar.gz.sig Resolving ftp.gnu.org… 208.118.235.20, 2001:4830:134:3::b Connecting to ftp.gnu.org|208.118.235.20|:80… connected. HTTP request sent, awaiting response… 200 OK Length: 446966 (436K) [application/x-gzip] Saving to: wget-1.10.1.tar.gz.sig 100%[=====================================>] 446,966 35.0K/s in 10s 2012-10-02 12:34:23 (42.7 KB/s) – wget-1.10.1.tar.gz.sig –2012-10-02 12:34:23– http://mirrors.hns.net.in/centos/6.3/isos/x86_64/CentOS-6.3-x86_64-LiveDVD.iso Resolving mirrors.hns.net.in… 111.91.91.34, 2401:4800::111:91:91:34 Connecting to mirrors.hns.net.in|111.91.91.34|:80… connected. HTTP request sent, awaiting response… 200 OK Length: 1761607680 (1.6G) [application/octet-stream] Saving to: CentOS-6.3-x86_64-LiveDVD.iso 45%[================== ] 1,262,000 51.6K/s eta 8h 17m

5. ادامه دانلود تمام نشده

گاهی اوقات در دانلود فایل های حجیم و بزرگ مشکلی پیش می آید و شما می توانید از -c برای ادامه دانلود استفاده نمایید، توجه کنید که در صورت عدم استفاده از سوئیچ -c، سیستم اقدام به دانلود جدید می کند و به اخر فایلی که ذخیره می شود .1 اضافه می کند. بنابراین تمرین خوبی است برای ادامه دانلود فایل ها از wget -c استفاده کنید.
کد / دستورwget -c http://mirrors.hns.net.in/centos/6.3/isos/x86_64/CentOS-6.3-x86_64-LiveDVD.iso
نمونهٔ خروجی ثبت‌شده در نسخهٔ قدیمی آموزش؛ عدد نسخه و تاریخ، وضعیت امروز رایانهٔ شما نیست:
کد / دستور–2012-10-02 12:46:57– http://mirrors.hns.net.in/centos/6.3/isos/x86_64/CentOS-6.3-x86_64-LiveDVD.iso Resolving mirrors.hns.net.in… 111.91.91.34, 2401:4800::111:91:91:34 Connecting to mirrors.hns.net.in|111.91.91.34|:80… connected. HTTP request sent, awaiting response… 206 Partial Content Length: 1761607680 (1.6G), 1758132697 (1.6G) remaining [application/octet-stream] Saving to: CentOS-6.3-x86_64-LiveDVD.iso 51% [================================== ] 3,877,262 47.0K/s eta 10h 27m ^

6. دریافت فایل با 0.1 اضافه در نام فایل

هنگامی که شما دانلود را بدون استفاده از -c آغاز می کنید در صورت وجود فایل از قبل wget به انتهای فایل دانلودی .1 اضافه می کند و در صورت وجود .1 نیز .2 را اضافه می کند.
کد / دستورwget http://mirrors.hns.net.in/centos/6.3/isos/x86_64/CentOS-6.3-x86_64-LiveDVD.iso
نمونهٔ خروجی ثبت‌شده در نسخهٔ قدیمی آموزش؛ عدد نسخه و تاریخ، وضعیت امروز رایانهٔ شما نیست:
کد / دستور–2012-10-02 12:50:49– http://mirrors.hns.net.in/centos/6.3/isos/x86_64/CentOS-6.3-x86_64-LiveDVD.iso Resolving mirrors.hns.net.in… 111.91.91.34, 2401:4800::111:91:91:34 Connecting to mirrors.hns.net.in|111.91.91.34|:80… connected. HTTP request sent, awaiting response… 200 OK Length: 1761607680 (1.6G) [application/octet-stream] Saving to: CentOS-6.3-x86_64-LiveDVD.iso.1 18% [=== ] 172,436 59.2K/s
شما با دستور زیر می توانید .1 در انتهای فایل را مشاهده نمایید :
کد / دستورls -l CentOS*
نمونهٔ خروجی ثبت‌شده در نسخهٔ قدیمی آموزش؛ عدد نسخه و تاریخ، وضعیت امروز رایانهٔ شما نیست:
کد / دستور-rw-r–r–. 1 root root 3877262 Oct 2 12:47 CentOS-6.3-x86_64-LiveDVD.iso -rw-r–r–. 1 root root 181004 Oct 2 12:50 CentOS-6.3-x86_64-LiveDVD.iso.1

7. دانلود فایل ها در Background

با استفاده از سوئیج -b شما می توانید دانلود را در background آغاز کنید و بلافاصله پس از شروع دانلود لاگ آن در آدرس /wget/log.txt ذخیره می شود.
کد / دستورwget -b /wget/log.txt ftp://ftp.iinet.net.au/debian/debian-cd/6.0.5/i386/iso-dvd/debian-6.0.5-i386-DVD-1.iso
نمونهٔ خروجی ثبت‌شده در نسخهٔ قدیمی آموزش؛ عدد نسخه و تاریخ، وضعیت امروز رایانهٔ شما نیست:
کد / دستورContinuing in background, pid 3550

8. محدود کردن سرعت دانلود فایل

با استفاده از تنظیم –limit-rate=100k سرعت فایل دریافتی شما به حداکثر 100 کیلوبایت محدود می شود و فایل لاگ در مسیر /wget/log.txt ایجاد می شود.
کد / دستورwget -c –limit-rate=100k /wget/log.txt ftp://ftp.iinet.net.au/debian/debian-cd/6.0.5/i386/iso-dvd/debian-6.0.5-i386-DVD-1.iso
نمونهٔ خروجی ثبت‌شده در نسخهٔ قدیمی آموزش؛ عدد نسخه و تاریخ، وضعیت امروز رایانهٔ شما نیست:
کد / دستور/wget/log.txt: Scheme missing. –2012-10-02 13:16:21– ftp://ftp.iinet.net.au/debian/debian-cd/6.0.5/i386/iso-dvd/debian-6.0.5-i386-DVD-1.iso => debian-6.0.5-i386-DVD-1.iso esolving ftp.iinet.net.au… 203.0.178.32 Connecting to ftp.iinet.net.au|203.0.178.32|:21… connected. Logging in as anonymous … Logged in! ==> SYST … done. ==> PWD … done. ==> TYPE I … done. ==> CWD (1) /debian/debian-cd/6.0.5/i386/iso-dvd … done. ==> SIZE debian-6.0.5-i386-DVD-1.iso … 4691312640 ==> PASV … done. ==> REST 2825236 … done. ==> RETR debian-6.0.5-i386-DVD-1.iso … done. Length: 4688487404 (4.4G), 4685662168 (4.4G) remaining (unauthoritative) 0% 3,372,160 35.5K/s eta 28h 39m

9. دانلود از ftp و http با استفاده از نام کاربری و رمز عبور

گاهی اوقات دانلود از ftp یا http نیاز به وارد کردن نام کاربری و رمز عبور می باشد شما می توانید از سوئیچ –http-user=username و –http-password=password یا –ftp-user=username و –ftp-password=password استفاده نمایید.
کد / دستورwget –http-user=narad –http-password=password http://mirrors.hns.net.in/centos/6.3/isos/x86_64/CentOS-6.3-x86_64-LiveDVD.iso کد / دستورwget –ftp-user=narad –ftp-password=password ftp://ftp.iinet.net.au/debian/debian-cd/6.0.5/i386/iso-dvd/debian-6.0.5-i386-DVD-1.iso

10. مشاهده نسخه نصب شده دستور wget و راهنمای دستور

با وارد کردن سوئیچ –version و –help شما می توانید نسخه نصب شده و راهنمای دستور را مشاهده فرمایید.
کد / دستورwget –version
نمونهٔ خروجی ثبت‌شده در نسخهٔ قدیمی آموزش؛ عدد نسخه و تاریخ، وضعیت امروز رایانهٔ شما نیست:
کد / دستورwget –help
منبع : Tecmint
در این آموزش در مورد دستور wget و انواع سوئیچ آن برای کارهای روزمره و اداری توضیح دادیم. لطفا در صورتی که بنده قسمتی را فراموش کردم بنویسم یا مشکل خاصی داشتید در قسمت نظرات آن را برای بنده ارسال کنید، امیدوارم بتونم کمکتون کنم.

توضیح بیشتر برای انجام مراحل

نمونه‌ها از دامنهٔ مثال استفاده می‌کنند؛ آدرس و نام فایل را با منبع معتبر خود جایگزین کنید. رمز یا token را در فرمانی که در history یا لاگ ثبت می‌شود نگذارید.

دانلود پایه

برای URL دارای query کوتیشن استفاده کنید و مقصد را مشخص کنید. نام خروجی با -O و محل پوشه با -P کاربرد متفاوت دارند.

ادامه و محدودیت

برای ادامه از -c فقط وقتی سرور و فایل مقصد مناسب‌اند استفاده کنید. timeout و تعداد retry را محدود کنید تا job بی‌پایان نماند.

صحت و اعتماد

گواهی TLS را بررسی و hash منتشرشده از منبع معتبر را تطبیق دهید. --no-check-certificate را راه عادی دریافت فایل قرار ندهید.

ادامهٔ انتقال و نام فایل

برای فایل نیمه‌کاره، گزینهٔ -c را در مسیر همان فایل استفاده کنید؛ پشتیبانی سرور از ادامهٔ انتقال مهم است. با -O می‌توانید نام خروجی را مشخص کنید. نام‌گذاری درست ثابت نمی‌کند پاسخ دریافت‌شده واقعاً آرشیو است؛ ممکن است صفحهٔ خطا یا ورود باشد.

HTTPS و صحت محتوا

اگر خطای TLS می‌بینید، ساعت سیستم، نام دامنه و گواهی را بررسی کنید؛ --no-check-certificate را به راه‌حل دائمی تبدیل نکنید. هش منتشرشدهٔ فایل را از منبع معتبر بگیرید و بعد از دانلود مقایسه کنید. فایل اجرایی دانلودشده را پیش از بررسی اجرا نکنید.
نمونه‌ها placeholder هستند؛ URL واقعی خود را جایگزین کنید. دانلود موفق به معنی معتبر بودن محتوای اجرایی نیست.
کد / دستورwget -O package.zip https://example.com/package.zip wget -c https://example.com/large-file.zip sha256sum package.zip

منابع و ادامهٔ مطالعه

دیدگاه‌ها (۰)

دیدگاه‌های تاییدشده و پاسخ‌های تیم نت‌آرام