Cumartesi, Mayıs 23, 2020

Mülakat sorularından derleme

Aklıma biraz geç geldi aslında ancak hem aklımda kalanlardan hem de her yerde bulunanlardan değil de, daha özel olanlardan yazmak istedim. İster mülakat sorusu deyin, ister sınav sorusu, güzel soruları biriktirmeye karar verdim. (Bu sorular (sorulanlar) bana İngilizce soruldu genelde, ama blog konseptim Türkçe içerik olduğu için ben yine Türkçe paylaşmak istedim.) Bu sorular zamanla artacak, hatta ben de "bu güzel olur" dediklerimi ekleyeceğim. Ayrıca aklınıza gelen soruları, varsa hatalarımı da yorumlara eklerseniz çok sevinirim.

Yanıtlar o konu hakkında kısa bir bilgi içeriyor. Ancak buradaki kısa bilginin detaylarını araştırıp öğrenmeyi tavsiye ederim. Çünkü eğer bir mülakattaysanız muhtemelen yanıtınızdan yeni sorular, konuyu üstün körü mü, yoksa detaylı mı biliyorsunuz diye yoklamalar olacaktır ;-) 

Ayrıca ufak ufak yorumlar da sorunun sonunda yıldızlı olacak.

Linux Soruları


1) LVM nedir?

- Logical Volume Management (LVM)kısa halidir. LVM, modüler disk kümeleri oluşturulmasını, böylece ihtiyaç halinde disk alanı üzerinde istenilen boyutlandırmanın yapabilmesini sağlar. 

* Evet bu soru çok klasikti. Ancak aslında aşağıdaki soruya giriş için bir olta diyebiliriz. Aslında bir çok soru böyle. Birbirini tamamladığını fark edeceksiniz :)

2)  LVM disk configuration nasıl yapılır?

- Aşağıdaki adımlar izlenmelidir. 
1. Fiziksel Volume oluştur:
    - pvcreate ile, yeni eklenen bir diski veya bir partition'ı veya SAN üzerindeki bir LUN'u sisteme fiziksel bir disk olarak tanıtıyoruz. 
     Örnek: 
     #pvcreate /dev/sdb
   * pvdisplay ve  pvs komutları ile disklerin durumu görülebilir

2. Volume Group oluştur:
    -  İçine logical volume'ler oluşturabilmek için Fiziksel volume'lerden bir grup oluşturuyoruz. 

   Örnek:
  # vgcreate vg-01 /dev/sdb /dev/sdc

 * vgdisplay ile volume grup'lar görülebilir. 
3. Logical Volume oluştur:
  - Logical Volume ile ihtiyacınız olan alanı mevcut volume grup içine oluşturmuş oluyoruz. 3 farklı şekilde oluşturulabilir.
  • Linear Volume
  • Striped Volume
  • Mirrored Volume
  Örnek:  
     # lvcreate -L 1G -n lv_linear vg-01

4. LVM'yi etkinleştir:
  - Volume group ve Logical Volume oluşturulduğunda LVM otomatik olarak etkinleşir. Ancak herhangi bir sebeple etkinleşmemişse lvchange veya vgchange ile etkinleştirme yapılabilir.

* Detay için bkz: https://linoxide.com/linux-how-to/lvm-configuration-linux/



3. DNS sorgusu nasıl çalışır?

Kullanıcı bir DNS sorgusu yolladığında, IP-İsim dönüşümünü sırasıyla buralarda arama yapar;

  1. Local Cache
  2. Hosts  dosyası kayıtları
  3. Local DNS Server kayıtları ( tip: Linux için resolv.conf altında)
  4. Root DNS
  5. TLD (Top Level Domain-Üst Düzey Alan Adları)
  6. SLD-Second Level Domain -  İkinci Seviye Alan Adı) 
  7. Alt alan sunucuları

 * Not: Bu seviyelerden herhangi birinde kayda erişilirse client-server arası doğrudan iletilir. DNS yolu ters giderek sonucu iletmez. Bu da sorulabilir :-)


4.  Root DNS nasıl çalışır/Özellikleri nelerdir?

IANA tarafından yönetilen toplam 13 tane DNS IP'si vardır. (Bu 13 IP'nin bağlı olduğu dünya üzerinde binden fazla sunucu (doğrusu instances) vardır) Gelen istekleri TLD(Top Level Domain – Üst düzey Etki Alanı) sunucularına yönlendirir. TLD bir domainde gördüğümüz son kısımdır. Örneğin, .....com.tr domanin'de tr TLD'dir ancak .....com adresinde TLD com'dur.

5. dig nedir? Nasıl kullanılır? 

Dig(domain information groper) komutu, linux sistemlerde DNS sorgusu yapmak için kullanılır. Ancak nslookup'a oranla çok daha detay bilgiler sunar. Dig ile o sunucu için MX kaydı, NS kaydı gibi diğer kayıt bilgilerine de ulaşılabilir.

# dig google.com 
# dig google.com -t MX

6. DNS Kayıtlar tipleri nelerdir?

A  (Host address)
AAAA (IPv6 host address)
ALIAS (Auto resolved alias)
CNAME (Canonical name for an alias)
MX (Mail eXchange)
NS (Name Server)
PTR (Pointer)
SOA (Start Of Authority)
SRV (location of service)
TXT (Descriptive text)


7. What is the functions of /opt, /proc, /sys folders?
 
/opt : Üçüncü parti kullanıcı programlarının kurulması içindir.

/proc : Süreçler, sistem belleği, bağlı aygıtlar, donanım yapılandırmalarıyla ilgili bilgileri içeren özel bir “sanal” dosya sistemidir. Bildiğimiz anlamda fiziksel dosyalar bulundurmaz; sistem durumuna dair bilgi içeren sanal dosyaları vardır. Windows'taki görev yöneticisi gibi düşünülebilir.


/sys : Çekirdek modüllerinin sanal bir yansımasının oluşturulduğu bir dizindir. Burada yapılan değişikliklerin bazıları çekirdeğe yazılır bazıları yazılmaz.


8. /sys dizinini yedekleyip, geri döndürülür mü?

Hem / proc hem de / sys, sistemin durumunu yansıtan ve çeşitli çalışma zamanı parametrelerini değiştirmenize izin veren (ve bazen doğrudan belleğe veya bir aygıta yazma gibi daha tehlikeli şeyler yapmanızı sağlayan) sanal dosya sistemleridir. Asla yedeklememeli veya geri yüklememelisiniz.

* Tavsiye: Hazır el atmışken Linux dizin yapısını öğrenmekte fayda var. :-) 


9. MTA nedir?

MTA, "Message (veya Mail) Transfer Agent" (Mail Aktarım Ajanı) kısaltmasıdır. Bir elektronik postanın gönderen sunucudan, alıcı sunucuya, SMTP protokolünü kullanarak aktarmak ve yönlendirmekten sorumludur. TCP/25 Portunda çalışır. Linux için Postfix, Qmail, sentmail, exim, zimbra sayılabilir.


10. Bir sunucuda çalıştırdığınız bir servis ve o servisin iletişim portu var. Bu portun çalışıp çalışmadığını nasıl (hangi araçla) test edersiniz?

Telnet

* Bu basit sorunun yeri bende ayrı. Bilememiştim. Daha doğrusu çok iyi bildiğim bu yanıt aklıma gelmemişti. Genelde daha spesifik düşünüyoruz. Netstat vs. demiştim. Ancak netstat portun açık olup olmadığını test eder, çalışmasını test ederken telnet kullanıyoruz. O yüzden yazmak istedim :-) 

11. Block based backup (Blok tabanlı yedekleme) ile File based backup (Dosya tabanlı yedekleme) arasında ne fark vardır?

Blok tabanlı yedekleme ile bir disk bloğunun yedeği bütün olarak alınır. İçinden tek bir dosya çıkarmak da mümkündür ancak uygun programı kullanılması gerekir. Daha kompleks ancak daha sağlıklı bir yedekleme sağlar.
Dosya tabanlı yedeklemede ise, sadece dosya veya dizin yedeklenir. Bir anlamda farklı bir ortama kopyalanır. Daha basittir, küçük sistemlerde az yatırım ile çözüm için tercih edilebilir. (rsync, dar, dump, tar, vs kullanılabilir) 

12.Bir kritere göre dosya bulan ve silen komut nasıldır?

find [aranacak dizin] -type f -name [dosya adı] -exec rm -rf {} \;


veya


find [aranacak dizin] -type f -name [dosya adı] | xargs rm -rf

* Kolay bir örnek. Ancak bu şekilde ufacık script örnekleri olabilir demek için yazdım bu soruyu da. Özellikle xargs, grep, awk gibi komutlara bir göz atmakta fayda var ;-)


13. Dosya sistemlerinde günlükleme (journaling) nedir? Avantajı nedir?


Günlükleme (journaling), dosya sistemi üzerinde yapılan işlemlerin loglarının başka bir yerde tutulmasınına denir. Bu özellik sayesinde yapılan son işlemlere ulaşılabilir. Bir sorun halinde sistem/dosya kurtarması için işe yarar.

14. Linux'ta en bilinen günlüklü dosya sistemleri hangileridir? 

Ext3, ext4, ReiserFS (günlüklemeyi ilk kullanan), XFS (en kararlı kabul edilen)

* Ext3'ün Ext2'den en önemli farkı budur. 

15. "kill -9" ile "kill -15" arasında ne fark vardır?

Kill komutu ile bir process sonlandırılabilir. Kill komutuna gelen sayılar signal değerleridir. -9 ile beliritilen sinyal process'i öldürür (zorla durdurur), -15 ile belirtilen sinyal ise, process'in kapanmaya zorlar (kibarca :) ) Eğer aksi bir sinyal belirtilmezse kill komutu -15 sinyalini almış gibi hareket eder.

# kill -9 [PID] --> Zorla PID numaralı process öldürülür.
# kill [PID] --> # kill -15 [PID] yazmak ile aynıdır.

16. ip ile ifconfig arasında ne fark var? 


17. 


Sanallaştırma (Vmware) Soruları

16. (Senaryo) Bir ESX Host Vcenter ile iletişimi kopardı. SSH ile bağlandın ve hostd çalışmıyor. Fakat üzerinde çalışan VM'ler olduğu için restart edemiyorsun. Hangi komut ile işlem yapmalısın?

Kısa yanıt: localcli. 

Uzun Yanıt: host.d çalışmadığında esxcli komutu da iş görmez. Ancak bu durumda localcli komutu ile işlem yapıp vm'lere müdahale edilebilir. 

Açıklama: Bu soru çok farklı şekilde sorulabilir tabi. Senaryo'da sorudan soru üretilebilir. "VCenter ile iletişim koptu ne yaparsın?" "Host'a SSH ile bağlanırım". "Bağlandın hangi komutu kullanırsın?" "esxcli genelde iş yapar". "esxcli çalışmıyor, neden?" "Çünkü hostd çalışmıyor". Son olarak da üstteki haline gelebillir. 

Tabi bir de localcli üzerine bakmakta fayda var. 

ESXCLI LOCALCLI
esxcli komutu ile esxi host yönetilebilir. localcli komutu ile aynı esxcli komutu gibi çalışır. Ancak hostd prosesi bypass olur.
Sadece hostd çalışırken iş görür hotsd çalışmıyorsa ve sunucu restart edilemiyorsa kullanılır.

Localcli komutu ile işlem yapıldıktan sonra hostd restart edilmeli ve ardından esxcli kullanılmalıdır.

Diğer durumlarda localcli komutu kullanmak sistem durumunu riske sokar ve potansiyel risk barındırır
Vmware tarafından desteklenir. Sadece Vmware Support tarafından tavsiye edildiği durumda kullanılmalıdır.


Hiç yorum yok: