در این پست ما قصد داریم مروری بر دستور لینوکسی wget که فایل را از www (اینترنت) download میکند، داشته باشیم که به صورت گسترده ای از پروتکل های HTTP, HTPS, FTP استفاده میکند. ابزار wget به صورت رایگان و تحت لایسنس GNU/GPL ریلیز شده است. این ابزار میتواند در هر سیستم شبیه به unix نصب شود همانند ویندوز و سیستم عامل مک. این ابزار به گونه ای طراحی گردیده که در کانکشن های شبکه غیرپایدار و یا کند هم به خوبی کار میکند.
همچنین توصیه میشود مطالعه کنید.
دستور Aria2 - یک ابزار دانلود در ترمینال لینوکس
دستور curl در لینوکس به همراه 15 مثال عملی
چگونه با استفاده از Wget در پوشه خاصی فایل ها را دانلود کنیم
نحوه محدود کردن سرعت دانلود در دستور wget
wget به صورت اتوماتیک دانلود را بعد از مشکلات شبکه هم آغاز میکند. همچنین فایل دانلود برگشت پذیر میباشد در حقیقت تا زمان دریافت کامل فایل همچنان تلاش برای دانلود را متوقف نمیکند.
ابتدا چک کنید که آیا wget در سیستم تان نصب هست یا نیست :
اگر نصب نبود با استفاده از YUM و یا با استفاده از دانلود پکیج binary از آدرس http://ftp.gnu.org/gnu/wget/ نصب کنید :
آپشن y- که در کامند بالا استفاده شده برای این منظور است که از شما سوال تاییدی روی نصب هر پکیجی نداشته باشد. اگر دقت کرده باشید بعد از زدن yum در prompt از شما تاییدیه نصب میخواهد که با زدن y نصب آن پکیج ها را تایید میکنید. در حقیقت با لحاظ کردن این آپشن در خود دستور yum این دستور دیگر از شما برای نصب پکیج ها تاییدیه نمیگیرد.
برای اطلاع از گزینه های بیشتر دستور yum مقاله های زیر را مطالعه بفرمایید :
دستور YUM در لینوکس برای مدیریت پکیج ها به همراه 20 مثال عملی
1 - دانلود یک فایل به تنهایی
دستور wget زیر یک فایل مجزا را دانلود کرده و در دایرکتوری جاری ذخیره میکند. همچنین درصد دانلود، سایز، تاریخ و زمان را در هنگام دانلود نمایش میدهد :
2 - دانلود فایل با اسمی متفاوت
با استفاده از اپشن O- (اوی بزرگ) در دستور wget به فایلی که میخواهیم دانلود کنیم نامی متفاوت میدهیم. همانطور که در مثال زیر میبینید فایلی که میخواهید دانلود کنید را با نام wget.zip در دایرکتوری جاری ذخیره میکند :
3 - دانلود چندین فایل با پروتکل HTTP و FTP
در مثال زیر ما میبینیم که چگونه با استفاده از wget چندین فایل با استفاده از پروتکل http و ftp در یک لحظه دانلود میشود :
4 - خواندن URL از یک فایل
شما میتوانید تعدادی url در یک فایل متنی ذخیره کنید و همه آنها را با استفاده از آپشن i- به همراه دستور wget دانلود کنید. در کامند زیر ما فایل tmp.txt را در پوشه wget ایجاد کردیم و در این فایل چندین url برای دانلود قرار دادیم :
5 - از سرگیری دانلود های ناقص
در مواردی که فایل های بزرگی در حال دانلود هستند احتمال متوقف شدن یا ناتمام ماندن دانلود به هر دلیلی وجود دارد. آپشن c- در wget امکان دانلود ادامه فایل را میسر میکند اما زمانی که فایل را بدون آپشن c- دانلود میکنید wget عبارت 1. را به پایان فایل اضافه میکند که نشان دهنده یک دانلود تازه میباشد. در نتیجه کار درست این است که از آپشن c- استفاده کنیم تا ادامه دانلود در همان فایل دانلود و ذخیره شود :
6 - دانلود فایل با اضافه کردن 1. در انتهای نام فایل
زمانی که شما شروع به دانلود یک فایل بدون آپشن c- میکنید wget بعد از شروع کردن دانلود مجدد به انتهای فایل جدید 1. اضافه میکند و اگر فایل با 1. موجود باشد 2. به آخر فایل اضافه میکند :
نمونه فایل های با پسوند 1. اضافه شده در انتهای فایل را مشاهده کنید :
7 - دانلود فایل ها در background
با گزینه b- در دستور wget شما میتوانید دانلود را سریعا بعد از شروع آن به بک گراند ترمینال تان ارسال کنید و لاگ ها را به فایل /wget/logfile/ ارسال کنید :
8 - اعمال محدودیت های سرعت دانلود
با آپشن limit-rate=100k- در دستور wget سرعت دانلود به 100 درصد محدود میشود و لاگ ها به فایل /wget/log.txt/ ارسال میشود :
9 - محدود کردن دانلودهای FTP و HTTP با username و password
با گزینه http-user=username- و http-password=password- و ftp-user-username- و ftp-password=password- شما میتوانید روی دانلود های سایت های http و ftp محدودیت پسورد بگذارید :
10 - پیدا کردن ورژن wget و help
با گزینه های version-- و help-- شما میتوانید ورژن و راهنمای دستور wget را در صورت نیاز مشاهده کنید :
در این مقاله ما دستور wget به همراه آپشن هایش را برای task روزانه ادمین های شبکه آموزش دادیم اگر میخواهید بیشتر درباره wget بدانید از صفحه man ان بازدید کنید.
استفاده از آموزشهای منطقه لینوکسی ها با کمی تغییر در عنوان و متن نوشته ها غیر قابل قبول منطقه لینوکسی ها میباشد.
موفق باشید
محمد هابیلی
همچنین توصیه میشود مطالعه کنید.
دستور Aria2 - یک ابزار دانلود در ترمینال لینوکس
دستور curl در لینوکس به همراه 15 مثال عملی
چگونه با استفاده از Wget در پوشه خاصی فایل ها را دانلود کنیم
نحوه محدود کردن سرعت دانلود در دستور wget
wget به صورت اتوماتیک دانلود را بعد از مشکلات شبکه هم آغاز میکند. همچنین فایل دانلود برگشت پذیر میباشد در حقیقت تا زمان دریافت کامل فایل همچنان تلاش برای دانلود را متوقف نمیکند.
ابتدا چک کنید که آیا wget در سیستم تان نصب هست یا نیست :
کد PHP:
# rpm -qa wget
wget-1.12-1.4.el6.i686
کد PHP:
# yum -y install wget
برای اطلاع از گزینه های بیشتر دستور yum مقاله های زیر را مطالعه بفرمایید :
دستور YUM در لینوکس برای مدیریت پکیج ها به همراه 20 مثال عملی
1 - دانلود یک فایل به تنهایی
دستور wget زیر یک فایل مجزا را دانلود کرده و در دایرکتوری جاری ذخیره میکند. همچنین درصد دانلود، سایز، تاریخ و زمان را در هنگام دانلود نمایش میدهد :
کد PHP:
# 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 به فایلی که میخواهیم دانلود کنیم نامی متفاوت میدهیم. همانطور که در مثال زیر میبینید فایلی که میخواهید دانلود کنید را با نام wget.zip در دایرکتوری جاری ذخیره میکند :
کد PHP:
# 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 چندین فایل با استفاده از پروتکل http و ftp در یک لحظه دانلود میشود :
کد PHP:
# 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 - خواندن URL از یک فایل
شما میتوانید تعدادی url در یک فایل متنی ذخیره کنید و همه آنها را با استفاده از آپشن i- به همراه دستور wget دانلود کنید. در کامند زیر ما فایل tmp.txt را در پوشه wget ایجاد کردیم و در این فایل چندین url برای دانلود قرار دادیم :
کد PHP:
# 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- در wget امکان دانلود ادامه فایل را میسر میکند اما زمانی که فایل را بدون آپشن c- دانلود میکنید wget عبارت 1. را به پایان فایل اضافه میکند که نشان دهنده یک دانلود تازه میباشد. در نتیجه کار درست این است که از آپشن c- استفاده کنیم تا ادامه دانلود در همان فایل دانلود و ذخیره شود :
کد PHP:
# 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 - دانلود فایل با اضافه کردن 1. در انتهای نام فایل
زمانی که شما شروع به دانلود یک فایل بدون آپشن c- میکنید wget بعد از شروع کردن دانلود مجدد به انتهای فایل جدید 1. اضافه میکند و اگر فایل با 1. موجود باشد 2. به آخر فایل اضافه میکند :
کد PHP:
# 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
کد PHP:
# 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- در دستور wget شما میتوانید دانلود را سریعا بعد از شروع آن به بک گراند ترمینال تان ارسال کنید و لاگ ها را به فایل /wget/logfile/ ارسال کنید :
کد PHP:
# 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- در دستور wget سرعت دانلود به 100 درصد محدود میشود و لاگ ها به فایل /wget/log.txt/ ارسال میشود :
9 - محدود کردن دانلودهای FTP و HTTP با username و password
با گزینه http-user=username- و http-password=password- و ftp-user-username- و ftp-password=password- شما میتوانید روی دانلود های سایت های http و ftp محدودیت پسورد بگذارید :
کد PHP:
# 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
کد PHP:
# 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 و help
با گزینه های version-- و help-- شما میتوانید ورژن و راهنمای دستور wget را در صورت نیاز مشاهده کنید :
کد PHP:
# wget --version
# wget --help
استفاده از آموزشهای منطقه لینوکسی ها با کمی تغییر در عنوان و متن نوشته ها غیر قابل قبول منطقه لینوکسی ها میباشد.
موفق باشید
محمد هابیلی