اگر شما هم از سرویس های شرکت صبانت (Sabanet) یا شاتل و یا هر سرویس دهنده ی دیگری استفاده می کنید که سرویس شبانه ی رایگان می دهد ولی این سرویس ها با user و password جداگانه ارائه می شوند و در ضمن سیستم عامل شما یکی از انواع لینوکس یا یونیکس است، احتمالا برنامه ای که می خواهم معرفی کنم خیلی برایتان مفید خواهد بود.
ممکن است شما هم خیلی دلتان بخواهد به جای اینکه صبح ساعت ۳ از خواب ناز بیدار شوید و برای کانکت شدن به اینترنت تلاش کنید یک نرم افزار این کار را به صورت خودکار و اتوماتیک و با برنامه ای که قبلا به آن داده اید انجام دهد.
راه های schedule کردن زیادی برای لینوکس وجود دارد ولی اگر شما هم مثل من تازه کار هستید احتمالا عدم آشنایی با لینوکس شما را با مشکلات زیادی رو به رو می کند.
همان طور که می دانید یکی از نقاط قوت لینوکس که آن را خیلی سر تر از ویندوز می کند داشتن یک خط فرمان بسیار قوی است. آنچه شما در ویندوز DOS می نامید در سیستم عامل های خانواده ی یونیکس (شامل لینوکس) bash نامیده می شود. در وصف قدرت bash همین بس که کاری نیست که نتوان در آن انجام داد و حتی بسیاری از کارها را فقط می توان در bash انجام داد.
کسانی که به زبان برنامه نویسی تحت شل لینوکس (اسکریپت نویسی) آشنا باشند می توانند از این قدرت بالا استفاده کنند. برنامه ی امروز یک مثال ساده و خوب از کاربرد برنامه نویسی در bash است.
برای دریافت به آدرس زیر بروید:
http://sourceforge.net/projects/autoppp/
و فایل های مورد نظر را به صورت یک پیکیج tar دریافت کنید.
این برنامه به صورت خودکار راس ساعت سه صبح به خط شبانه ی شما وصل شده و ساعت هفت مجددا به اکانت روزانه متصل می شود. البته ساعت قطع و وصل را می توانید تغییر دهید (ولی تغییر دقیقه کمی مشکل خواهد بود)
با یاد گرفتن اصول کلی این برنامه می توانید خودتان چند قطع و وصل دیگر را برنامه نویسی کنید.
اما نحوه ی نصب (یا بهتر است بگوییم «اجرای») این برنامه:
اولین نکته ای که باید بدانید این است که شما به طور معمول در اوبونتو 8.1 از Network manager applet برای کانکت شدن به اینترنت استفاده می کنید که یک رابط گرافیکی است و خیلی ساده با وارد کردن User و Password در قسمت های مربوط به DSL در Network Connections یک اکانت جدید می سازید و … و حتی می توانید برای کانتکت شدن به صورت خودکار در هنگام روشن شدن کامپیوتر آن را تنظیم کنید.
این ابزار ابزار بسیار خوبی است ولی دو مشکل داریم، اولین مشکل این است که اسکریپتی که من می خواهم برایتان معرفی کنم نمی تواند با این سیستم ارتباط برقرار کند. دومین مشکل این است که ارتباط برقرار کردن با این سیستم از طریق خط فرمان (ترمینال) را بلد نیستم!
بنابراین اینجا می خواهم نحوه ی کانکت شدن از روش قدیمی را به شما توضیح دهم (که خیلی هم ساده است و اصلا جای نگرانی نیست تازه خیلی هم حرفه ای تر است!):
اخطار:
کانکشن های فعلی شما پاک خواهند شد و شما دیگر قادر نخواهید بود که از طریق شمایل کانکشن به جایی کانکت شوید بلکه از طریق فرمان های pon و poff به اینترنت وصل و یا از اینترنت قطع خواهید شد. (برای برگشتن به حالت اول نکته ای که در انتهای این متن ذکر شده را مطالعه فرمایید)
نحوه ی ساخت کانکشن های جدید:
در یک ترمینال فرمان sudo pppoeconf را اجرا کنید. یک wizard باز خواهد شد که شما را برای ساخت کانکشن جدیدتان راهنمایی می کند. هر جا یوزر و پسورد خواست وارد کنید (مثلا برای اکانت روزانه). هر جا هم که نمی دانستید باید yes یا no را انتخاب کنید کافیست enter بزنید و از آن عبور کنید (از تنظیمات پیش فرض استفاده کنید).
اولین نکته این است که در اواخر کار از شما می پرسد: «? Turn on this account at boot time» یعنی آیا می خواهید به صورت اتوماتیک هنگام روشن شدن کامپیوتر به این اکانت وصل شوید؟
شما در اینجا باید حتما گزینه ی No را انتخاب کنید.
نکته ی دوم که جناب IgImAx بهش اشاره کردن:
در نوشتن Username بين OSهاي Microsoft با OSهايي كه براساس Unix ميباشند يك تفاوت مهم وجود دارد. در ويندوز حروف بزرگ يا كوچك براي Username در نظر گرفته نميشود ولي در Unix اينطور نيست. (البته در نوشتن Password هردو OS به شكل Case Sensitive هستند)
از آنجا كه صبانت نام كاربري شبانش را به شكل Guest معرفي نموده و نه guest به همين دليل لازم هست كه كاربران براي استفاده و معرفي اكنت شبانه صبانت در سيستم عاملهاي Linux از نام كاربري Guest با G بزرگ استفاده نمايند. (البته من 8ماه پيش آخرين باري بوده كه از Ubuntu به صبانت دسترسي داشتم شايد تا كنون نام كاربري را با حروف كوچك نوشته باشند.)
پس از ساخته شدن اکانت فرمان gksudo nautilus را در یک ترمینال اجرا کنید. یک پنجره ی nautilus (مرورگر فایل های لینوکس) ولی با قدرت superuser باز می شود. (توجه کنید که چون این پنجره قدرت root دارد می تواند هر فایلی را حتی فایل های حیاتی سیستم را پاک کند، بنابراین احتیاط کنید و به محض تمام شدن کارتان آن را ببندید)
در پنجره ی باز شده به آدرس زیر بروید:
/etc/ppp/peers
(ناتیلوس معمولی اجازه ی ورود به این شاخه ها را ندارد بنابراین حتما باید از فرمان فوق استفاده کنید)
روی فایل dsl-provider راست کلیک کرده و آن را کپی و در همان جا paste کنید. به این ترتیب یک backup از کانکشن شما با نام زیر ساخته خواهد شد:
sl-provider (copy)
خوب حالا دوباره فرمان pppoeconf را در یک ترمینال اجرا کنید و این بار دومین اکانت خود را بسازید (اگر دفعه ی اول روزانه ساخته بودید حالا شبانه بسازید). باز هم باید به Enable this account automatically at boot time… جواب No بدهید.
دوباره با استفاده از gksudo nautilus به /etc/ppp/peers بروید. روی dsl-provider کلیک کنید و با زدن کلید F2 اسم آن را به fdsl-provider تغییر دهید. از این فایل برای کانکت شدن به اکانت شبانه (free) استفاده خواهید کرد. به طریق مشابه نام آن یکی فایل را به dsl-provider تغییر دهید. (اسکریپت از این فایل برای کانکت شدن به اکانت روزانه استفاده خواهد کرد).
اصل کار تمام شد. حالا اگر فایل autoppp را اجرا کنید به صورت خودکار به اکانت مناسب (با توجه به ساعت کامپیوتر) وصل خواهید شد.
البته باید هر بار که restart می کنید دوباره این فایل را اجرا کنید. در این جا روش اجرای اتوماتیک این فایل در هنگام بالا آمدن اوبونتو را برایتان شرح می دهم:
برای اینکار آدرس فایل autoppp را که به عنوان مثال در پوشه ی Home ذخیره کرده اید به session manager اضافه می کنید.
برای باز کردن session manager (سژن منیجر) از طریق منوی بالای اوبونتو به آدرس زیر بروید:
System\Preferences\Sessions
(اگر باز هم مشکلی بود در بخش نظرات درمیان بگذارید)
ممکن است بخواهید راس ساعت هفت صبح کامپیوترتان به صورت اتوماتیک خاموش شود (تا اکانت روزانه ی شما مورد مصرف قرار نگیرد)، برای این کار فرمان زیر را در یک ترمینال اجرا کنید:
sudo crontab -e
و خطوط زیر را در مکان مناسب اضافه نمایید:
00 07 * * * /sbin/shutdown -P now
توجه:
حرف P در انتهای این دستور باید حتما با حروف بزرگ نوشته شود.
تنظیم برنامه:
این برنامه به صورت اتوماتیک هر ده ثانیه یک بار چک می کند که آیا خط قطع شده یا نه (برای این کار سایت گوگل را Ping می کند) که اگر جوابی دریافت نکند یعنی اینکه یا شما قطع شده اید و یا اصلا وصل نشده بودید. بنابراین این اسکریپت به صورت خودکار همه ی کانکشن ها را قطع و دوباره به کانکشن مطلوب وصل می شود و این لوپ آنقدر تکرار می شود تا شما وصل شوید.
پس از وصل شدن هر یک دقیقه کانکشن دوباره چک خواهد شد.
شما می توانید همه چیز را تغییر دهید. مثلا می توانید به جای «یک دقیقه» و «ده ثانیه» و … اعداد دلخواه خود را در فایل autoppp (در همان خطوط اول همه چیز قابل تنظیم و فهم است) وارد نمایید. (می توانید از هر ویرایشگر متن ساده ای برای اینکار استفاده کنید).
کلیه ی اعمال انجام شده توسط اسکریپت در یک فایل ثبت می شوند. نام این فایل autoppp.log است که در همان پوشه ای که autoppp را ایجاد کرده اید، ایجاد خواهد شد.
نکته:
برای اینکه دوباره بتوانید از network manager applet استفاده کنید کافیست فایل زیر را پاک کنید:
/etc/network/interfaces
امیدوارم شب خواب های خوب ببینید!
در ضمن برای اینکه دانلود های تارنت و یا سایر دانلود هاتون رو برنامه ریزی کنید تا ساعت ۳ به صورت اتومات اجرا بشن باید یک پست دیگه در خدمتتون باشم. تا اون موقع (که شاید تا تابستون هم طول بکشه D:) باید صبر پیشه کنید. ان شا الله در آنجا خواهم گفت چگونه نرم افزار دانلود و تارنت منیجرتان را برنامه ریزی کنید.
فعلا خدا نگه دار
چند پرسش و پاسخ:
«آیا این اسکریپت هر کانکشنی که کانکت باشه رو دوباره کانکت میکنه؟»
اون اسکریپتی که معرفی کردم قبل از هر کاری دیسکانکت می کنه، اونوفت با توجه به زمان به کانکشن مناسب وصل میشه. از ساعت سه تا هفت صبح خودش به اکانت شبانه وصل میکنه و بقیه اوقات به اکانت روزانه و هر یک دقیقه هم چک می کنه که ببینه به کانکشن مناسب وصل شده یا نه. مثلا اگر تا ساعت 2:59 (صبح) به اکانت روزانه وصل بودین، ساعت سه (حداکثر 3:01) خودش از روزانه قطع می کنه و به شبانه وصل میشه.
« از کجا می فهمه ساعت 3 با کدوم کانکشن کانکت کنه؟»
همون طور که گفتم کانکشن رو هر یک دقیقه چک می کنه و اگر بین 3 تا 7 صبح باشین خودش به اکانتی که برای شبانه ساختین وصل میشه (اگر قبلش به روزانه وصل بودین اون رو قطع می کنه) و بعد از ساعت هفت هم شبانه رو قطع می کنه و به روزانه وصل میشه.
در واقع این نرم افزار چون خودش همه چیز رو به عهده میگیره (از اول که راه اندازی میشه همه ی کانکشن ها رو قطع می کنه و دوباره خودش به کانکشن مناسب وصل میشه) بنابراین میدونه آخرین بار به کدوم کانکشن وصل شده (توی $LastDslNumber اسم آخرین کانکشنی که وصل شده را ذخیره کرده) و اساس تصمیم گیریش روی همین استواره. (فکر کنم سوال شما هم همین بود، اگه جایی مبهمه بگید تا بیشتر توضیح بدم)
در ضمن کار با این اسکریپتم اونقدرها سخت نیست (زیاد به ترجمه ی پیچ در پیچ من توجه نکنید)، کافیه اونو بزارین تو home، اونوقت هر وقت دستور sudo ./autoppp رو تو یه ترمینال وارد کنید همه ی کارها رو خودش به عهده میگیره.
دوستداشتن:
نخستین کسی باشید که این نوشته را دوست دارد.