رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
شگفتی های دستور wget
#1
دستور wget یکی از مناسب ترین گزینه ها برای دانلود از اینترنت است،wget می تواند حالت هایی پیچیده از دانلود رو به زیبایی مدیریت کند،مثلا دانلود فایلهایی با حجم بالا،دانلود های بازگشتی،دانلود های غیر تعاملی،دانلود چندین فایل و غیره.در این مقاله میخواهم ۱۵ روش با مثال برای حالت های مختلف دانلود بیان کنم.

۱−دانلود یک فایل با wget
با مثال زیر می توانید یک فایل را از اینترنت و آدرس مورد نظرتون دانلود کرده و در دایرکتوری جاری ذخیره کنید.

wget http://www.openss7.org/repos/tarballs/st....1.tar.bz2

در هنگام دانلود یک Progress Bar یا همان نوار پیشرفت به شما نشان داده میشود که دارای اطلاعاتی از دانلود است.



هنگام دانلود:

$ wget http://www.openss7.org/repos/tarballs/st....1.tar.bz2
Saving to: `strx25-0.9.2.1.tar.bz2.1'

31% [=================> 1,213,592 68.2K/s eta 34s

بعد از اتمام دانلود:

$ wget http://www.openss7.org/repos/tarballs/st....1.tar.bz2
Saving to: `strx25-0.9.2.1.tar.bz2'

100%[======================>] 3,852,374 76.8K/s in 55s

2009-09-25 111530 (68.7 KB/s) - `strx25-0.9.2.1.tar.bz2' saved [3852374/3852374]

۲−دانلود و ذخیره کردن فایل با نامی دیگر با استفاده از wget -O
به صورت پیشفرض،دستور wget نام کلمه ای که بعد از آخرین اسلش / قرار دارد را به عنوان اسم فایل قرار میدهد که شاید گاهی اوقات مناسب نباشد.

ناصحیح:به عنوان مثال ما فایلی با به صورت زیر دانلود و ذخیره کردیم:
download_script.php?src_id=7701

wget http://www.vim.org/scripts/download_scri...rc_id=7701

حتی اگر فایل دانلود شده در قالب زیپ هم باشد،به صورت زیر ذخیره و نمایش داده میشود:

ls
download_script.php?src_id=7701

صحیح:شکل صحیح قضیه به این شکل است که ما با کمک دستور wget -o این مشکل را حل کنیم:

wget -O taglist.zip http://www.vim.org/scripts/download_scri...rc_id=7701

۳− تعیین کردن سرعت دانلود با استفاده از wget –limit-rate
زمانیکه ما دستور wget رو اجرا میکنیم به صورت پیش فرض کل پهنای باندمون رو اشغال میکنه،شاید خیلی جاها این کار مناسب نباشه و مشکلاتی رو در پی داشته باشه،با این پیش فرض میتونیم سرعت دانلودمون رو لیمیت کنیم.

wget --limit-rate=۱۰k http://www.openss7.org/repos/tarballs/st....1.tar.bz2


۴− ادامه دانلود نیمه تمام مانده با استفاده از wget -c
می تونید فایلی که در اواسط دانلود رو ایست کردید رو با استفاد از این دستور ادامه بدید:

wget -c http://www.openss7.org/repos/tarballs/st....1.tar.bz2


این روش زمانی که یک فایل بزرگ رو دانلود میکنیم و وسطای دانلود یه وقفه به وجود میاد سودمنده…



۵−دانلود در پس زمینه با wget -b
برای دانلود های بزرگ بهتره اونا رو تو پس زمینه قرار بدید :

$ wget -b http://www.openss7.org/repos/tarballs/st....1.tar.bz2
Continuing in background, pid 1984.
Output will be written to `wget-log'


با استفاده از دستور tail -f میتونید وضعیت دانلودتون رو مشاهده کنید:

tail -f wget-log
Saving to: `strx25-0.9.2.1.tar.bz2.4'

0K .......... .......... .......... .......... .......... 1% 65.5K 57s
50K .......... .......... .......... .......... .......... 2% 85.9K 49s
100K .......... .......... .......... .......... .......... 3% 83.3K 47s
150K .......... .......... .......... .......... .......... 5% 86.6K 45s
200K .......... .......... .......... .......... .......... 6% 33.9K 56s
250K .......... .......... .......... .......... .......... 7% 182M 46s
300K .......... .......... .......... .......... .......... 9% 57.9K 47s


۶−پنهان کردن واسط کاربری و ارائه wget همانند یک مرورگر با استفاده از –user-agent
بسیاری از سایت ها اجازه دانلود فایل رو زمانیکه رابط کاربریتون یک مرورگر نباشه رو نمیدن،در این وضعین میتونید رابط کاربریتون رو همانند مثال زیر تغییر بدین:

wget --user-agent="Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.3) Gecko/2008092416 Firefox/3.0.3" URL-TO-DOWNLOAD

۷−امتحان آدرس دانلود توسط wget –spider
زمانیکه شما میخواید برای دانلودتون برنامه ریزی کنید با از وجود لینک های و آدرس های دانلودتون مطمئن باشید،برای این کار به صورت زیر عمل کنید:

wget --spider DOWNLOAD-URL

اگه url جواب صحیح بگیرد به صورت زیر خواهد شد:

wget --spider download-url
Spider mode enabled. Check if remote file exists.
HTTP request sent, awaiting response... 200 OK
Length: unspecified 1
Remote file exists and could contain further links,
but recursion is disabled -- not retrieving.

این یعنی شما میتونید در وقت برنامه ریزی شده دانلودتون رو انجام بدهید،اما اگر شما جواب ناصحیح بگیرد به صورت زیر خواهد بود:

wget --spider download-url
Spider mode enabled. Check if remote file exists.
HTTP request sent, awaiting response... 404 Not Found
Remote file does not exist -- broken link!!!

۸− افزایش مقدار، تلاش دوباره برای دانلود یک فایل با wget –tries
اگر سرعت اینترنتتون پایینه و اگه حجم فایل دریافتی بالاست احتمال شکست در دانلود وجود دارد،wget به صورت پیشفرض ۲۰ بار برای دانلود دوباره فایل اقدام میکند که میتونید به صورت زیر این مقدار را افزایش دهید:

wget --tries=75 DOWNLOAD-URLk!!!

۹−دانلود چندین فایل از آدرس های مختلف با Wget -i
ابتدا آدرس فایلهای که قرار است دانلود شوند را در یک فایل متنی ذخیره می کنیم:

cat > download-file-list.txt
URL1
URL2
URL3
URL4

سپس به عنوان ورودی فایل رو دریافت میکنیم به صورت زیر:

wget -i download-file-list.txt

۱۰− دانلود کل یک وبسایت با استفاده از wget –mirror
از دستور زیر برای زمانیکه میخوایید یه وبسایت رو کاملا دانلود کرده و به صروت لوکال استفاده کنید:

wget --mirror -p --convert-links -P ./LOCAL-DIR WEBSITE-URL

۱۱−نپذیرفتن فایل تایپ های خاص با wget –reject

wget --reject=gif WEBSITE-TO-BE-DOWNLOADED

۱۲−ایجاد لاگ فایل جدا گانه با wget -o

wget -o download.log DOWNLOAD-URL

۱۳−خروج از دانلود زمانیکه حجم فایل دانلود بیش از حد مجاز باشد wget -Q
برای مثال میخوایید زمانیکه حجم فایل دانلود بیش از حد مجاز مثلا بیشتر از ۵ مگ شد از دانلود خارج شود:

wget -Q5m -i FILE-WHICH-HAS-URLS

۱۴−دانلود فایل هایی با پسوند خاص با wget -r -A
اگه دلتون میخواد کل فایلهای ویدئویی، صوتی ،پی دی اف یا هر چیز دیگه ای که مد نظرتون هست رو از یک سایت دانلود کنید به این صورت عمل کنید:

wget -r -A.pdf http://url-to-webpage-with-pdfs/

۱۵− دانلود به صورت FTP با wget

wget ftp-url

اگه اف تی پی نیاز به یوزنیم یا پسورد داشت به صورت عمل کنید:

wget --ftp-user=USERNAME --ftp-password=PASSWORD DOWNLOAD-URL


امیدوارم این مطلب به دردتون خورده باشه،اگه از مطلب استفاده کردین لطف کنید به هر نوعی که میتونید این مطلب رو شیر کنید…

منبع
[عکس: <a href=www.Mojsazan.com.gif]" class="mycode_img" />
پاسخ
سپاس شده توسط مهدی ابراهیمی ، Beni_Vanda


موضوعات مشابه ...
موضوع نویسنده پاسخ بازدید آخرین ارسال
Tongue دستور dmesg چیست و چگونه از آن استفاده کنیم؟ علی عرفانی 0 3,685 09-20-2013, 02:31 PM
آخرین ارسال: علی عرفانی
  دستور chmod و مروری بر انواع Permission ها در GNU/Linux مهرداد عباسی 0 4,478 01-04-2012, 07:00 PM
آخرین ارسال: مهرداد عباسی
  دستور yes در لینوکوس مهرداد عباسی 0 3,023 01-04-2012, 06:54 PM
آخرین ارسال: مهرداد عباسی
  terminal multiplexer اجرای دستور در جند سرور مهرداد عباسی 0 3,024 11-28-2011, 05:05 PM
آخرین ارسال: مهرداد عباسی
  دستور sleep مهرداد عباسی 0 3,392 01-12-2011, 12:18 PM
آخرین ارسال: مهرداد عباسی

پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان