ماجرا از اینجا شروع شد که تو خونه پدری، یه کامپیوتر خیلی خسته قدیمی وجود داشت که بعد از اینکه لپتاپ خریدن داشت گوشه خونه خاک میخورد و کسی ازش استفاده نمیکرد. منم که سرم درد میکنه برای ور رفتن با این چیزا، تصمیم گرفتم بیارمش خونه تا بعدا فکر کنم ببینم باهاش چیکارا میشه کرد.
یه مدتی که گذشت فرصت شد در موردش فکر کنم، دیدم چون قدرت پردازشی خاصی نداره، تقریبا هیچ کار جدیای نمیشه باهاش کرد. تنها چیزی که توجهم رو جلب کرد، هارد ۵۱۲ گیگابایتی بود که تا حد خوبی، خالی بود. بعد از اون هم نگاهم افتاد به این:
اگر از TD-Lte استفاده کرده باشید، متوجه شدید که اپراتور محترم ایرانسل به هر نحوی هست میخواد یه اینترنت شبانه بکنه تو پاچتون تا نونی که میبره سر سفره زن و بچه حلال باشه و قیمت بستههاش منطقی بشه. خب دیگه بقیه ماجرا قابل حدس هست. حالا نیاز هست که یه اسکریپت ساده بنویسیم. نتیجه اسکریپت هم باید این باشه: شبها که ما میخوابیم، این سیستم بیدار باشه (بشه!) و تا جایی که میتونه دانلود کنه.
در ادامهی این پست قصد دارم نحوه کانفیگ کردن یک سیستم رو برای اینکار توضیح بدم. قبل از شروع این رو بگم که قرار نیست خیلی فنی باشه این پست و صرفا جنبهی گیکبازی داره و میخوایم باهم یذره تفریح فنی کنیم :) علاوه بر این، راهی که انتخاب شده قطعا بهترین راه نیست و صرفا خواستم در خلال این کارا یذره چیز میز هم یاد بگیریم. (راه ساده استفاده از یک برنامه دانلود منیجر به همراه schedular هست)
خب دیگه، بریم سراغ کار اصلی:
۳. بعد از این مرحله باید یکاری کنیم که این سیستم سر ساعتی که ما میخوایم بیدار بشه! برای اینکار باید وارد تنظیمات BIOS بشیم. اگه os عوض کرده باشید قبلا، برای تغییر اولویت بوت شدن سیستم، حتما یه سری بهش زدید. در واقع همون جایی هست که برای وارد شدن بهش، هر کلیدی دم دست هست رو کیبورد رو میزنیم تا واردش بشیم :)
هرکلید که برای شوخی بود، ولی رو سیستمهای مختلف، با فشردن کلیدهای متفاوتی میتونید واردش بشید:
بعد از اینکه وارد شدید، دنبال تنظیمات power بگردید. معمولا اسمش هست power management setup. بعدش هم یجایی وجود داره به اسم resume time، اینجا همونجایی هست که میشه تنظیم کرد سیستم خسته ما چه ساعتی از خواب بیدار بشه.
۴. حالا باید به این فکر کرد که خیلی هم بیدار نباشه! در واقع باید تو انتهای بازه، خاموش بشه که از حجم عادی مصرف نکنه. ساعتی که نت شبانه ایرانسل کار میکنه بین بازهی ۲ تا ۷ صبح هست، پس در واقع، بعد از روشن شدن، حدود ۵ ساعت باید سیستم کار کنه و بعدش بره برای لالا. برای این بخش هم راه حلهای مختلفی وجود داره، که من از crontab استفاده کردم و کامند زیر رو تو کانفیگش قرار دادم.
@reboot /bin/sleep 5h; /sbin/poweroff
خط بالا داره میگه بعد هر بار روشن شدن، با یک تاخیر ۵ ساعته سیستم رو خاموش کن.
۵. در مرحله آخر هم باید فایلها رو تو زمانی که سیستم روشنه منتقل کنیم بهش. از بخت خوب، یکی دو تا از سرورهایی که دستم هست، ترافیکشون جز ترافیک داخلی محسوب میشه و همونطور که میدونید از نظر هزینهای نصف قیمت هست، در نتیجه در طول روز، فایلهایی که میخوام بهشون رو سیستم خونه دسترسی داشته باشم رو روی سرور دانلود میکنم و شبانه باید سرور با سیستم خستهی خونه sync بشه.
برای این کار از زبان اسکریپتی پایتون استفاده کردم، کد نهایی رو میتونید تو این repo ببینید:
کد تا حد خوبی خواناست و ساده، اینجا فقط سعی میکنم ایدههای کلی که استفاده شده رو توضیح بدم:
تقریبا یکی دو ماهی هست که دارم با این روش فیلم و آموزش و برنامه و ... دانلود میکنم و حقیقتا وقتی ایمیل اتمام دانلود میاد خیلی حس خوبی به آدم منتقل میکنه :) امیدوارم براتون مفید بوده باشه و کلیت قضیه منتقل شده باشه. همونطور که اول متن هم گفتم، خیلی راحت میشه با یک برنامه دانلود منیجر همه این داستانها رو انجام داد، تو این متن هدف این بوده با چیزایی که بلدیم یه چیزی بسازیم که از استفادش خوشحال بشیم.
در آخر ممنون از وقتی که گذاشتید برای مطالعه متن. این اولین پستی بوده که گذاشتم و امیدوارم بتونم ادامه بدم. ممنون میشم نظراتتون رو برام بنویسید تا مطالب بعدی بهتر باشند.
موفق باشید :)