Aria2

اذا كُنت حديث الانتقال من نظام Windows الى Linux فأنت غالباً تبحث عن بديل لبرنامج IDM وهناك بديل فعال وقوي له وهي اداة Aria2 وهي اداة غنيه عن التعريف مع مزايا لاتتوفر في IDM والاهم انها مجانيه.

بعض من مزاياها بأختصار

  1. تتدعم تعدد الـ Threads
  2. تدعم التنزيل من عدة بروتوكولات منها HTTP/S , FTP ,SFTP,BitTorrent
  3. تدعم تنزيل عدة ملفات من عدة مصادر وبروتوكولات في أنً واحد
  4. يمكن التعامل مع Aria2 من الطرفيه او عن طريق المتصفح او عن طريق الواجهة الرسوميه
  5. تعمل على عدة أنظمة تشغيل Linux ,Windows,macOS,Android الخ

وسأقوم بتغطية التعامل مع Aria2 عبر الطرفيه

اولاً تثبيت Aria2 في توزيعة فيدورا

sudo dnf install aria2

والتعامل مع Aria2 سيكون عبر الأمر

aria2c

لتنزيل ملف سيكون الأمر كالتالي

aria2c http://speedtest.xs4all.net/files/10mb.bin

لتنزيل عدة ملفات

aria2c http://speedtest.xs4all.net/files/10mb.bin http://speedtest.xs4all.net/files/25MB.bin

لتنزيل ملف من عدة مصادر

aria2c http://speedtest.xs4all.net/files/10mb.bin https://mirror.nforce.com/pub/speedtests/10mb.bin

ستقوم Aria2 بتنزيل الملف 10mb.bin من الخادمين في أنً واحد وسيتم توزيع الحمل عليهما


عند تنزيل ملف سيتم حفظه في نفس مجلد العمل بشكل افتراضي ولتحديد مجلد حفظ الملفات قم بتمرير الخيار dir

aria2c --dir=/tmp/ http://speedtest.xs4all.net/files/10mb.bin

لحفظ الملف بأسم مختلف قم بتمرير الخيار out

aria2c --dir=/tmp/ --out=test.bin http://speedtest.xs4all.net/files/10mb.bin

لتنزيل عدة ملفات في أنً واحد , قم بوضعهم جميعاً في ملف نصي. كل رابط في سطر كالاتي

  • إذا اردت تنزيل ملف من عدة مصادر ضع روابط الملف في نفس السطر وافصل بينهم بفراغ كما في السطر الاول
  • اذا اردت تمرير خيارات مختلفه لكل ملف قم بوضع كل خيار في سطر جديد يلي الرابط مثل السطر ال 2 و 3 سيتم حفظ الملف في مجلد /tmp/

وفي الاسطر 4 ,5 ,6 سيتم حفظ الملف بأسم test.bin في مجلد /tmp/downloads/


لتحديد عدد الملفات المراد تنزيلهم كل مره, قم بتمرير الخيار max-concurrent-downloads

aria2c --max-concurrent-downloads=2 http://speedtest.xs4all.net/files/10mb.bin http://speedtest.xs4all.net/files/25MB.bin https://speed.hetzner.de/100MB.bin

ستقوم Aria2 بتنزيل عدد 2 ملفات في آنً واحد


دائماً مايحدث إنقطاع في الإتصال اثناء التنزيل , ولمواصلة تنزيل الملف قم بتمرير الخيار continue

aria2c --continue http://speedtest.xs4all.net/files/10mb.bin

في حالة إنقطع الاتصال اعد تنفيذ الامر وسيتم مواصلة التنزيل


لتحديد عدد الثواني قبل ان تعلن Aria2 فشل الإتصال قم بتمرير الخيار connect-timeout

aria2c --connect-timeout=120 http://speedtest.xs4all.net/files/10mb.bin

ستعلن Aria2 فشل الإتصال بالخادم بعد 120 ثانيه


لتحديد عدد الثواني قبل ان تعلن Aria2 فشل تنزيل الملف قم بتمرير الخيار timeout

aria2c --connect-timeout=10 --timeout=90 http://speedtest.xs4all.net/files/10mb.bin

ستعلن Aria2 فشل الإتصال بالخادم بعد مرور 10 ثواني , وفي حالة نجح الإتصال ستعلن Aria2 فشل تنزيل الملف بعد مرور 90 ثانيه


لتحديد عدد الإتصالات لكل ملف يتم تنزيله قم بتمرير الخيار max-connection-per-server

aria2c --max-concurrent-downloads=2 --max-connection-per-server=8 http://speedtest.xs4all.net/files/10mb.bin http://speedtest.xs4all.net/files/25MB.bin

ستقوم Aria2 بأنشاء 8 إتصالات لكل ملف , وهنا ستقوم بإنشاء 16 إتصال لعدد 2 ملفات يجري تنزيلهم في آنً واحد


عند تنزيل ملف تقوم Aria2 بتقسيم الملف الى عدة اجزاء وحجم كل جزاء بشكل افتراضي 20MB وذلك يؤثر على عدد الاتصالات , فإذا كان حجم الملف المراد تنزيله 10MB وقد وضعت عدد الاتصالات 8 فسيتم انشاء اتصال واحد لان حجم الملف اصغر من اقل جزاء للتقسيم.

ولتحديد اقل جزاء للتقسيم قم بتمرير الخيار min-split-size

aria2c --max-concurrent-downloads=2 --max-connection-per-server=8 --min-split-size=1M http://speedtest.xs4all.net/files/10mb.bin http://speedtest.xs4all.net/files/25MB.bin

يمكنك استخدام K للاشارة الى Kilobyte او M للاشارة الى Megabyte


لتحديد عدد مرات إعادة الإتصال بعد فشله قم بتمرير الخيار max-tries

aria2c --max-tries=10 http://speedtest.xs4all.net/files/10mb.bin

ستقوم Aria2 بإعادة المحاولة 10 مرات , وفي حالة الفشل ستقوم بتنزيل الملف التالي او الخروج


لتحديد وقت الإنتظار قبل كل محاوله قم بتمرير الخيار retry-wait

aria2c --max-tries=10 --retry-wait=3 http://speedtest.xs4all.net/files/10mb.bin

ستقوم Aria2 بإعادة المحاوله 10 مرات , والإنتظار 3 ثواني كل مره


في حالة اردت التحقق من صحة الملف بعد التنزيل قم بتمرير الخيار checksum يحتوي على نوع الهاش بالإضافه للهاش كالاتي

aria2c --checksum=sha-256=bd5c9ee34b7698eb0852a320da4fbdf616222a493d99f6054aa96afa96207bfb http://mirror.0x.sg/fedora/linux/releases/28/Workstation/x86_64/iso/Fedora-Workstation-Live-x86_64-28-1.1.iso

في حالة نجح التحقق ستكون حالة الخروج = 0 ,وفي حالة فشل التحقق ستكون حالة الخروج = 32

يمكن التحقق من حالة الخروج عبر طباعة المتغير $?

تحتوي Aria2 على عدة احداث يتم تنفيذهم في اوقات معينه ومنهم

  • on-download-pause يتم تنفيذه عند إيقاف التنزيل من قبل المستخدم
  • on-download-complete يتم تنفيذه عند إنتهاء التنزيل
  • on-download-start يتم تنفيذه عند بداء التنزيل
  • on-download-error يتم تنفيذه عند حدوث خطاء
  • on-download-stop يتم تنفيذه عند توقف التنزيل بشكل عرضي

فإذا اردت إيقاف تشغيل الحاسوب بعد إنتهاء التنزيل سيكون الأمر كالأتي

aria2c --on-download-complete=shutdown http://speedtest.xs4all.net/files/10mb.bin

ولتنفيذ عدة اوامر او تمرير عدة خيارات للامر المنفذ في الحدث , قم بحفظ الأمر في ملف bash واستدعي الملف بنفس الطريقه


ولتفادي اعادة كتابة الخيارات في كل مره تقوم بتنزيل ملف قم بحفظ الخيارات في ملف aria2.conf (بدون -- في البدايه)

واحفظ الملف في المسار

$HOME/.aria2/