منتديات شبكة الجيل الجديد للتكنولوجيا
 
أقسام موقع ITNAT        
 
 
 

 
 

شاهد الدورات المتاحة الآن وصوت ماهي الدورة الأفضل بالنسبة لك،، اضغط هنا

 

 
 
العودة   ITNAT.COM Forums > الأرشيف > أرشيف منتدى ITNAT لغاية تاريخ 20 - 5 - 2008 > الشبكات العام > منتدى اللينوكس والأنظمة مفتوحة المصدر

منتدى اللينوكس والأنظمة مفتوحة المصدر منتدى يهتم بامور اللينوكس والأنظمة مفتوحة المصدر كما يعنى بدراسة هذه الأنظمة و مقارنتها بغيرها من الأنظمة ذات المصادر المغلقة

رد
 
أدوات الموضوع طرق مشاهدة الموضوع
قديم 17-02-2007, 09:22 AM   #1
ahmadix
Moderator
 
تاريخ التسجيل: Jul 2005
المشاركات: 271
افتراضي شرح wget لتحميل الملفات و المواقع

السلام عليكم و رحمة الله و بركاته

سأحاول في هذا الموضوع عمل شرح مبسط لأداة تحميل الملفات و المواقع wget، و التي تعمل من سطر اﻷوامر.

فإذا كنت من محبي سطر اﻷوامر، فإنك لن تجد -بإذن الله- أي صعوبات في استخدام هذه اﻷداة.

و أما إن كنت لا تفهم شيئا في سطر اﻷوامر فلا تخف، فإن wget برأيي من أفضل اﻷدوات لتعلم و تعود استعمال سطر أوامر اللينكس.




1. مقدمة
Gnu Wget برنامج مجاني يوفر أداة قوية و مبسطة لتحميل الملفات بواسطة بروتوكولات http و https و ftp، و هي البروتوكولات اﻷكثر استعمالا في الشبكة العنكبوتية. و من أبرز مميزات هذا البرنامج :

- أنه مكتوب ب لغة C مما يسهل حمله على مختلف أنظمة التشغيل، وليس فقط نظام اللينكس.

- غير تحاوري مع المستخدم، بمعنى أنه لا يحتاج إلى حضور دائم و تدخلات من المستخدم أثناء التنفيذ ﻷنه يعمل في الخلفية background. و هذا يعني أن المستخدم بإمكانه إنهاء الجلسة و غلق الواجهة الرسومية دون أن يؤدي ذلك إلى وقف التحميل ب wget. و هذا يسهل كذلك استعمال wget في سكربتات أو في منفذ المهام cron.

- في حالة الانقطاع المفاجئ للتحميل فإن wget بإمكانه إكمال التحميل من آخر نقطة دون الحاجة إلى إعادة تحميل الملف كاملا.

- التحميل الحلقي أو الدوري (recursive)، و هو المستعمل لتحميل مواقعhttp أو شجرة سرفرftp بالكامل و ذلك بتتبع الروابط الموجودة في أول ملف محمل و تحميلها ثم إعادة العملية على كل ملف بطريقة دورية. و هذه الطريقة تمكنك من عمل نسخة محلية لموقع في الانترنت لزيارتها في أي وقت بدون اتصال على الانترنت.

- إمكانية التحكم في سرعة التحميل، و الفائدة من هذا هي وضع حد للسرعة حتى لا تستهلك الباندويث بأكمله في حالة رغبتك الدخول على الانترنت في نفس الوقت.

و رغم هذه المزايا و غيرها فإن wget لا يخلو من بعض العيوب و أهمها :

- عدم تحمل عدد كبير من البروتوكولات. حيث أن wget لا يسمح بالتحميل باستحمال بروتوكولات مثل rtsp و mms و p2p. و هذا راجع إلى التركيز الكبير على http و ftp.

- عدم القدرة على تتبع روابط الجافا سكربت.

- العدد الهائل من الخيارات المتوفرة مما قد يشكل متاهة للمستخدم و كذلك بعض المفاجئات عند استخدام بعض الخيارات مع البعض.


2. التحميل و التثبيت
يوجد احتمال كبير لوجود wget في نظامك. في حالة عدم وجودها فهذا عنوان التحميل :
[عزيزي الزائر يتوجب عليك التسجيل للمشاهدة الرابطللتسجيل اضغط هنا]

المرجو تحميل آخر نسخة (حاليا 1.10.2)، ثم تركيبها بالطريقة المعتادة :
كود:
$ tar zxvf wget-1.10.2.tar.gz
$ cd wget-1.10.2
$ ./configure
$ make
$ su
Passwd ...
# make install
يمكنك التأكد من التركيب باﻷمر التالي الذي سوف يعطيك معلومات عن النسخة المستعملة :
كود:
$ wget -V
GNU Wget 1.10.2

Copyright (C) 2005 Free Software Foundation, Inc.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Originally written by Hrvoje Niksic <hniksic@xemacs.org>.


3. أمثلة بسيطة للاستعمال

المثال اﻷول : سنحاول تحميل سورة الفاتحة من هذا العنوان : [عزيزي الزائر يتوجب عليك التسجيل للمشاهدة الرابطللتسجيل اضغط هنا]

افتح الطرفية و ادخل إلى المجلد الذي تريد التحميل إليه ثم نفذ اﻷمر التالي :
كود:
$ wget http://quran.islamway.com/hudhaifi/001.mp3
إذا صار كل شيء على ما يرام فمخرج اﻷمر سيكون على الشكل التالي :
كود:
--11:25:00--  http://quran.islamway.com/hudhaifi/001.mp3
           => `001.mp3.1'
Resolving quran.islamway.com... 204.187.100.94
Connecting to quran.islamway.com|204.187.100.94|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 246,410 (241K) [audio/mpeg]

100%[=====================================================>] 246,410       16.62K/s    ETA 00:00

11:25:18 (15.72 KB/s) - `001.mp3' saved [246410/246410]
لاحظ أن التحميل بدأ بالضبط في الساعة 11:25:00 و انتهى في 11:25:18 أي بعد 18 ثانية. و أن حجم الملف 241 كيلو، و السرعة المتوسطة للتحميل هي 15.72 كيلو بايت في الثانية.

المثال الثاني : اﻵن سنحاول تحميل سورة البقرة و حجم الملف هو 25 م ب. الملف أضخم من ملف سورة الفاتحة، إذن سيأخذ وقتا أطول مع احتمال مشكلين : اﻷول هو انقطاع التحميل في الوسط لسبب من اﻷسباب. و الثاني هو استعمال wget للباندويث بأكمله مما سيؤثر على سرعة التصفح إذا أردت الدخول على الانترنت في نفس الوقت. لعلاج هذين المشكلين سنستعمل اﻷمر مع خيارات ثانوية على الشكل التالي :
كود:
$ wget -c --limit-rate=10k http://quran.islamway.com/hudhaifi/002.mp3
النتيجة ستكون على هذا الشكل :
كود:
--11:47:30--  http://quran.islamway.com/hudhaifi/002.mp3
           => `002.mp3'
Resolving quran.islamway.com... 204.187.100.94
Connecting to quran.islamway.com|204.187.100.94|:80... connected.
HTTP request sent, awaiting response... 206 Partial Content
Length: 26,472,448 (25M), 26,442,112 (25M) remaining [audio/mpeg]

 1% [>                                                ] 379,251       10.01K/s        ETA 42:28
لاحظ أن سرعة التحميل لا تتجاوز 10.01 كيلو في الثانية. و السبب في ذلك هو استعمال الخيار التالي:
كود:
--limit-rate=10k
فالحرف k يعني كيلو، كذلك يمكن استعمال الحرفين m و g (ميغا و جيغا). في حالة عدم وضع أي حرف فإن السرعة تكون بالبايت في الثانية.

الخيار c يعني continue و هو يسبب إكمال تحميل سابق من آخر نقطة دون الحاجة إلى إعادة التحميل من البداية. فمثلا إذا قطعنا التحميل السابق و أردنا إكماله فيما بعد فاﻷمر هو نفسه (أو معدل إذا أردت حذف أو تغيير خيار تحديد السرعة):
كود:
$ wget -c --limit-rate=10k http://quran.islamway.com/hudhaifi/002.mp3
و المخرج سيكون على هذا الشكل :
كود:
--11:57:24--  http://quran.islamway.com/hudhaifi/002.mp3
           => `002.mp3'
Resolving quran.islamway.com... 204.187.100.94
Connecting to quran.islamway.com|204.187.100.94|:80... connected.
HTTP request sent, awaiting response... 206 Partial Content
Length: 26,472,448 (25M), 26,442,112 (25M) remaining [audio/mpeg]

 5% [+=>                                                ] 1,553,139     16.61K/s    ETA 24:29
لاحظ أن ما سبق تحميله يشار إليه بعلامة زائد.



4. أمثلة متقدمة

اعلم أن wget توفر عددا هائلا من الخيارات و طرق التحميل التي قد تكتشفها إذا دعتك الضرورة لاستعمالها، و لن أتطرق في هذه الفقرة إلا إلى البعض منها و التي أعتبرها ذات أهمية كبرى.

المثال اﻷول : تغيير مسار التحميل.
المسار الافتراضي الذي تحفظ فيه الملفات المحملة هو المجلد الحالي الذي نفذ منه أمر التحميل. لتغيير هذا المسار إلى مجلد معين نستخدم الخيار P- :
كود:
$ wget -c http://quran.islamway.com/hudhaifi/002.mp3 -P /home/amine/quran
المثال الثاني : التحميل في الخلفية (background).
لا شك أنك لاحظت أنه عند التنفيذ العادي ل wget من سطر اﻷوامر فإن البرنامج يستحوذ على سطر الأوامر في الطرفية و لا يمكنك عمل أي شيء إلا بعد اكتمال أو وقف التحميل. لجعل التحميل في الخلفية والاستمرار على العمل في الطرفية نستخدم الخيار b- هكذا :
كود:
$ wget -c -b http://quran.islamway.com/hudhaifi/002.mp3
و النتيجة تكون على هذا الشكل :
كود:
$ wget -c -b http://quran.islamway.com/hudhaifi/002.mp3
Continuing in background, pid 19025.
Output will be written to `wget-log'.
$
لاحظ أن البرنامج يشير في السطر اﻷول إلى أن رقم العملية (pid) هو 19025. و في السطر الثاني يشير إلى أن خرج العملية سيحفظ في الملف wget-log. ثم يعيد التحكم إليك.
و هذه نظرة على محتوى الملف wget-log:
كود:
--15:48:38--  http://quran.islamway.com/hudhaifi/002.mp3
           => `002.mp3'
Resolving quran.islamway.com... 204.187.100.94
Connecting to quran.islamway.com|204.187.100.94|:80... connected.
HTTP request sent, awaiting response... 206 Partial Content
Length: 26,472,448 (25M), 23,767,085 (23M) remaining [audio/mpeg]

       [ skipping 2600K ]
 2600K ,,,,,,,,,, ,,,,,,,,,, ,,,,,,,,,, ,,,,,,,,,, ,......... 10%   15.25 KB/s
 2650K .......... .......... .......... .......... .......... 10%   16.45 KB/s
 2700K .......... .......... .......... .......... .......... 10%   16.36 KB/s
 2750K .......... .......... .......... .......... .......... 10%   16.80 KB/s
 2800K .......... .......... .......... .......... .......... 11%   16.36 KB/s
لإنهاء عملية التحميل، نستخدم اﻷمر kill مع رقم العملية و الخيار 9-:
كود:
$ kill -9 19025
المثال الثالث : تحميل مجموعة من الروابط محفوظة في ملف نصي و هذا شيء مفيد جدا.
نريد الآن تحميل عددا من السور القرآنية دون إعادة تنفيذ اﻷمر لكل سورة. سنستعمل إذن ملفا يحتوي على روابط السور كل رابط في سطر مستقل. مثلا الملف url_quran.txt لتحميل العشر سور اﻷخيرة :
كود:
$ cat url_quran.txt
http://quran.islamway.com/hudhaifi/105.mp3
http://quran.islamway.com/hudhaifi/106.mp3
http://quran.islamway.com/hudhaifi/107.mp3
http://quran.islamway.com/hudhaifi/108.mp3
http://quran.islamway.com/hudhaifi/109.mp3
http://quran.islamway.com/hudhaifi/110.mp3
http://quran.islamway.com/hudhaifi/111.mp3
http://quran.islamway.com/hudhaifi/112.mp3
http://quran.islamway.com/hudhaifi/113.mp3
http://quran.islamway.com/hudhaifi/114.mp3 
$
لتحميل الروابط الموجودة بهذا الملف نستعمل الخيار i- على هذا الشكل :
كود:
$ wget -c -i url_quran.txt
المثال الرابع : التحميل من مواقع ftp أو http محمية بكلمة السر
العديد من مواقع ال ftp و بعض المواقع http تستعمل حماية بواسطة اسم المستخدم و كلمة السر حيث لا يمكنك الدخول إلى هذه المواقع و التحميل منها إلا بعد إدخال معلومات التعريف. و الصورة التالية تبين مثالا لأحد المواقع الذي يطلب ذلك :


نفترض أنك تريد تحميل الملف test.zip من عنوان http التالي مثلا: [عزيزي الزائر يتوجب عليك التسجيل للمشاهدة الرابطللتسجيل اضغط هنا]
و أن معرفك هو user01 و كلمة السر هي pass01
طريقة التحميل تكون على الشكل التالي :
كود:
$ wget -c --http-user=user01 --http-password=pass01 http://pub.server.com/test/test.zip
و إذا كان الخادم من نوع ftp مثل :
[عزيزي الزائر يتوجب عليك التسجيل للمشاهدة الرابطللتسجيل اضغط هنا]
فإن التحميل يتم بالطريقة التالية :
كود:
$ wget -c --ftp-user=user01 --ftp-password=pass01 ftp://pub.server.com/test/test.zip
المثال الخامس : التحميل من وراء بروكسي
إذا كان جهازك متواجدا وراء بروكسي فقد تحتاج إضافة عبارة قبل الأمر ليصبح كما يلي :
كود:
$ http_proxy=192.168.2.19:3128 wget http://quran.islamway.com/hudhaifi/001.mp3
حيث عنوان البروكسي هو 192.168.2.19
و البورت المستخدم هو 3128

و إذا كان البروكسي يتطلب معرف و كلمة السر فإنه يتم إدراجهما في الأمر بالطريقة التالية :
كود:
$ http_proxy=192.168.2.19:3128 wget --proxy-user=user01 --proxy-password=pass01 http://quran.islamway.com/hudhaifi/001.mp3
ملاحظة : في بعض الحالات يمكنك التحميل مرورا بالبروكسي دون حاجة إلى إضافة http_proxy في بداية السطر، و ذلك لأن قيمتها قد تكون أصلا محفوظة في متغيرات النظام.



5.التحميل الحلقي recursive download
إن من أهم مميزات برنامج wget إمكانية التحميل الحلقي الذي يمكنك من تحميل موقع كامل أو فرع من شجرة الموقع من الانترنت إلى جهازك.
من المعلوم أن شبكة الانترنت تضم مجموعة كبيرة من السرفرات المرتبطة فيما بينها بطريقة عنكبوتية. و كل خادم من نوع ftp أو http يضم نظام ملفات شجري. لتحميل الموقع بالكامل يجب تحميل كل روابط الموقع بطريقة حلقية و هو المسمى ب recursive download. فكل رابط محمل توجد فيه روابط أخرى يجب تحميلها و هكذا دواليك إلى أن يتم تحميل جميع ملفات الموقع. و حتى ندخل في صلب الموضوع فهذا أول تطبيق لفهم الطريقة:

المثال اﻷول :

نريد أن نحمل هذا الموقع مثلا : [عزيزي الزائر يتوجب عليك التسجيل للمشاهدة الرابطللتسجيل اضغط هنا]
بعد الدخول إلى المجلد الذي نريد التحميل إليه ننفذ اﻷمر التالي :
كود:
$ wget -c -r -k http://www.ibnbaz.org.sa
أو
كود:
$ wget -crk http://www.ibnbaz.org.sa
شرح الخيارات :
c- سبق شرحه
r- هنا إشارة إلى التحميل الحلقي recursive. بدون هذا الخيار فإن التحميل سيقتصر على الصفحة الرئيسية من الموقع ثم يتوقف.
k- إشارة إلى تحويل الروابط. فعند الانتهاء من تحميل الموقع فإن البرنامج يحول جميع الروابط كي تشير إلى الملفات المحملة على جهازك بدل الملفات التي في الخادم. و أما روابط الملفات التي لم تحمل فإنها تحول إلى روابط مباشرة إلى عنوان هذه الملفات في الانترنت. و هذا مما يسهل التصفح على النسخة المحملة.

بعد نهاية التحميل ستجد مجلدا باسم [عزيزي الزائر يتوجب عليك التسجيل للمشاهدة الرابطللتسجيل اضغط هنا] يحوي الموقع المحمل.


المثال الثاني :
الآن نريد تحميل محتوى مجلد واحد من الموقع دون تحميل الموقع بالكامل. نأخذ كمثال هذا الموقع الذي يحتوي على مجموعة من برامج و توزيعات اللينكس:
[عزيزي الزائر يتوجب عليك التسجيل للمشاهدة الرابطللتسجيل اضغط هنا]
نريد أن نحمل جميع اﻷقراص الخاصة بتوزيعة السلاكوير الموجودة في المجلد slackware و بالضبط في هذا العنوان:
[عزيزي الزائر يتوجب عليك التسجيل للمشاهدة الرابطللتسجيل اضغط هنا]
لو اتبعنا طريقة تحميل المثال اﻷول فإن هذا سيؤدي إلى تحميل الموقع بأكمله بما فيه جميع المجلدات اﻷخرى، إذن لتفادي ذلك فإن اﻷمر هو :
كود:
$ wget -c – r -k -np http://mirror.aarnet.edu.au/pub/slackware
لاحظ np- و معناه no parent فالبرنامج لا يحمل المجلد اﻷب للمجلد slackware و بالتالي فإنه لا يحمل محتواه.


المثال الثالث :
لتحميل الملفات ذات امتداد معين. لتحميل جميع الملفات ذات الامتداد pdf فقط من هذا الموقع :
[عزيزي الزائر يتوجب عليك التسجيل للمشاهدة الرابطللتسجيل اضغط هنا]
نتبع الطريقة التالية :
كود:
wget -c -r -k -A.pdf http://www.free-itebooks.com
لاختيار أكثر من امتداد واحد مثلا pdf و ps و zip . نفصل بين الامتدادات بعلامة فاصلة :

كود:
$ wget -c -r -k -A.pdf,ps,zip http://www.free-itebooks.com

انتهى بحمد الله. و السلام عليكم و رحمة الله وبركاته.

__________________
ماحترق لسان بقوله نار..........ولا اغتنى فقير بقوله الف دينار


ahmadix غير متواجد حالياً  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
رد مع اقتباس
قديم 17-02-2007, 01:41 PM   #2
kingssongs
مراقب قسم الكتب الإلكترونية
 
الصورة الرمزية kingssongs
 
تاريخ التسجيل: Feb 2006
الدولة: ♥ العراقـــ ♥
المشاركات: 548
افتراضي

ما شاء الله عليك اخي احمد

يعني انته رايد تكسبنا بكل الطرق

مبروك عليك كسبتني معكم في درب الأنظمه المفتوحة المصدر

وجاري تنزيل الأداة

تحياتي يا طيب
__________________
[عزيزي الزائر يتوجب عليك التسجيل للمشاهدة الرابطللتسجيل اضغط هنا]
kingssongs غير متواجد حالياً  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
رد مع اقتباس
رد


الذين يشاهدون محتوى الموضوع الآن : 1 ( الأعضاء 0 والزوار 1)
 
أدوات الموضوع
طرق مشاهدة الموضوع

تعليمات المشاركة
لا تستطيع كتابة مواضيع
لا تستطيع كتابة ردود
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

كود [IMG] متاحة
كود HTML معطلة
Trackbacks are معطلة
Pingbacks are معطلة
Refbacks are معطلة
الانتقال السريع إلى

 
     
 
الساعة الآن: 11:50 AM


Powered by vBulletin® Version 3.6.7
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
حقوق الطبع محفوظة للجيل الجديد للتكنولوجيا
 

Copyright ©2008 ITNAT Networks, Inc. All rights reserved.

 

Search Engine Friendly URLs by vBSEO 3.1.0 ©2007, Crawlability, Inc.