تلاش های یه برنامه نویس برای اجتماعی بودن.
۶ کار که در اولین لحظه اتصال به سرور جدید لینوکسی انجام میدم.
یکی از کار هایی که هر برنامه نویسی باهاش خیلی سروکار داره اتصال به سرور های گوناگون تیم ، شرکت و یا مشتری هاست.ولی یه سری تست ها و نکات وجود داره که هر شخصی قبل از استفاده از و نصب هر سرویسی روی سرور باید رعایت کنه. توی این مقابه با لیست کار های پیشنهادی آقای Gaurav Kamathe از سایت openSource.com اشنا میشیم.
اولین بازخورد
توی اولین لحظه باید چک کنین با چه سیستم عاملی طرف هستین ، چه ساختار سخت افزاری داره و چند مدت هست که روشن بوده.
برای این کار اول چک کنیم ببینیم با چه موجودی طرف هستیم:
توی ایم مثال ما با یه centOS طرف هستیم . بعد میتونیم با دیدن فایل centos-release از جزیات بیشتری با خبر بشیم:
بعد نوبت کرنل و آپ تایم رو چک کردنه:
مطمعن بشیم تنها هستیم
یکی از مهم ترین کار ها اینه چک کنین که روی این سرور تنها هستیم. این کار هم امنیت شما رو تظمین میکنه و هم جلوگیری میکنه از به وجود اومدن تداخل های احتمالی .
برای این کار از دستورات زیر استفاده میکنیم:
دستگاه فیزیکی یا مجازی
توی این مرحله باید چک کنیم ببینیم دتسگاهی که ما بهش متصل هستیم یه دستگاه مجازی هست یا خیر.
اگر دستگاه مجازی باشه کلماتی مثل KVM ,VirtualBox ,VM و ... رو قراره ببینید و در غیر این صورت عبارت هایی شامل اسم شرکت تولید کننده.در دو مثال زیر هر دو سرور به صورت مجازی (یکی با VmWare و اونیکی با QEMU شبیه سازی شده ) هستن.
برای چک کردن از دستورات :
lshw -c system | grep product | head -1
cat /sys/class/dmi/id/product_name
dmidecode -s system-manufacturer
استفاده کنین.
سخت افزار !
یکی از مهم ترین استپ هایی که باید چک بشه اینه که بفهمیم سوار چه سخت افزاری هستیم. این چک میتونه خیلی از تصمیمات کلیدی آینده رو تحت تاثیر بزاره ( مثلا گیت لبو نمیشه رو رم ۲ گیگ نصب کرد)
برای این کار از cpu شروع میکنیم و از ram به شبکه میرسیم.
و دستور ifconfig برای شکبه ( عکس نمیزارم)
لیست ریپو ها و برنامه ها
برای اینکه بتونین معماری خوبی رو پیاده سازی کنین باید ریپو های جامعی رو قبل از شروع به کار جمع کنین و لیستی از برنامه های موجود روی سیستم داشته باشید.برای انجام این کار روی یه سیستم عامل redHatBased میتونین از دستورات زیر استفاده کنین:
rpm -qa
yum repolist
ls -l /etc/yum.repos.d/
پروسس ها و سرویس های در حال اجرا
قدم بعدی و خیلی طبیعی بعد از چک کردن نرم افزار های نصب شده روی سیستم اینه که پروسس های باز ،daemon ها و .. رو چک کنیم.
systemctl
ps -ef
ps auxf
توی مثال زیر nginx + یه کانتینر داکر + یه پروسس nodeJs در حال اجرا هستن که میتونه بیشتر منابع رو مصرف کنه و اجرای بقیه برنامه هارو دچار اختلال و کندی کنه ( یه پروسس نود جی اسی وقتی MaxEventListner هاش رو رد بکنه توی یه کانتینر داکری میتونه کاری کنه سیستک حتی ریسارت هم نشه و timeOut بده)
در قدم های بعدی بهتره استاتوس SELinux ، لاگ های موجود ، مشخصات اتصالات دقیق تر شبکه (با setstat یا ss)رو پیدا کنین و بر اسا اونا تصمیم گیری های آینده خودتون رو انجام بدین.
مطلبی دیگر از این انتشارات
پیش به سوی سینیور شدن :)
مطلبی دیگر از این انتشارات
چند نکته جالب برای بهینه کردن داکرفایل Dockerfile - قسمت اول
مطلبی دیگر از این انتشارات
استفاده از فایل Json برای ذخیره و بازیابی تنظیمات برنامه