فهرست مطلب
- معرفی کامند wget و چگونگی دانلود فایل در لینوکس با استفاده از wget
- نصب wget در Centos/Ubuntu/Debian/Fedora
- دانلود یک فایل با wget
- دانلود یک فایل و ذخیره آن با نام دیگر
- دانلود فایل و ذخیره آن در مسیر(directory) مورد نظر
- تنظیم سرعت دانلود فایل
- ادامه دادن دانلود قطع شده
- دانلود فایل در بکگراند
- افزایش تعداد دفعات تلاش مجدد خودکار wget برای دانلود
- دانلود خودکار و در صف چندین فایل
- دانلود از FTP با استفاده از wget
- دانلود کامل یک وبسایت
- دانلود تودرتو یک نوع فایل خاص مانند فایل zip از یک فایلسرور یا یک دایرکتوری فایل
- بررسی وجود داشتن یک فایل – صحیح بودن url
- بررسی هدر دریافتی توسط wget
- توقف دانلود پس از دانلود حجمی مشخص از فایل
معرفی کامند wget و چگونگی دانلود فایل در لینوکس با استفاده از wget
در این مقاله قصد داریم کاملترین راهنمای استفاده از کامند wget را با شما به اشتراک بگذاریم، پس از خواندن این مطلب و یا مراجعه به آن در زمان نیاز شما میتوانید تمامی نیازهای خود برای استفاده از این کامند را در این مقاله بیابید.
wget یک ابزار رایگان برای دانلود فایل در لینوکس است که از پروتکلهای https،http و ftp جهت دریافت فایل پشتیبانی میکند. نام این کامند برگرفته از جمله “World Wide Web + get” است. wget امکانات زیادی برای دانلود فایلهای حجیم، ادامه دادن فرایند دانلود، دانلود همزمان چندین فایل، دانلود تودرتو، دانلود کامل یک صفحه وب (mirroring entire web) و دانلود از FTP سرورها را به سادهترین روش در اختیار شما قرار میدهد.
wget یک کامند غیرتعاملی(non-interactive) بوده که بسیار انعطافپذیر است . شما به راحتی میتوانید از wget داخل یک اسکریپت استفاده کنید، در cron job استفاده کنید و wget میتواند در بکگراند اجرا شود که این امکان را در اختیار شما قرار میدهد تا در زمان خارج شدن از سیستم نیز پروسه دانلود خود را ادامه دهید.
در این مقاله ما از طریق چند مثال عملی کلیه کاراییهای مهم wget را میآموزیم و امیدوارم این مقاله یک مرجع خوب برای رفع تمامی نیازهای شما در زمان استفاده از wget باشد.
نصب wget در Centos/Ubuntu/Debian/Fedora
ابزار wget در اکثر توزیعهای لینوکس به صورت پیشفرض وجود دارد و نیاز به نصب ندارد اما در صورتی که در سیستم شما این کامند نصب نیست میتوانید با یکی از دستورات زیر بسته به توزیع مورد استفاده خود اقدام به نصب آن نمایید. لازم به ذکر است پکیج wget در ریپازیتوری اصلی اکثر توزیعها وجود داشته و نیاز به نصب مخزن دیگری نخواهید داشت.
#ubuntu and debian sudo apt-get install wget #centos 5 sudo yum install wget #centos 5/6 yum install wget #fedora 28/27/26/25/24 sudo dnf install wget
دانلود یک فایل با wget
برای دانلود یک فایل در wget کافیست به این شکل wget https://wordpress.org/latest.zip
در محیط شل ابتدا تایپ کنید wget و پس از یک فاصله آدرس url فایل مورد نظر را بنویسید که خروجی آن مشابه زیر خواهد بود.
--۲۰۱۹-۰۶-۱۷ ۱۱:۲۷:۱۱-- https://wordpress.org/latest.zip Resolving wordpress.org (wordpress.org)... 198.143.164.252 Connecting to wordpress.org (wordpress.org)|198.143.164.252|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 12119857 (12M) [application/zip] Saving to: ‘latest.zip’ ۱۰۰%[=========================================================================================>] 12,119,857 6.06MB/s in 1.9s ۲۰۱۹-۰۶-۱۷ ۱۱:۲۷:۱۴ (۶٫۰۶ MB/s) - ‘latest.zip’ saved [12119857/12119857]
همانطور که می بینید، در خروجی نیز به شما پیشرفت دانلود، سرعت دانلود در حال حاضر، اندازه، تاریخ، زمان و نام فایل را نشان می دهد . در این مثال فایل مورد نظر در دایرکتوری فعلی که در آن هستید و با نام latest.zip ذخیره شده است.
از آنجایی که خروجی اکثر دستورات مشابه هم خواهد بود در ادامه برای کوتاه شدن متن تا زمان نیاز خروجی کامند را قرار نمیدهیم
دانلود یک فایل و ذخیره آن با نام دیگر
در برخی موارد لازم است فایل دانلود شده را با نام دیگری در سیستم یا سرور خود ذخیره کنید، در همین مثال میتوانیم بجای نام latest.zip از نام wordpress.zip برای ذخیره فایل استفاده کنیم که برای این منظور از نشانه -O
پس از wget و نام مورد نظر بعد از آن و سپس آدرس url به شکل زیر استفاده کنیم.
wget -O wordpress.zip https://wordpress.org/latest.zip
در این مثال فایل با نام wordpress.zip و در دایرکتوریای که در آن قرار دارید ذخیره خواهد شد، توجه داشته باشید که حرف O به صورت کپیتال(حروف بزرگ) باید استفاده شود.
دانلود فایل و ذخیره آن در مسیر(directory) مورد نظر
در دو مثال قبلی ما فایل را در دایرکتوری(مسیری) که در آن بودیم دانلود کردیم اما اگر نیاز داشته باشید فایل در مسیر دیگری دانلود و ذخیره شود از نشانه -P
استفاده میکنیم همانند کامند زیر که ما اقدام به دانلود فایل در مسیر /var/www/html نمودهایم و فایل پس از دانلود در مسیر مورد نظر ما ذخیره خواهد شد .
wget -P /var/www/html/ https://wordpress.org/latest.zip
تنظیم سرعت دانلود فایل
در برخی موارد شما نیاز دارید برای دانلود فایلهای حجیم محدودیت سرعت قرار دهید تا در حین دانلود تمام پهنایباند شما صرف دانلود نشود برای این منظور نیز wget امکان مشخص کردن حداکثر سرعت دانلود را با گزینه --limit-rate
در اختیار شما قرار داده است با استفاده از این گزینه و مشخص کردن سرعت مورد نظر پس از علامت مساوی در مقابل آن، نهایت سرعت دانلود فایل از میزان مشخص شده توسط ما تجاوز نخواهد کرد. برای مثال در کامند زیر ما مشخص میکنیم که فایل با نهایت سرعت ۳۰۰ کیلوبایت در ثانیه دانلود شود .
wget --limit-rate=300k https://wordpress.org/latest.zip
ادامه دادن دانلود قطع شده
یکی از امکانات بسیار عالی wget که در این ابزار رایگان لینوکسی در اختیار ما قرار دارد، امکان ادامه دانلود از همانجایی که به هر دلیلی دانلود ما قطع شده است میباشد. مشابه این امکان را در نرم افزارهای غیر رایگان ویندوزی مانند IDM مشاهده کردهایم. اگر در حین دانلود به دلایل مختلف مانند قطعی ارتباط اینترنت یا از دسترس خارج شدن سرور و قطع ارتباط با ssh و … دانلود فایل شما ناقص ماند نگران نباشید چرا که پس از دسترسی مجدد میتوانید با استفاده از نشانگر -c
دانلود فایل را از همانجا که قطع شده است ادامه دهید و به این شکل در زمان و هزینهها به شدت صرفهجویی کنید.
wget -c https://wordpress.org/latest.zip
نکته: اگر دانلود شما قطع شده باشد و شما بدون استفاده از نشانگر -c اقدام به دانلود مجدد نمایید wget در انتهای نام فایل ذخیره شه پس از دانلود “.۱” را اضافه خواهد کرد، همچنین توجه داشته باشید برای ادامه یافتن دانلود فایل حتما باید کامند را در مسیر قبلی اجرا کنید یا اگر با استفاده از گزینههای دیگر مسیر یا نام ذخیره فایل را تغییر داده اید مجدد باید از همان مسیر یا نام در کنار -c استفاده کنید.
دانلود فایل در بکگراند
اگر قصد دانلود یک یا چند فایل حجیم را داشته باشید قطعا منتظر ماندن برای اتمام پروسه دانلود کمی اذیت کننده است و همچنین در صورتی که شما در حال دانلود این فایل در یک سرور باشید که ارتباط شما با سرور از طریق ssh برقرار شده باشد ریسک قطع ارتباط نیز وجود دارد که در این صورت دانلود نیز متوقف خواهد شد، اما برای این موارد راه حلی بسیار هوشمندانه توسط ابزار wget ارائه شده است که شما با قرار دادن تنها یک نشانه -b
همانند مثال زیر میتوانید پروسه دانلود را به بکگراند سیستم بفرستید و بدون انتظار برای اتمام دانلود به ادامه کار خود بپردازید و یا حتی از سیستم یا سرور خارج شوید.
wget -b http://example.com/large-file.zip
با اجرای دستور بالا پروسه دانلود به شما نمایش داده نمیشود و برای مشاهده وضعیت دانلود در زمان نیاز و اطلاع از اینکه دانلود به اتمام رسیده یا ادامه دارد میتوانید در همان مسیری که کامند را اجرا کردید در فایل wget-log
پروسه دانلود را بررسی کنید .
افزایش تعداد دفعات تلاش مجدد خودکار wget برای دانلود
اگر به علت مشکل ارتباطی اینترنت خودتان یا مشکلات موجود در سرور مقابل دانلود شما به دفعات قطع شده است و به دنبال راهی هستید که از تلاش مجدد به صورت دستی برای ادامه دانلود خلاص شوید باز هم wget برای شما یک سورپرایز آماده کرده است، شما با استفاده از آپشن --tries
میتوانید مانند مثال زیر به سیستم بگویید در صورت قطع ارتباط، wget به تعداد n بار به صورت خودکار اقدام به تلاش مجدد برای ادامه دانلود فایل نماید.
wget --tries=200 https://example.com/large-file.zip
دانلود خودکار و در صف چندین فایل
اگر قصد دانلود چندین فایل مشخص را دارید میتوانید هر n عدد url مورد نظر برای دانلود را در یک فایل txt و هر url را در یک خط ذخیره و به wget بگویید که آنها را به ترتیب قرارگیری در فایل یکبهیک و یکی پس از دیگری بدون اینکه لازم باشد شما کاری انجام دهید دانلود کند. برای این منظور ابتدا فایل را ایجاد و هر یک از url ها را در یک خط قرار میدهیم و سپس از نشانه -i
و سپس نام فایل ایجاد شده همانند روبرو استفاده میکنیم wget -i download.txt
محتوای فایل download.txt باید مانند زیر باشد
http://example.com/file1.zip http://example.com/file2.zip http://example.com/file3.zip
دانلود از FTP با استفاده از wget
شما میتوانید از wget برای دانلود فایل از یک ftp سرور نیز استفاده کنید، حتی اگر ftp سرور شما با استفاده از نامکاربری و رمزعبور محافظت شده باشد نیز wget امکان دانلود از آنرا به شکل مثال زیر برای شما فراهم میکند، در این کامند بجای youusername نامکاربری سرور ftp و بجای yourpassword رمز عبور سرور ftp را وارد کنید و همچنین توجه داشته باشید که باید در قسمت url-to-ftp-file
حتما مسیر کامل فایل را قرار دهید.
wget --ftp-user=yourusername --ftp-password=yourpassword ftp://url-to-ftp-file
دانلود کامل یک وبسایت
اگر بخواهید یک صفحه از سایتی را دانلود و در آینده به صورت آفلاین مشاهده کنید، میتوانید به سادگی از کامند زیر استفاده کنید.
wget --mirror --convert-links --page-requisites ----no-parent -P /path/to/download https://example-domain.com/article
توضیح گزینههای استفاده شده در کامند ذخیره سایت
–mirror : فعال کردن تمام گزینههای کامند mirror در wget
–convert-link : تبدیل تمام لینکها برای اینکه بتوانید به صورت آفلاین آنها را مرور کنید .
–page-requisites : دانلود تمام فایلهای مورد نیاز مانند css,jpeg و …
–no-parent : با این گزینه دانلود را فقط به یک قسمت از سایت محدود میکنیم
-P : مسیر دانلود را مشخص میکنیم
دانلود تودرتو یک نوع فایل خاص مانند فایل zip از یک فایلسرور یا یک دایرکتوری فایل
شاید بخواهید در یک مسیر خاص از یک سایت یا یک فایلسرور تمامی فایلهای آن با فرمت .zip را به صورت یکجا و بدون نیاز به وارد کردن تک به تک url های آنها دانلود کنید برای این منظور از کامند زیر استفاده میکنیم.
wget --recursive --no-parent --level=1 --accept=zip http://example.com/download/
در کامند بالا در مسیر download در این فایل سرور تمامی فایلهای با فرمت zip با عمق یک مسیر دانلود خواهند شد
توجه: منظور از عمق تعداد زیر مسیرهایی است که برای دانلود فایل با فرمت zip در کامند بالا توسط کامند wget پویش میشود برای مثال اگر فایلی در مسیر http://example.com/download/software نیز قرار داشته باشد دانلود خواهد شد
توضیح گزینههای استفاده شده در کامند دانلود تودرتو
–recursive : فعال کردن تمامی گزینه های دانلود تودرتو
–no-parent : با این گزینه دانلود را فقط به یک قسمت از سایت محدود میکنیم
–level : مشخص کردن تعداد (عمق) ورود به زیر مسیرها – عدد ۰ برای نامحدود استفاده میشود
–accept : لیست نوع فایلهای مدنظر برای دریافت – برای بیش از یک نوع فایل از علامت , و سپس نام اکستنشن مورد نظر استفاده کنید برای مثال zip,gzip,tar,tar.gz
بررسی وجود داشتن یک فایل – صحیح بودن url
اگر قصد دارید قبل از اجرای دستور دانلود بررسی کنید که آیا فایل مورد نظر در آدرس مورد نظر وجود دارد یا خیر wget این امکان را نیز فراهم کرده است که بدون دانلود فایل بررسی کنید که فایل وجود دارد یا خیر برای این منظور از دستور زیر استفاده میکنیم
wget --spider http://www.example.org/files/archive.zip
خروجی دستور فوق در صورتی که فایل مورد نظر وجود داشته باشد به شکل زیر خواهد بود
Spider mode enabled. Check if remote file exists. HTTP request sent, awaiting response... 200 OK Length: 1206 (1.2K) [application/zip] Remote file exists.
بررسی هدر دریافتی توسط wget
خیلی از مواقع شما نیاز به مشاهده هدر دریافتی از سرور مقابل دارید، اکثرا برای این مورد از curl استفاده میشود اما wget نیز این امکان را فراهم آورده است برای این منظور از دستور زیر استفاده میکنیم
wget -S --spider https://www.wordpress.com/
کامند بالا بدون اینکه فایلی را دانلود کند فقط هدر دریافتی را به شما نمایش میدهد که خروجی مشابه زیر خواهد بود
Spider mode enabled. Check if remote file exists. --۲۰۱۹-۰۶-۱۹ ۱۵:۳۸:۴۷-- https://www.hosterpack.com/ Resolving www.hosterpack.com (www.hosterpack.com)... 185.227.138.230 Connecting to www.hosterpack.com (www.hosterpack.com)|185.227.138.230|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Server: nginx Date: Wed, 19 Jun 2019 11:08:47 GMT Content-Type: text/html; charset=UTF-8 Content-Length: 95258 Connection: keep-alive X-Frame-Options: SAMEORIGIN Vary: Accept-Encoding,Cookie,User-Agent Last-Modified: Wed, 19 Jun 2019 10:40:10 GMT ETag: "1741a-58baada825862" Cache-Control: max-age=82, public, public, public Expires: Wed, 19 Jun 2019 11:10:10 GMT X-XSS-Protection: 1; mode=block X-Content-Type-Options: nosniff Referrer-Policy: no-referrer-when-downgrade Pragma: public Set-Cookie: _mcnc=1; Max-Age=2; Path=/ X-Microcachable: 0 Set-Cookie: uid=ueOK5l0KF79tVZ0SA8wbAg==; expires=Fri, 19-Jul-19 11:08:47 GMT; domain=$host; path=/ P3P: policyref="/w3c/p3p.xml", CP="CUR ADM OUR NOR STA NID" Accept-Ranges: bytes Cookie coming from www.hosterpack.com attempted to set domain to www.hosterpack.com Length: 95258 (93K) [text/html] Remote file exists and could contain further links, but recursion is disabled -- not retrieving.
توقف دانلود پس از دانلود حجمی مشخص از فایل
با استفاده از کامند زیر فایل پس از دانلود ۵ مگابایت متوقف میشود و در آینده میتوانید با استفاده از گزینه -c که بالاتر توضیح دادیم ادامه دانلود را انجام دهید.
wget -Q5m http://www.example.org/files/archive.zip
در این مقاله سعی کردم تمامی کامندهای کاربردی wget را برای شما شرح دهم، اگر کامندی را نیاز دارید که در بالا به آن اشاره نشده است از بخش نظرات همین صفحه اعلام کنید تا در همین مقاله گنجانده و یا در بخش نظرات کامند آن برای شما ارسال شود.
3 نظر
دروود
خیلی ممنون از مطلب خوبتون، من دوتا سوال داشتم
با چه کامندی می تونم متوجه بشم که تو کدوم دایرکتوری در حال حاضر هستم ؟
و اینکه با چه کامندی می تونم داخل دایرکتوری ها و فایل ها جستجو کنم ؟
ممنون میشم راهنمایی کنید.
سلام
خواهش میکنم، برای اینکه ببینید تو چه دایرکتوری قرار دارید از کامند pwd استفاده کنید برای جستجو میتونید از کامند find یا locate استفاده کنید که در آینده در این خصوص حتما یک مطلب جامع روی سایت میذارم
احسنت