۱۳۹۲ آذر ۱۵, جمعه

دستور wget

معمولا کسانی که رو سرور های لینوکسی کار میکنن با دستور wget زیاد سرو کار دارن همچنین لینوکس کار ها

کار با این دستور ساده هست و خیلی ها بلدن اما اون نکته ی مهمی که داره نحوه دانلود فایل های سنگین هست

خوب بعضی ها میان از چند کانکشن استفاده میکنن و یا راه های دیگه ولی اونی که من میخوام بگم برای مواقعی هست که اشکلالاتی روی یکی از سرور ها وجود داره که باعث قطع شدن و تایم اوت شدن دانلود میشه

اولا که پارامتر -b میتونید wget و یا دانلود فایل رو بزاریم توی بک گراند انجام بگیره یعنی لازم نیست که سشن ( session ) یا ترمینالی باز باشه و خودش دانلود رو انجام خواهد داد

هر موقع هم خواستیم ببینیم دانلود تا کجا پیش رفته میتونید فایل log رو با استفاده از دستور tail -f مشاهده کنید

اما اگر ببینیم که دانلود در وسط کار قطع شده چه کار باید انجام دهیم ؟



پارامتر -c باعث میشه که دانلود شما از اونجایی که مونده شروع به دانلود کنه و دیگه نیازی نیست از ابتدا دانلود انجام بگیره

پس یک بار دیگه مرور میکنم اگر یک فایل سنگین رو خواستید بر روی سرور انتقال بدید یا دانلود کنید

ابتدا با دستور :
wget -b http://sitename.com/filename.zip

که ادرس http://sitename.com/filename.zip در واقع آدرس فایل شما می باشد شروع به دانلود کنید

دقت کنید که چیزی در این حالت نمایش داده نخواهد شد و در مسیری که هستید یک فایل wget-log ایجاد خواهد شد

اگر میخواهید مشاهده کنید که دانلود با چه سرعتی انجام میگیره از دستور زیر استفاده کنید :
tail -f wget-log

و اگر خواستید از مشاهده این لاگ ها خارج شوید از ctrl +c استفاده کنید

بعد از چند ساعت دوباره به لاگ نگاه میکنید و میبینید که دانلود به صورت نا تمام قطع شده اونوقت میتونید از دستور زیر استفاده کنید تا دانلود از همانجایی که باقی مونده ادامه پیدا کنه :‌
wget -b -c http://sitename.com/filename.zip

تمام

سایت  زنجان لاگ در مورد wget مطلبی منتشر کرده که در ذیل نقل قول شده است پیشنهاد میکنم حتما مطالعه کنید :

۱−دانلود یک فایل با wget
با مثال زیر می توانید یک فایل را از اینترنت و آدرس مورد نظرتون دانلود کرده و در دایرکتوری جاری ذخیره کنید.
wget http://www.openss7.org/repos/tarballs/strx25-0.9.2.1.tar.bz2

 











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

هنگام دانلود:
$ wget http://www.openss7.org/repos/tarballs/strx25-0.9.2.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/strx25-0.9.2.1.tar.bz2
Saving to: `strx25-0.9.2.1.tar.bz2'

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

2009-09-25 11:15:30 (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_script.php?src_id=7701




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










ls

download_script.php?src_id=7701




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










wget -O taglist.zip http://www.vim.org/scripts/download_script.php?src_id=7701




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










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




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










wget -c http://www.openss7.org/repos/tarballs/strx25-0.9.2.1.tar.bz2




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

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










$ wget -b http://www.openss7.org/repos/tarballs/strx25-0.9.2.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




۱۱−نپذیرفتن فایل تایپ های(File Type) خاص با 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

هیچ نظری موجود نیست:

ارسال یک نظر