قبلا چند تاپیک با این موضوع در انجمن ایجاد شده. تصمیم گرفتم یک جمعبندی منظم از آنها ارائه کنم. مناسب برای کسانی که در ساعات رایگان شبانه دانلود میکنند.
فایلی مثلا با نام dl.txt بسازید و لینکهای دانلود مورد نظر را خطبهخط در آن وارد کنید. برای لینکهایی که نیاز به authorisation و وارد نمودن user name و password دارند به صورت زیر عمل شود.
http://USER:PASS@example.com/address/
برای بعضی از سایتها این روش کارساز نیست. روش دیگر این است که لینک را بدون تغییر بنویسیم و در عوض از دو آپشن
--http-user=USER
و
--http-passwd=PASSWORD
استفاده کنیم.
چکیده:
export EDITOR=nano
crontab -e
01 02 * * * aria2c -c -x16 -s16 -j2 -k 1M -i "/PATH/TO/dl.txt" -d "/PATH/TO/DOWNLOAD DIRECTORY/" -l dllog --log-level=notice
sudo crontab -e
59 06 * * * shutdown -h now
توضیح کامل:ابتدا در ترمینال وارد کنید
export EDITOR=nano
با اجرای این دستور، ادیتور پیشفرض به nano تغییر مییابد (اگر نباشد از قبل). بسیاری با vim راحت نیستند. از جمله خودم
حال بنویسید
crontab -e
برای شروع دانلود در ساعت مثلا دو و یک دقیقه، خط زیر را وارد کنید.
01 02 * * * aria2c -c -x16 -s16 -j2 -k 1M -i "/PATH/TO/dl.txt" -d "/PATH/TO/DOWNLOAD DIRECTORY/" -l dllog --log-level=notice
این دستور از دو بخش تشکیل شده. بخش اول:
01 02 * * *
این بخش، زمانبدی cron است. ساختمان آن به این صورت است:
minute hour day-of-month month day-of-week
پس برای شخصیسازی زمان شروع دانلود کافی است دو عدد اول را تغییر دهید. * نیز به معنای همواره صحیح است. پس فرمان زیر هر روز ماه، هر ماه سال و هر روز هفته در ساعت دو و یک دقیقه اجرا میشود.
بخش دوم:
aria2c -c -x16 -s16 -j2 -k 1M -i "/PATH/TO/dl.txt" -d "/PATH/TO/DOWNLOAD DIRECTORY/" -l dllog --log-level=notice
این بخش دستوری است که قرار است سر زمان مقرر اجرا شود.
ابتدا aria2 را اگر نصب نیست، نصب کنید. دستور بالا را بنده به شخصه با تجربه به آن رسیده و بهترین نتیجه را از آن میگیرم. معنای هر آپشن آن:
c : دانلود ادامه دار (resume). پس اگر فایلهای نیمه تمام را از دایرکتوری جابهجا نکنید، aria2 خود هر شب دانلود را ادامه میدهد.
x16 و s16 : برای دانلود هر فایل از 16 اتصال موازی استفاده میشود. (به حداکثر سرعت ممکن خواهید رسید)
j : تعداد دانلودهای موازی توسط این سوییچ تنظیم میگردد. مقدار پیشفرض آن 5 است. یعنی دانلود 5 فایل به طور همزمان.
k : به صورت پیشفرض آریا به ازای هر 20 مگابایت یک کانکشن میسازد. یعنی مثلا برای یک فایل 100 مگی، 5 کانکشن. اما با قرار دادن آرگومان 1M مقابل این آپشن، به ازای هر 1 مگابایت یک کانکشن ساخته میشود. در اینصورت تمام فایلهای بالای 16 مگ با بیشترین تعداد ممکن اتصال دانلود خواهند شد. و خب احتمالا میدانید رمز دستیابی به چنین سرعتی، همین تعداد بالای اتصال است.
i : آدرس فایل حاوی urlهای دانلود.
d : آدرس دایرکتوری دانلود.
l : با توجه به اینکه پردازهی aria2 در پسزمینه انجام میشود، با این آپشن جزییات دانلود در فایلی با نام dllog در دایرکتوری home ذخیره میشود.
پس تا اینجای کار یک دانلود پرسرعت داریم که هر بامداد سر ساعت شروع میشود و جزییات آن در فایل dllog قابل رویت است.
با فشردن Ctrl+X و y و Enter تغییرات را ذخیره کنید. حال میخواهیم زمان خاموش شدن سیستم را تنظیم کنیم که به دلیل آنکه فرمان مورد استفاده به دسترسی ریشه نیازمند است، آن را داخل cron کاربر ریشه میگذاریم:
sudo crontab -e
اگر ساعت خاموش شدن خودکار مثلا شش و پنجاه و نه دقیقه باشد، خط زیر را وارد کنید.
59 06 * * * shutdown -h now
ذخیره کرده و خارج شوید.
کار تمام است.اکنون داخل ترمینال بنویسید:
crontab -l
باید چیزی شبیه این ببینید:
01 02 * * * aria2c -c -x16 -s16 -j2 -k 1M -i "/PATH/TO/dl.txt" -d "/PATH/TO/DOWNLOAD DIRECTORY/" -l dllog --log-level=notice
پ.ن. ۱: در تمام این مطلب باید به جای PATH/TO/dl.txt/ و /PATH/TO/DOWNLOAD DIRECTORY/ ، آدرسهای محلی سیستم خودتان را جایگزین کنید.
پ.ن. ۲: به شخصه ترجیح میدهم سیستم خاموش نشده و به جای آن suspend شود. برای این منظور به جای shutdown، از این دو خط استفاده کنید:
59 06 * * * pkill aria2c
00 07 * * * pm-suspend
پ.ن. ۳: لینکهای دانلود شده به طور خودکار از فایل dl.txt حذف نخواهند شد.
پ.ن. ۴: شاید بخواهید در ساعات روز و به طور دستی دانلود را از سر بگیرید. برای این منظور کافی است یک alias تعیین کنید.
دستور زیر را در ترمینال وارد کنید:
echo "alias resume='aria2c -c -x16 -s16 -j2 -k 1M -i "/PATH/TO/dl.txt" -d "/PATH/TO/DOWNLOAD DIRECTORY/" -l dllog --log-level=notice'" >> ~/.bash_aliases
اگر نمیدانید این دستور چه میکند؛ یک alias تعریف میکند با نام resume (به جای resume هر فرمان دلخواه دیگری را نیز میتوان نوشت. به شرط آنکه این فرمان آزاد باشد و برنامهی دیگری از آن استفاده نکند.) و آن را به فایل bash_aliases./~ اضافه میکند. از این به بعد هر گاه دستور resume را داخل ترمینال صادر کنید، انگار عبارت داخل کوتیشن ' ' را وارد کردهاید و دانلود آغاز میگردد.
پ.ن. ۵: گنو/لینوکس فوقالعاده است! میتوانید بیرون آمدن از حالت sleep یا حتی روشن شدن رایانه را نیز خودکار کنید. این تاپیک راهنمای شما است:
http://forum.ubuntu.ir/index.php?topic=59242.0