2.2. Linux server administratsiyalash Linux juda keng soha va tabiiyki, biz ushbu maqolada uni to‘liq yorita olmaymiz. Ammo keling, server yoki uy kompyuteri bo‘ladimi, administrator oldida paydo bo‘ladigan asosiy vazifalarni yoritishga harakat qilaylik. Bu erda biz ko‘rib chiqadigan asosiy vazifalar:
Linux serveriga masofaviy kirish.Ko‘pincha web-ustalar va ma'murlar fayllarni serverga masofadan kirish va yuklash uchun SSH va FTP-dan foydalanadilar. SSH orqali siz nafaqat fayllarni uzatasiz, balki serverda turli xil Linux buyruqlarini ham bajarasiz. FTP faqat serverga fayllarni yuklash, ularni ko‘chirish va nomini o‘zgartirish imkonini beradi. Qisqasi, masalan, sayt fayllarini bir serverdan boshqasiga o‘tkazish uchun avval tar yordamida arxiv yaratamiz:
$ tar cvzf backup.tar.gz /папка/с/файлами Iltimos, fayllarga bo‘lgan huquqlar saqlanib qolmasligi uchun p variantini o‘tkazishingiz shart emasligini unutmang, keyin huquqlarni qo‘lda o‘rnatishingiz kerak bo‘ladi. Arxiv tayyor bo‘lgach, uni serverga o‘tkazish uchun scp nusxasidan foydalaning:
$ scp backup.tar.gz user@ip_сервера:/var/www/public_html/ Keyin biz serverga kiramiz va arxivni ochamiz:
$ ssh user@ip_сервера
$ cd /var/www/public_html/
$ tar xvzf backup.tar.gz Shundan so‘ng, ochilmagan ma'lumotlarning egasini web-serverning foydalanuvchi nomiga o‘zgartirish qoladi:
$ chown -R www-data /var/ww/public_html/project/ Serverni boshqarish bo‘yicha ko‘pgina qadamlarni bajarishingiz kerak bo‘ladi, shuning uchun ssh dan qanday foydalanishni tushunish yaxshiroqdir.
Linux serverlarini boshqarishning ushbu nuqtasi jismoniy kirish imkoningiz bo‘lgan kompyuterlar uchun ko‘proq mos keladi, lekin ba'zi hollarda u serverda ham foydali bo‘lishi mumkin. Kompyuterning tarmoqqa kirishini tekshirishning eng oson yo‘li - ping:
$ ping ya.ru
Agar buyruq to‘g‘ri ishlayotgan bo‘lsa va siz paketlarni masofaviy xostga uzatishni ko‘rsangiz, unda hamma narsa yaxshi. Agar yo‘q bo‘lsa, sababini tushunmoqchiman. Ushbu ulanish uchun IP manzili va tarmoq niqobi ko‘rsatilganligini tekshiring:
$ ifconfig
Tarmoqqa kirish shlyuzi to‘g‘ri o‘rnatilganligiga ishonch hosil qiling:
$ ip route
Odatda, bu sizga tarmoq konfiguratsiyasi noto‘g‘ri ekanligini ko‘rsatishi mumkin, masalan, kompyuter DHCP orqali kerakli ma'lumotlarni olmaydi yoki statik sozlamalar noto‘g‘ri. Bundan tashqari, muammo DNS da bo‘lishi mumkin. Ehtimol, tarmoq mavjud, lekin server domen nomiga asoslangan IP manzilini ololmaydi, tekshirish uchun siz ba'zi tashqi IP-ga ping yuborishingiz mumkin:
$ ping 8.8.8.8
Agar tarmoq ishlamasa va u to‘g‘ri sozlangan bo‘lsa, siz hali ham qaysi tugunda ulanish buzilganligini aniqlashga harakat qilishingiz mumkin. Buning uchun traceroute buyrug‘idan foydalaning:
traceroute 8.8.8.8
Ushbu ma'lumotlarning barchasi xato nima ekanligini va uni qanday hal qilishni tushunishga yordam beradi.
Tizim resurslari monitoring.Ko‘pincha server juda sekin ishlay boshlaydi, web-xizmatlar juda sekin javob berishni boshlaydi va hatto SSH ulanishi sekin bo‘lishi mumkin. Ehtimol, bu protsessor yoki xotira resurslarining haddan tashqari yuklanishidan kelib chiqishi mumkin. Agar butun xotira band bo‘lsa, tizim ma'lumotlarni diskka, almashtirish bo‘limiga o‘tkazadi, bu ham serverni sezilarli darajada sekinlashtiradi. Qancha xotira mavjudligini ko‘rish uchun bepul buyruqdan foydalaning:
$ free -h
Tabiiyki, agar faqat 40-50 MB bepul bo‘lsa, unda bu tizim juda kichik va hamma narsa juda sekin ishlaydi. Keyingi qadam qaysi jarayon eng ko‘p xotirani iste'mol qilishini aniqlashdir, buning uchun htop buyrug‘idan foydalanishingiz mumkin:
$ htop
Yordamchi dasturda siz jarayonlarni protsessor yuki,% CPU% ustuni yoki% MEM% xotira iste'moli bo‘yicha saralashingiz mumkin. Shunday qilib, muammoning nima ekanligini va tizimni kim ortiqcha yuklayotganini juda oson tushunishingiz mumkin. Masalan, Apache web-serveri juda ko‘p xotirani iste'mol qilmoqda, shuning uchun Nginxdan foydalanish samaraliroq bo‘lishi mumkin.
Bundan tashqari, ba'zi hollarda biz Linux diskini yuklash va qaysi jarayonlar qattiq diskni haddan tashqari yuklashdan manfaatdor bo‘lishimiz mumkin. Buning uchun iotop yordam dasturi ishlatiladi. Yordamchi dasturni faqat parametrlarsiz bajaring:
$ iotop
Linux tizimi boshqaruvi xizmatlarni boshqarishni ham o‘z ichiga oladi. Ko‘pgina tarqatishlar endi o‘zlarining boshlang‘ich tizimi sifatida systemd dan foydalanadilar. Shunga ko‘ra, Linux xizmatlari undan foydalanib boshqariladi. Nginx web-server kabi xizmat ishlayotganligini bilish uchun quyidagilarni bajaring:
$ sudo systemctl status httpd
Yordamchi dasturning ko‘p sonli chiqishida siz Faol (ishlayotgan) xabarini ko‘rishingiz kerak, bu hamma narsa yaxshi va xizmat kerakli darajada ishlayotganligini anglatadi. Shuningdek, xizmatni qayta ishga tushirishingiz kerak bo‘lishi mumkin:
$ sudo systemctl restart httpd Yoki uni boshlang, agar u ilgari boshlanmagan bo‘lsa:
$ sudo systemctl start httpd Agar xizmat ishga tushmagan bo‘lsa, u holda siz status buyrug‘i yordamida u haqidagi ma'lumotlarni ko‘rishingiz yoki ishga tushirishingiz mumkin:
$ journalctl -xe Agar biron bir xizmat yoki tizim komponenti ishlamasa, unda birinchi narsa jurnallarga qarashdir. Agar u yordam bermasa, disk raskadrovka rejimini yoqing va jurnallarni tomosha qiling. 90% da dastur jurnallarida nima uchun hech narsa ishlamasligiga javob topasiz. Barcha xizmatlarning jurnallari va tizim jurnallari / var / log / papkasida joylashgan. Ba'zi xizmatlar o‘z fayllari uchun alohida papkalarni yaratadilar, masalan / var / log / nginx yoki / var / log / apache.
Agar siz odatiy jurnalda yechim topmagan bo‘lsangiz, unda siz dasturni disk raskadrovka rejimiga o‘tkazishingiz yoki eng batafsil ma'lumotni ko‘rsatishni yoqishingiz mumkin. Bu odatda dasturning konfiguratsiya faylida beriladi. Aniq misollar keltirishning ma'nosi yo‘q, chunki har bir xizmat uchun hamma narsa boshqacha. Ammo keling, siz foydalanishingiz mumkin bo‘lgan bir nechta buyruqlarni ko‘rib chiqaylik:
$ tail -f /путь/к/лог/файлу
Ushbu buyruq yordamida log faylining oxiridagi o‘zgarishlarni real vaqtda ko‘rishingiz mumkin. Agar -f opsiyasi belgilanmagan bo‘lsa, tail buyrug‘i jurnalning oxirgi o‘n qatorini ko‘rsatadi:
$ tail /путь/к/лог/файлу Bundan tashqari, har qanday matn muharriri yoki mushuk yordam dasturini foydalanishingiz mumkin uchun log fayl ko‘rish.
Dasturiy ta'minotni o‘rnatish eng keng tarqalgan boshqaruv vazifalaridan biridir. Linuxda ko‘pgina dasturlar rasmiy yoki uchinchi tomon omborlaridan o‘rnatilishi mumkin. Ba'zi dasturlarni manbadan kompilyatsiya qilish kerak . Paket menejeri omborlardan dasturiy ta'minotni o‘rnatish uchun ishlatiladi. Serverlarda qo‘llaniladigan ikkita asosiy paket menejeri mavjud, ular CentOS tomonidan ishlatiladigan yum va Ubuntu tomonidan qo‘llaniladigan apt. Paket menejerlari xuddi shunday ishlaydi va biz ularning barchasini alohida maqolalarda ko‘rib chiqdik, CentOS dasturlarini o‘rnatish va Ubuntu dasturlarini o‘rnatishga qarang.
Masalan, Ubuntuga paketni o‘rnatish uchun ushbu buyruqdan foydalaning:
Dasturni o‘chirish uchun o‘rnatish o‘rniga o‘chirish buyrug‘idan foydalaning. Ammo serverlar uchun yanada muhimroq narsa bu dasturiy ta'minotni yangilash. Hech qachon avtomatik yangilanishlarni o‘chirmang va tizimingizni yangilab turishga harakat qiling. Barcha dasturiy mahsulotlarni yangilash kerak, chunki ularda yangi zaifliklar doimiy ravishda topiladi va ularni o‘z vaqtida tuzatish kerak.