همه اوبونتو سوار می‌شن

پستی که اوبونتو توی صفحهٔ فیس‌بوکش منتشر کرده و اشاره کرده به شرکت‌ها و آدم‌هایی که روی پروژهٔ اتوموبیل‌های خود-راننده که همه دارن از اوبونتو استفاده می‌کنن.

14718705_10154545843953592_6529550597175292033_n

پی‌نوشت:

خیلی وقت بود اینجا رو آپدیت نکرده بودم نمی‌دونم چرا. امیدوارم دیگه اینقدر وقفه نیفته 🙂

اوبونتو: سنجاب مهمان‌نواز به کامپیوترهای ما میاد

اوبونتو توزیعی هست که من باهاش وارد دنیای لینوکس شدم و هنوز هم علی‌رغم اینکه توزیع‌های متنوعی رو امتحان کردم سیستم عامل مورد استفاده و محبوبم مونده. من بر اساس یک عادت قدیمی فقط نسخه‌های LTS این توزیع رو نصب می‌کنم و این یعنی اینکه از آخرین باری که سیستم عاملم رو نصب کردم تا امروز ۲ سال می‌گذره. دو سال پیش «بُز قابل اعتماد» به کامپیوتر من اومد و تا امروز همراهم بود و حالا «سنجاب آفریقاییِ مهمان‌نواز».

اگر توضیحات بالا براتون مفهوم نیست اجازه بدید یکم توضیح بدم:

سیستم عامل گنو/لینوکس تحت توزیع‌های مختلفی منتشر می‌شه. یعنی چی؟ یعنی اینکه شرکتها و آدمهای زیادی در دنیا، از هستهٔ آزاد گنو/لینوکس استفاده کردن و ابزارها، نرم‌افزارها، تنظیمات و چیزهای مختلفی رو بصورت سفارشی بهش اضافه کردن و یک «توزیع» به وجود آوردن. اوبونتو یکی از اون توزیع‌هاست. اوبونتو در آپریل و اکتبر هرسال یک ورژن جدید می‌ده. نسخه‌هایی که در آپریل سالهای زوج منتشر می‌شه بصورت طولانی مدت پشتیبانی می‌شه که بهشون «LTS» می‌گیم. به این معنی که برای دسکتاپ ۳ سال و برای سرور ۵ سال پشتیبانی رسمی می‌شن و سایر ورژنها پشتیبانی‌شون کوتاه مدت (یکساله) هست. اسم نسخه‌های اوبونتو شامل اسم یک حیوان و یک صفت برای اون حیوان هست که هر دو با یکی از حروف الفبا شروع می‌شن. مثل نسخهٔ فعلی که Xenial Xerus هست. این حروف الفبا هم در هر نسخه جلو می‌ره. مثلا نسخه فعلی با X شروع شده و نسخهٔ بعدی با Y خواهد بود.

xenial-xerus ubuntu 16.04

و حالا اوبونتو ۱۶.۰۴ با نام سنجاب آفریقایی مهمان‌نواز (Xenial Xerus) منتشر شده تا چند سال مهمان کامپیوترهای ما باشه و طعم آزادی رو باهاش بچشیم (:

شاد باشید و آزاد

پی‌نوشت:
نکته‌ای که در مورد بعضی ترجمه‌های فارسی این توزیع دیدم این بود که این توزیع رو «موش خرمای مهمان‌نواز» ترجمه کرده بودن که فکر می‌کنم اشتباه باشه.

لینوکس همه‌فن حریف: تهیه گزارش دیداری از لاگ فایل – ویدئوکست

توی این قسمت از «لینوکس همه‌فن حریف» یک سورپرایز براتون دارم. تصمیم دارم مطالبی که می‌شه به صورت ویدئویی ارائه‌شون کرد رو در قالب ویدئوکست ارائه بدم. توی این قسمت، ماجرا در مورد یک فایل لاگ هست که می‌خوایم با چند تا دستور ساده و نرم افزار libreoffice ازش یک خروجی دیداری در قالب چارت به وجود بیاریم. بدون اینکه بیشتر از این مقدمه بگم توجه‌تون رو به اولین ویدئوکست جلب می‌کنم.

مشاهده در سایت آپارات

شاد باشید (:

پی‌نوشت:
اگر نظر، پیشنهاد یا انتقادی دارید از طریق mindfs.com روی جیمیل با من تماس بگیرید.

لینوکس همه‌فن حریف: مدیریت ssh سرورها با کمی بش اسکریپت

شاید شما هم سرورهای لینوکسی زیادی رو داشته باشید که برای کارهای مختلف به اون‌ها SSH می‌کنید. کار سختی نیست ولی اگر ابزاری باشه که کارمون رو راحت‌تر کنه دنیا جای بهتری برای زندگی خواهد بود. امروز دوست داشتم یک کار مفید و فان انجام بدم. این شد که دست به کد شدم و یک ابزار برای خودم نوشتم. شاید اگر سرچ می‌کردم ابزار های بهتر و قدرت‌مندتری هم پیدا می‌کردم ولی اون‌وقت دیگه ماجرا فان نبود.

 اسکرین شات از جامپ

خب؛ صورت مسئله اینه که من یک چیزی می خوام که لیست سرورها و پورت‌های SSH رو توی خودش نگه داره و من رو خیلی سریع به اون‌ها وصل کنه. اسم پروژه‌م رو گذاشتم jump که می‌تونید روی گیت‌هاب کامل‌ش رو ببینید. اما یکم در مورد قسمت‌های مهم‌ش توضیح می‌دم.

نمونه لاگین با جامپ

توی قسمت زیر بررسی کردم که اگر فایل کانفیگ توی شاخه home من وجود نداشت با یک سری توضیح و یک مثال ایجادش کنه و فایل ایجاد شده رو با ادیتور متنی پیش‌فرض سیستم باز کنه تا کاربر بتونه اطلاعات مورد نیاز خودش رو در اون وارد کنه و به عبارتی کانفیگ اولیه برنامه رو پیکربندی کنه.

توی این تیکه از کد لیست سرورها رو خوندم و ریختم توی یک متغیر و به کمک whiptail که یک ابزار تولید دیالوگ‌باکس های گرافیکی تحت shell script هست یک محیط گرافیکی درست کردم که کاربر می‌تونه سرورهاش رو ببینه و تیک بزنه که به کدوم می‌خواد وصل بشه.

قدم بعدی اینه که ببینیم کدوم سرور رو انتخاب کرده و بهش SSH بزنیم که این کار رو به وسیله کد زیر انجام دادم.

و نتیجه این شد که الان ابزاری دارم که خیلی راحت می‌تونه کانکشن‌های SSH من رو مدیریت کنه و کاملا می‌دونم چجوری کار می‌کنه و هر وقت نیاز به توسعه یا تغییر داشته باشه خیلی راحت قابل انجامه. مهم‌تر از اون این‌که اینطور کارها تجربه و دانش آدم رو افزایش می‌ده.

شما هم دست به کد بشید چیزهایی تولید کنید که کارهای روزانه‌تون رو راحت‌تر و بهتر کنه. اگر چیز جالبی تولید کردید اپن سورس منتشرش کنید و به من در mindfs.com روی جیمیل اطلاع بدید تا همینجا معرفی‌ش کنم (:

تجربه کنید و شاد باشید.

پی‌نوشت:
قبلا هم گفتم من خیلی bash script نویس با تجربه‌ای نیستم و قطعا می‌شده این برنامه رو بهینه‌تر و کاربردی‌تر نوشت. اما خوبی لینوکس در اینه که هر کسی با سطح دانش و مهارت خودش می‌تونه کار خودش رو پیش ببره.

لینوکس همه‌فن حریف: اطلاع سریع از نتایج انتخابات

بلاخره بعد از یک انتخابات با مشارکت بالا زمان شمارش رای‌ها فرا رسیده و از دیشب تا حالا اخبار غیر رسمی راست و دروغ زیادی از نتایج پخش شده. سوال اصلی اینه که چرا نباید یک سیستم رای‌گیری مکانیزه داشته باشیم تا این همه کاغذ دور ریخته نشه و این همه وقت و نیروی انسانی هدر نره. البته شاید یک دلیلش نداشتن زیرساخت پایدار برای این کار باشه، یا شاید هم بر می گرده به ترس‌های امنیتی دوستان که البته با نمونه‌کار هایی که بعضا ارائه کردن واقعا جای ترس هم داره وقتی در طراحی یک سایت ساده مشکلات بنیادین دارن که از یک آماتور هم بعیده. بگذریم.

بعد کلی آمار غیر رسمی و شایعه‌گونه بلاخره ستاد انتخابات کشور یک خبر منتشر کرد که نتایج قطعی و رسمی روی اون منتشر می‌شه و در واقع یک خبر هست که مدام آپدیت می‌شه. از اینکه چرا ارقام و عناوین بصورت plane text و غیرجدولی ارائه شده هم می‌گذریم. حالا برای اینکه بدونیم توی حوزه انتخابی ما چه کسایی رای آوردن باید هی بریم این لینک رو ریفرش کنیم و توی صفحه سرچ کنیم ببینیم خبری شده یا نه.

اما ما که لینوکس بلدیم از این کار های داغون نمی‌کنیم. دست به کد می‌شیم. یه فایل bash script ساده می نوسیم که هر بار که اجرا می‌شه آدرس اون لینک رو باز کنه و توش دنبال متنی که ما می گیم -که در اینجا قراره اسم شهر یا استان ما باشه- بگرده. اگر اون متن رو پیدا کرد دستور beep رو اجرا کنه تا سیستم بوق بزنه. برای اینکه اسپیکر سیستم رو فعال کنیم و در واقع ماژول‌ش رو کرنل ما لود کنه دستور زیر رو اجرا میکنیم:

و حالا اسکریپت‌مون رو به این شکل می‌نویسیم و ذخیره می‌کنیم :

حالا باید به فایل‌مون دسترسی اجرا شدن بدیم:

حالا باید طوری اجراش کنیم که توی یک بازه‌ی زمانی مشخص مدام فایل اجرا بشه و اگر نتیجه اون چیزی بود که ما می‌خواستیم بهمون خبر بده. برای اینکار از دستور watch استفاده می‌کنیم:

این دستور برنامه ما رو هر ده ثانیه اجرا می کنه و هر وقت به نتیجه برسه با سه تا بوق به ما اطلاع می‌ده. نکته این که ورودی دستور رو به صورت regex دادیم تا بتونیم بصورت داینامیک دنبال هر چیزی توی خروجی بگردیم و دست‌مون باز باشه در اعمال فیلتر (البته فیلتر در کاربرد خوبش ، نه فیلترهای چرند فیلترچی).

امیدوارم افراد منتخب شما جزء انتخابات شده‌ها باشن و امیدوارم به لیست اصلاحات رای داده باشید D:

پی‌نوشت:
من بش‌اسکریپت نویس خوبی نیستم و ممکنه راه حل‌های معقول‌تری هم برای انجام این کار وجود داشته باشه. ولی خوبی لینوکس اینه که هر کسی با دانش خودش می‌تونه ازش بهره ببره.