منبع اصلی نوشتار زیر در این لینک قرار دارد

استفاده از Conky برای آگاه سازی اتوماتیک و امور مدیریت سیستم

Conky ابزاری گرافیکی برای مانیتورینگ سیستم در محیط لینوکس است.

از این ابزار می‌توان به طور معمول برای نشان دادن انواع مختلف داده از قبیل متن و یا نمودار در صفحه دسکتاپ بهتر و کارآمد تر از هر پنل موجود دیگری استفاده نمود. می‌توانید نمونه‌هایی از قابلیت هایی این ابزار مفید و قدرتمند را در وب سایت اصلی (لینک) مشاهده کنید.

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

\"\"

از ویژگی‌های جالب Conky می‌توان به قابلیت اجرای آن بر روی سیستم و مانیتورینگ از طریق طریق SSH یا GNU Screen اشاره کرد. همچنین توانایی آن برای بارگذاری اطلاعات از فایل‌های متنی ساده ، فید های RSS ، صفحات دانلود شده با w3m یا ابزارهای خط فرمان از دیگر قابلیت‌های کلیدی این ابزار کارآمد می‌باشد. علاوه بر همه اینها می‌توان از Conky و قابلیت‌هایش در سایر موارد جالب دیگر هم بهره جست. با این سطح گستردگی عملکرد و پشتیبانی از ابزارهای متعدد هنوز از این ابزار سودمند به طور گسترده استفاده نمی شود به طوری که ترفند قبلی (اجرا بر روی یک کامپیوتر و…) هم با استفاده از ابزار مشابه انجام می پذیرد . اما به نظر من دلیل عمده را باید در توقف کاربران در استفاده محدود از چند قابلیت این نرم‌افزار دانست به طوری که اکثر کاربران این ابزار را صرفا ابزاری برای زیبایی دسکتاپ می شناسند نه ابزاری کاربردی !

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

چندی پیش که شروع به شناخت این ابزار مفید کردم، متعجب شدم که با وجود قابلیت مدیریت اتوماتیک سیستم آیا بهتر نیست تمام متغییرها را بلافاصله در یک فایل با فرمت قابل استفاده برای مترجم پوسته (shell interpreter) چاپ کند؟! به عنوان مثال مواردی همچون تعمیر و نگهداری و اطلاع از وضعیت سیستم با استفاده از اسکریپت‌ها بسیار آسان‌تر و سریع‌تر از نوشتن آن‌ها خواهد بود چرا که فرمان‌های غیر مرتبط و فرمت‌های خروجی به فرض موجود بودن نبایستی اجرا شوند، و قبل از صدور هر دستوری باید مطلع بود که چه کاری قرار است انجام شود (و این آگاهی از وضعیت موجود سیستم دقیقا کاری است که بر عهده Conky خواهد بود – م).

پس از بررسی Conky متوجه شدم که به لطف تنظیمات عمومی و آپشن‌های موجود در خط فرمان Conky پیکربندی این موجود دوست داشتنی لذت بخش خواهد بود، فایل پیکربندی Conky شامل دوبخش است :

بخش اول شامل تنظیمات عمومی مثل نوع و محل فونت‌های مورد استفاده، بخش دوم با کلید واژه “TEXT” شروع می شود و تعیین کننده خروجی نرم افزار خواهد بود .

به گفته Conky پرینت هر چیزی در یک خروجی استاندارد آسان خواهد بود؛ برای آگاهی از تنظیمات پیش فرض کافی است دستور زیر را صادر کنید :

conky -C > command_line_conky.rc

این فایل حاوی تنظیمات پیش فرض است. بعد از باز کردن فایل مذکور با هر ویرایشگر متنی دو گزینه به شرح زیر را خواهید دید :

out_to_console yes
out_to_x no

اینها Conky را مجبور به چاپ یک خروجی به صورت STDOUT خواهد کرد نه نمایش بر روی پنجره X.

هنگامی که گزینه‌ها تعیین شدند شما می توانید خروجی Conky را در یک فایل متنی ذخیره کنید و در یک شل اسکریپت از طریق دستور زیر استفاده کنید:

conky -c command_line_conky.rc -i 1 | sed -e 's/[ \\t]*//g' > /tmp/conky_data.sh
source /tmp/conky_data.sh

این دستور ابتدا به Conky فرمان میدهد که فایل کانفیگ سفارشی را بارگذاری کند و بعد از آن اینکه این دستور را فقط یکبار اجرا کند. در اینجا دستور sed هم تمام فضاهای خالی را پاک خواهد کرد (whitespaces) البته در این یک مورد.
به عنوان مثال عملی اجازه دهید فرض کنیم بخشی از خروجی فایل command_line_conky.rc به این صورت است :

TEXT
 UPTIME='$uptime'
 MEM=$mem
 MEM_MAX=$memmax
 MEMPERC=$memperc
 CPU=$cpu
 ROOT_SPACE=${fs_used /}
 TOP_NAME=${top name 1}
 TOP_PID=${top pid 1}
 TOP_CPU=${top cpu 1}
 TOP_MEM=${top mem 1}

صفحه رسمی Conky به خوبی معنا و مفهوم تمامی دستوراتی که من استفاده کردم را نشان میدهد.

بسیار خوب حال ببینیم خروجی چطور خواهد بود!

#> cat /tmp/conky_data.sh
 UPTIME='1d3h14m'
 MEM=1.33GiB
 MEM_MAX=7.69GiB
 MEMPERC=17
 CPU=14
 ROOT_SPACE=6.34GiB
 TOP_NAME=knotify4
 TOP_PID=29173
 TOP_CPU=0.00
 TOP_MEM=0.35

به لطف Conky ما در اینجا سه متغیر *‎MEM‎ را که شامل مقدار فضای استفاده شده از هارد و مقدار در دسترس آن هستند را نشان دادیم! همچنین در چهار خط آخر command_line_conky.rc نام بازگشتی، آی‌دی پروسس (PID) و میزان استفاده از رم و سی‌پی‌یو پروسس را نشان دادیم. این به چه معنی است؟ درست است! همه این اینها کدهای معتبر شل هستند! این‌ها تنها با یک تماس با Conky میسر شد! شگفت انگیز نیست؟!

پس از بارگذاری این فایل با این کدهای دستوری اسکریپت شما، Conky قادر خواهد بود هرگونه آزمونی را که براین اساس عمل می کنند ایجاد کند ، ممکن است برای مثال:

خاتمه پروسسی که PID آن در CPU بیشتر از مقدار تعریف شده باشد (TOP_CPU$) یا ارسال یک ایمیل در صورتی که MEMPERC$ بیش از ۹۰ درصد شود! یا وقتی پارتیشن روت تقریبا پر شده است!

خیالتان از بابت Conky راحت باشد! از این جهت که قابلیت چاپ گستره بسیاری از اطلاعات را دارد امکانات زیادی در دسترس خواهد بود، فقط کافی است توجه لازم را به فضاهای سفید داشته باشید! به عنوان مثال فرض کنید دستور بالا را بدون sed صادر می‌کردیم، آنگاه خروجی زیر را می‌دیدیم:

TOP_CPU= 0.00
TOP_MEM= 0.35

متغییر های غیر معتبر شل به دلیل وجود فضای سفید است که برای از بین بردن آن‌ها می توان مانند مثال بالا از دستور sed بهره جست که البته شاید راه حلی اصولی و تمیز نباشد اما سریع خواهد بود .

sed می تواند کار تمیز کردن تمام خطوط را بر عهده بگیرد؛ مانند “UPTIME=’$uptime’” که واقعا نیازی به بودنشان حس نمی‌شود .

شاید راه حل پیشنهاد شده پذیرفتنی نباشد؛ در هر حال شما می‌توانید به صورت زیر دستورات sed را در فایل command_line_conky.rc تغییر داده یا حذف کنید:

– قرار دادن نقل قول تکی در سرار متغیرهایی که نیاز به حفظ فاصله خود دارند؛
– اضافه کردن یک تعریف از آن‌هایی که در زمان بارگذاری conky_data.sh قادر به حذف فضای کدهای شل نیستند.

یا ممکن است این ترفند یا همانند آن را به کار گیرید:

TOP_CPU=`echo '${top cpu 1}' | tr -d '[:space:]'`

با اعمال یا حتی بدون این مراحل اضافی نتیجه همیشه یکسان است.

Conky می تواند اسکریپت‌های مدیریتی را با مقدار زیادی اطلاعات در اختیار شما قرار دهد تا روی آنها کار کنید، و ویژگی بسیار خوب آن قابل حمل بودنش است. به دلیل یکسان بودن فرمت فایل پیکربندی Conky، روی هر سیستمی که این ابزار را داشته باشد قابلیت پیکربندی را دارد.

منبع

6 دیدگاه برای این نوشته:

  1. \'\'آژانس مسافرتی:

    ۱۸ مرداد ۱۳۹۱
    واقعا عالی بودش
    دستتون درد نکنه
  2. \'\'karux:

    ۱۸ مرداد ۱۳۹۱
    برنامه ی باحالی بود و متن شما هم قشنگ بود و خوش امد! مرسی!
  3. \'\'mahm0ud:

    ۱۸ مرداد ۱۳۹۱
    کنکی ظاهر جذاب وسوسه کننده ای داره ولی کانفیگ اون به جذابی ظاهرش نیست
  4. \'\'eMan:

    ۱۸ مرداد ۱۳۹۱
    ممنون مجتبی
    خیلی خوب و به جا بود
  5. \'\'mojvar:

    ۱۸ مرداد ۱۳۹۱
    دوستان ممنون از نظراتتون
    قابلی نداشت به امید مقاله های پربار تر و بهتر
  6. \'\'علی بهجتی:

    ۱۸ مرداد ۱۳۹۱
    ولی ارزشش رو داره

\"ارسال



برچسب ها : , , ,