در سرورهای لینوکسی نکاتی وجود دارند که اگر آنها را در اولین بار ورود به سرور و قبل از نصب هر سرویسی انجام دهید، میتوانید بازدهی بالاتری را تجربه نمایید. در این مقاله با لیستی از کارهای پیشنهادی آقای Gaurav Kamathe از سایت openSource.com به عنوان اقدامات در سرور لینوکسی آشنا می شویم.
1.اولین اقدام در سرور لینوکسی
در اولین اتصال به سرور باید ببینید با چه سیستم عاملی روبرو هستید، ساختار سخت افزاری این سرور لینوکسی چگونه است و چه مدت از روشن بودن آن میگذرد. برای این کار یه ترتیب از دستورات زیر استفاده کنید:
1 2 3 4 |
cat /etc/redhat-release uname -a hostnamectl uptime |
درصورت استفاده از توزیعهای دیگر لینوکس کاراکتر” * ” را جایگزین کلمهی redhat نمایید.
2.آیا کاربر دیگری به سرور لینوکس وارد شده است؟
از تنها بودن خود در سیستم اطمینان حاصل کنید. این امر گرچه بعید به نظر میرسد اما این کار امنیت شما را افزایش داده و هم از به وجود آمدن تداخل های احتمالی جلوگیری میکند. از دستورات زیر کمک بگیرید:
1 2 3 |
who who -Hu grep sh$ /etc/passwd |
3. قدم بعدی: ماشین فیزیکی یا مجازی
اقدام بعدی در سرور لینوکسی اطمینان حاصل کردن از مجازی بودن یا نبودن ماشینی که ما به آن وصل هستیم. برای شناسایی این اطلاعات از دستورات زیر استفاده کنید. اگر یک سیستم فیزیکی باشد ، نام تولید کننده(به عنوان مثال HP ، IBM و غیره) را مشاهده خواهید کرد. در حالی که ، در یک ماشین مجازی ، بسته به اینکه از چه نرم افزار مجازی سازی برای ایجاد VM استفاده شده است ، باید KVM ، VirtualBox و غیره را ببینید.
1 2 3 4 5 |
dmidecode -s system-manufacturer dmidecode -s system-product-name lshw -c system | grep product | head -1 cat /sys/class/dmi/id/product_name cat /sys/class/dmi/id/sys_vendor |
4. سخت افزار سرور لینوکس!
یکی از مهمترین موارد برای بررسی اطلاع از مشخصات سختافزاری است. بررسی این مورد میتواند خیلی از تصمیمات کلیدی آینده پروژه شما را تحت تاثیر قرار دهد .( درصورتی که ماشینی 2 گیگ رم دارد نصب کردن گیت لب بر روی آن باعث به وجود آمدن مشکلاتی برای سرور خواهد شد.)
دستورات زیر شما را راهنمایی میکند:
1 2 3 4 5 6 7 |
lscpu or cat /proc/cpuinfo lsmem or cat /proc/meminfo ifconfig -a ethtool <devname> lshw lspci dmidecode |
5.برنامههای نصب شده بر روی سرور
قبل از نصب هرچیزی بررسی مخازن پیکربندی شده (repose)نیاز است. درنتیجه میدانید که نرمافزار از کجا آمده و میتوانید مشکلات نصب بسته را رفع کنید. برای شناسایی نرمافزار های نصب شده از دستورات زیر استفاده کنید:
1 2 3 4 5 6 7 |
rpm -qa rpm -qa | grep <pkgname> rpm -qi <pkgname> yum repolist yum repoinfo yum install <pkgname> ls -l /etc/yum.repos.d/ |
6.پروسس ها و سرویس های در حال اجرا در سرور لینوکسی
بعد از بررسی نرمافزارهای نصب شده به بررسی فرایندهای درحال اجرا بر روی سیستم بپردازید. این امر هنگام اجرای یک تست عملکرد بر روی سیستم بسیار مهم است – اگر فرایندهای در حال اجرا مقادیر بیشتری را از منابع CPU / RAM را مصرف میکند ، منطقی است که قبل از اجرای تست ، این روند را متوقف کنید.
برای متوقف کردن فرایند های درحال اجرا دستورات زیر را به کار ببرید:
1 2 3 4 |
pstree -pa 1 ps -ef ps auxf systemctl |
7.اتصالات شبکه
ماشین های امروزی تماما به هم مرتبطند. ماشینها نیازمند ارتباط با یکدیگر و دیگر سرویسها روی شبکه میباشند. باید تعین کنید کدام پورتها روی ماشین باز باشد. اگر قرار است یک فایروال فعال باشد آیا لازم است همه ی پورتها بسته شوند؟ آیا نیاز است بین ماشین تستی و شبکهی اصلی ارتباطی وجود داشته باشد؟ همچنین تعین کنید کدام DNS سرور باید تنظیم شود.
از دستورات زیر برای شناسایی اطلاعات مربوط به خدمات شبکه استفاده کنید. اگر یک دستور منسوخ در دسترس نیست ، آن را از yum repo نصب کنید یا از دستور جدیدتر معادل آن استفاده کنید:
1 2 3 4 5 6 |
netstat -tulpn netstat -anp lsof -i ss iptables -L -n cat /etc/resolv.conf |
8.هسته(kernel)
هنگام انجام آزمایش سیستم ، دانستن اطلاعات مربوط به هسته ، مانند نسخه کرنل و بارگیری ماژول های کرنل، مفید است. همچنین پارامترهای قابل تنظیم و تنظیم شده روی هسته را لیست کرده و گزینههای استفاده شده هنگام بوت شدن هسته در حال اجرا را بررسی می کنیم:
1 2 3 4 5 6 |
uname -r cat /proc/cmdline lsmod modinfo <module> sysctl -a cat /boot/grub2/grub.cfg |
9.گزارش ثبت (Logs)
درحال حاضر ما اطلاعات مفیدی درمورد سرور داریم از جمله نرم افزار های نصب شده و فرایندهای درحال اجرا. از موارد اجتناب ناپذیر دیگر پروندههای لاگ هستند. باید بدانیم که مواردی که به طور منظم به روزرسانی میشوند را از کجا بررسی کنیم برای این کار دستورات زیر را اجرا کنید:
1 2 3 |
dmesg tail -f /var/log/messages journalctl |
در حالی که دستورات و برنامه های کاربردی تغییر خواهند کرد ، اطلاعات زیربنایی که نشان می دهند کم و بیش ثابت می ماند. قبل از اینکه بتوانید روی دستورات تسلط پیدا کنید ،شما به نمایش سطح بالایی از اطلاعاتی که دنبال آن هستید و ردههای آنها، نیاز دارید.
از آنجا که Linux بیشتر اطلاعات را در پرونده ها ذخیره میکند ، این دستورات اساساً اطلاعات موجود در پرونده ها را میخوانند و آنها را به روشی قابل فهم ارائه میدهند. یک قدم بعدی خوب ، شناسایی پروندههایی است که هر فرمان برای به دست آوردن اطلاعات برای نمایش استفاده میکند. نکته ای برای یافتن این اطلاعات ، دستور strace است.
برای مطالعه بیشتر در مورد سرور لینوکسی میتوانید مقاله آموزش کار با putty را مطالعه نمایید.