حل مشکل ارور out of range مانیتور (وقتی دو تا مانیتور دارید)

حل مشکل ارور out of range مانیتور به نام اهورامزدای پاک درود دوستان یه چند وقتی می‌شد که داشتم با این مشکل دست و پنجه نرم میکردم. تقریبا تمام مطالبی که درباره این ارور بود رو خوندم و با هرکی یکم چیزی میز بلد بود صحبت کردم ولی خب همه راه حل های تکراری و...

ادامه مطلب . . .

نوشته حل مشکل ارور out of range مانیتور (وقتی دو تا مانیتور دارید) اولین بار در گشتاسب مظفریان - GMozafarian. پدیدار شد.

لینک های شاد دوشنبه های آخر ماه مرداد ۱۳۹۶ – از کار نجاری تا حل کردن جدول

یک دوشنبه دیگه آخر ماه شد و گشتی در وب فارسی؛ بهتر بگم معرفی کسانی که دوست داشتن بیشتر دیده بشن و فضاشون به ما می خورد.

فعالیت ها

سایت‌ها

‪-‬ بچه های یو دونیت هم یک سیستم ساختن که هنوز به نظر خیلی اول راهه ولی اگر جدی بگیرن و بدونن که مهمترین بخش بیزنس موفق، پیش بردن بیزنس بعد از نوشته شدن برنامه است، می تونه کارش حسابی بگیره و ایده خوبی هم باشه و به همه هم کمک کنه. یو دونیت اجازه می ده افراد دگمه یا لینک دونیشن اضافه کنن. مثلا مال من اینجاست: دونیت
هردوک هم تلاشی دیگه برای چیزی است که لازم داریم: یه سایت به روز از اخبار علمی علوم پایه و دقیق
– سایت جدول یاب هم بانمکه (: برای کشف کلمات جدول (:
– سایت پرواز هاب هم ایده خوبیه که می تونه سریعا تجاری هم بشه: مقایسه قیمت بلیت های هواپیما در سایت های مختلف.

رویدادها

  • مسابقه چلنج اینترنت چیزها هم درجریانه. مطمئن هستم هنوزم می تونین ثبت نام کنین (: تازه کار به نظر می رسه و احتمالا فرصت خوبیه برای اسم و رسم پیدا کردن (:

بازار کار

استخدام نیروی بازاریابی و فروش پاره وقت برای Darkooba.com

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

۱. روابط اجتماعی خوبی دارید
۲. تجربه ارایه محصول و فروش دارید یا فکر می کنید از این کار می توانید لذت ببرید و دوستش داشته باشید
۳. از پی گیری خسته نمی شوید و تا به نتیجه رسیدن ادامه می دهید .
۴. منعطف هستید و می توانید در یک فضای دوستانه و هنری و کارگاهی موثر باشید

تماس و ارسال رزومه: info@darkooba.com

شما هم اگر دوست داشتین در دوشنبه آخر ماه بعدی معرفی بشین، با ایمیل بهم خبر بدین.

مانیتورینگ لینوکس در ترمینال با نرم افزار Gtop

 

monitor

در دنیای لینوکس نرم افزارها و ابزارهای مختلفی جهت مانیتورینگ سیستم وجود دارد که برخی رابط تحت وب دارند مانند zabbix و برخی قابلیت اجرا در کنسول را دارند مانند glances,nmon,nload و ….

در کنار این نرم افزارها ابزاری دیگری به نام gtop نیز وجود دارد که یک ابزار مانیتورینگ خط فرمانی می باشد که با استفاده از آن می توان منابع سیستم را مانیتور کرد که میزان مصرف منابع از جمله RAM و CPU و میزان مصرف شبکه را می تواند به صورت یک گراف زیبا و رنگی نیز نمایش دهد.

 

نصب  Gtop در فدورا لینوکس :

 

ایتدا Nodejs را بر روی سیستم خود نصب کنید و سپس برای نصب gtop این دستور را اجرا کنید :

 

#npm install gtop -g

نصب Gtop در CentOS :

 

۱-مخازن EPEL را نصب کنید.

۲-Nodejs را نصب کنید.

۳-اکنون برای نصب Gtop این دستور را اجرا کنید :

 

#npm install gtop -g

 

پس از نصب gtop اکنون می توانید دستور gtop را در ترمینال اجرا کنید تا برنامه اجرا شود.در پایین تصویری از ابزار مانیتورینگ Gtop را مشاهده می کنید :

 

 

gtop

 

 

پس از اجرای gtop اکنون با استفاده از کلید های بالا و پایین صفحه کلید می توانید پردازش ها را مرور کنید.با استفاده از کلید p می توانید پردازش ها را بر اساس PID مرتب کنید.با استفاده از کلید c می توانید پردازش ها را بر اساس مصرف cpu مرتب کنید و با استفاده از کلید m می توانید پرازش ها را بر اساس مصرف RAM مرتب کنید.

برای پایان دادن به برنامه می توانید از کلید q یا ctrl+c استفاده کنید.

docker pull و systemd (مشکل کشورهایی مثل ایران)

خیلی وقت است که docker pull بروی کشور‌های ایران، کره شمالی، سوریه، کوبا، سودان و کریمیه بسته می‌باشد. کاربران گنو/لینوکس بدلیل وجود یا شاید بهتر بگم دخالت systemd در هر مطلبی کمی آزرده خاطرند. سعی کردم در این مطلب روش systemd آن را توضیح دهم: دایرکتوری زیر را می‌سازید: [crayon-599a2e84d710c504715600/] سپس فایل زیر را برای … ادامه خواندن docker pull و systemd (مشکل کشورهایی مثل ایران)

برندگان جایزه پیشگامان ای اف اف ۲۰۱۷: چلسی منینگ، مایک منسیک و آنی گیم

موسسه ای اف اف یکی از اصلی ترین محافظان آزادی دیجیتال در دنیاست. جایزه پیشگامان این موسسه که به پیش برندگان آزادی اهدا می شه امسال به سه نفر داده شده؛ مطلع ساز مشهور چلسی منینگ، ادیتور تک درت مایک منسیک و مدافع آزادی بیان آنی گیم.

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

مایک مسنیک هم موسس و نویسنده بلاگ تک درت و فعال حقوق دیجیتال است. کسی که ۲۰ سال تقاطع تکنولوژی، سیاست و حقوق شهروندی رو مطرح کرد و صدایی قوی علیه قوانین از بین برنده حقوق مردم نسب به شبکه جهانی اینترنت بود.

انی گیم هم مدیر آیفکس است که شبکه ای از ۱۱۵ سازمان خبرنگارانه یا آزادی های مدنی است و سعی می کنه از حقوق خبرنگاران در جهان دفاع کنه یا حداقل فشارهای اونها رو نشون بده. انی برای ۱۰ سال آیفکس رو رهبری کرد تا شهروند خبرنگارها و گزارشگرهای کشورهای مختلف احساس امنیت بیشتری بکنن.

جایزه شون مبارک باشه و لذت بخشه دیدن آدم های خوب.

برای همه پایین هست یا فقط من؟!

اگر میخواهید ببینید که یک سایت، وبلاگ و... برای همه در دسترس نیست یا فقط برای شما می توانید به آدرس زیر بروید  downforeveryoneorjustme.com آدرس مورد نظر را وارد کنید تا ببینید چه شده و مشکل از شماست یا سایت.

آموزش کامل سرور مجازی لینوکس دبیان ( شماره ۳ )

بررسی سیستم عامل نصب شده بر روی سرور مجازی توسط هاستینگ

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

توی همچین شرایطی نمیشه ۱۰۰٪ مطمئن شد که سیستم عامل نصب شده مشکلی نداره اما می شه با بررسی چنتا فاکتور کمی به عملکرد صحیح سرور مطمئن شد.

 

• تغییر پسورد یوزر اصلی سرور یعنی root :

طبیعتا وقتی سیستم عامل توسط یکی دیگه نصب میشه، پسورد ها توسط همون شخص انتخاب میشن لذا لازم هست در اولین مرحله پسورد یوزر اصلی یعنی root تغییر پیدا کنه. برای این منظور ابتدا وارد یوزر روت میشیم :

su - root

 

سپس با استفاده از دستور زیر ، پسورد یوزر روت رو تغییر می دیم :

passwd root

 

• تغییر پسورد دیگر یوزر های موجود بر روی سرور :

هنگام نصب سیستم عامل، علاوه بر انتخاب پسورد برای یوزر روت، باید یک یوزر جدیدی ساخته شود که این یوزر توسط کارگزار ساخته و برای آن پسوردی انتخاب می شود. جهت تغییر پسورد این یوزر نیز به شکل زیر عمل می کنیم :

passwd user001

 

نکته : توجه کنید که user001 در اینجا مثال می باشد و شما باید یوزر سرور خودتون رو وارد کنید.

نکته : اگر یوزر های دیگه ای هم روی سرور وجود داشت، همین فرایند رو تکرار می کنیم.

 

• چک کردن فایل passwd :

یکی از فایل های مهم بر روی سیستم passwd است که تمامی مسائل مربوط به یوزر ها در این فایل نگهداری می شود. لذا جهت اطمینان از نبودن یوزر نا مربوطی بر روی سیستم، این فایل رو چک می کنیم. برای این منظور :

cat /etc/passwd

 

توجه : به صورت پیشفرض و با نصب سرویس های مختلف، یوزر های متفاوتی بر روی سرور ایجاد می شود. به عنوان مثال www-data که این یوزر ها مشکلی برای سرور ایجاد نمی کنند.

جهت مطالعه و چک کردن بهتر این فایل می توان از دو دستور زیر استفاده کرد :

cat /etc/passwd | grep -v nologin | grep -v false
cat /etc/passwd | grep /bin/bash

 

توجه : جهت دسترسی به این فایل ، یوزر روت نیاز نیست.

• چک کردن فایل shadow :

یکی از فایل های حساس سیستمی که سطح دسترسی روت برای ویرایش و خواندن نیاز دارد، فایل shadow است. در صورتی که یوزر دارای پسورد باشد، هش شده ی پسورد درون این فایل قرار می گیرد لذا جهت چک کردن یوزر های موجود در سیستم می توان از مطالعه این فایل نیز استفاده کرد. برای این منظور :

cat /etc/shadow

 

نکته : همان طور که گفته شد، جهت دسترسی به این فایل ، سطح دسترسی روت نیاز است.

 

• شل پیشفرض یوزر ها :

هر یوزری که بر روی سرور ساخته می شود ( حتی روت ) شلی ( shell ) برای خود در نظر می گیرد. به صورت پیش فرض بر روی سیستم های لینوکسی از دو شل bash و sh استفاده می شود که آدرس این دو معمولا به صورت زیر است :

/bin/bash
/bin/sh

 

شل در نظر گرفته شده برای هر یوزر، درون فایل passwd مشخص شده است لذا انتظار می رود شل مورد استفاده در یوزر ها حتما چک شود. چرا که ممکن است اسکریپتی وجود داشته باشد که پسوردی که هنگام وارد شدن به سرور می زنید را برای فردی ارسال کند.

همچنین تنها به چک کردن آدرس شل بسنده نکنید و خود فایل مربوط به شل را نیز چک کنید تا مبادا اسکریپت مخربی باشد.

 

• چک کردن فایل crontab :

جهت اجرای اسکریپت ها و برنامه های مختلف بر روی سرور، از این فایل استفاده می شود. لذا برای مطمئن شدن از این که فایل و اسکریپت مخربی به صورت زمان بندی شده بر روی سرور اجرا نمی شود، محتوای این فایل رو چک کنید :

cat /etc/crontab

 

• چک کردن فایل etc/profile/ :

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

nano /etc/profile

 

• چک کردن فایل bashrc :

هر یوزر در درون home directory خود این فایل را به صورت مخفی دارد. جهت چک کردن از عدم وجود فایل یا اسکریپت مخربی این فایل رو هم چک کنید. به عنوان مثال برای یوزر روت :

nano /root/.bashrc

 

• مشاهده پورت های فعال بر روی سرور :

به صورت پیشفرض و همچنین با نصب سرویس های مختلف، پورت هایی بر روی سرور شما باز و فعال می شود که حتما باید توسط شما چک و شناخته شده باشند. برای این منظور از ابزار netstat به صورت زیر استفاده می کنیم :

netstat -lptun

 

نکته : در صورتی که سرویس مشکوکی رو مشاهده کردید، PID آن را کیل کنید.

نکته : با استفاده از سوییچ های بالا، هم پورت های آی پی ورژن ۴ و هم پورت ها ورژن ۶ نمایش داده می شود.

نکته : طبیعتا نیازی به فعال بودن تمامی پورت ها بر روی سرور نیست لذا می توان سرویس مربوط به آن را stop کرد یا با استفاده از فایروال جلوی برقراری ارتباط با آن را گرفت.

 

  • راه و روش های دیگری برای چک کردن سلامت سرور وجود دارد که در پست های بعدی به آن می پردازیم.
  • تست شده بر روی debian-9.1.0-amd64-netinst
  • هرگونه انتقاد، پیشنهاد و سوال رو زیر همین پست مطرح کنید یا با ایمیل info@oslearn.ir در تماس باشید.

ظهر دیتابیس‌های مبتنی بر جی پی یو

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

ولی دیتابیس چی؟ توی کاربردهای جدید خیلی از دیتاهای ما نیاز به پروسس شدنی بیشتر از قبل دارن. مثلا فرض کنین من یک استوریج هدوپ دارم که اطلاعاتی رو نگهداری میکنه که در هر بار درخواست باید پردازش بشن. نمونه واقعی سیستم پست آمریکا است که با داشتن ۱۵۴ میلیون آدرس و تقریبا ۲۰۰هزار مسیر پست لازمه در هر لحظه بتونه مکان هر پستچی رو حساب کنه. چنین کاری اول نیازمند دریافت کلی اطلاعات است و بعد پروسس اون اما چی می شه اگر یک دیتابیس مبتنی بر جی پی یو دیتا در همون سری ای که بازیابی می شه، پروسس هم بشه و سیستم پست بتونه برای هر بسته زمان تقریبی دریافت رو اعلام کنه؟ این مساله واقعا عملیاتی شده و داره کار میکنه. نمونه های دیگه بانک ها هستن و سکتورهای اقتصادی ای که اطلاعات زیادی رو ذخیره و دائما پردازش می کنن و سوییچ کردنشون به دیتابیس های جی پی یو، جواب خوبی داده.

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

کیبوردی برای زبان چینی

 

ارسالی از دوست عزیزم عامری اسد

پیاده‌سازی قسمت‌های ۱۵ و ۱۶ ویدیو‌های درک برنامه‌نویسی جادی در R یا چی می شه اگر ۵۰ نفر در یک اتاق…

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

چی می شه اگر ۵۰ نفر در یک اتاق نفری ۱۰۰ دلار داشته باشن. در هر دور هر کس به شکل رندم یک نفر رو انتخاب می کنه و یک دلار از پولش رو به اون می ده. اگر پول کسی تموم بشه از بازی بیرون گذاشته می شه. بعد از بارها بازی کردن، وضعیت پول ها چطور خواهد بود؟

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

برای حل این سوال اولین کاری که باید انجام دهیم ساخت آرایه‌ای است که میزان پول هر یک از ۵۰ نفر در آن ذخیره شود:

people <- rep(100,50)

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

beshkan <- function(n) 
  {
  
  for(i in 1:n)
  {
  player <- sample(which( people > 0) , 2)
  people[player[1]] <<- people[player[1]] - 1
  people[player[2]] <<- people[player[2]] + 1
 }
people }

در کد بالا به جای این که یک خط برای انتخاب شخصی که پول می‌دهد و یک خط برای شخصی که پول را می‌گیرد بنویسم با همان تابع sample یک‌باره دو عدد تصادفی تولید کردم. sample(which( people > 0 را می‌توانید به این صورت بخوانید: از اعضای بردار people که برابر ۰ نیستند دو تا تصادفی انتخاب کن و شماره‌ی آنها را به من بده. نکته مهم دیگر هم این است که R ار ۱ شروع به شمردن می‌کند. در کد بالا به جای -> از ->> استفاده شده که متغیرهای درون تابع را از حالت محلی به حالت گلوبال تبدیل می‌کند. در واقع باعث می‌شود تاثیر دو خطی که مسوول کم و زیاد کردن پول هستند از تابع خارج شده و روی بردار poeple اعمال شود ( و با اتمام اجرای تابع از بین نرود.)

با ۱۰۰۰۰بار اجرای این تابع و استفاده از کدهای زیر، این نمودار حاصل می‌شود:

m <- beshkan(10000)
 barplot(sort(m))

alt

که با جوابی که در ویدیو جادی بود تفاوت بسیاری دارد و هنوز پول یک نفر هم صفر نشده است. دو تا احتمال وجود دارد، احتمال اول تفاوت نحوه کار تابع sample در R  و توابع تولید عدد تصادفی در پایتون است و احتمال دوم این است که من در جایی اشتباه کرده باشم (اگر فکر می‌کنید دومی محتمل‌تر است حتما نظری برای این پست بگذارید). اگر به جای ۱۰۰۰۰ دفعه، حلقه درون تابع ۱۰۰۰۰۰ دفعه اجرا شود جواب من به جواب ویدیوی مورد نظر بسیار نزدیکتر می‌شود:

alt

در پایان، چند خط کد به تابعی که نوشتیم اضافه می‌کنم تا در هر ۱۰۰ بار اجرا، یک نمودار بکشد و در یک فایل png ذخیره کند:

beshkan <- function(n) 
{
  for(i in 1:n)
  {
    player <- sample(which( people > 0) , 2)
    people[player[1]] <<- people[player[1]] - 1
    people[player[2]] <<- people[player[2]] + 1
   
    if(i %% 100 == 0)
    {
      png(paste(i,".png"))
      barplot(people , main =  paste(i))
      dev.off() 
    }
  }
  people 
}

و با فایل‌های ذخیره شده و با کمک نرم‌افزارهای جانبی، می‌توان نمودار متحرک زیر را ساخت:

alt

نوشته پیاده‌سازی قسمت‌های ۱۵ و ۱۶ ویدیو‌های درک برنامه‌نویسی جادی در R یا چی می شه اگر ۵۰ نفر در یک اتاق… اولین بار در use R. پدیدار شد.