Scripting

by

Sistem yöneticiliği yaparken yazdığım scriptler işlerimi çok kolaylaştırıyor. Genellikle bash ve perl scripti yazıyorum.

Solaris sistemlerinde çalışırken Korn shell scriptleri yazıyordum. Zaten Solaris’in eski versiyonlarında sh (Bourne shell), csh (C shell) ve ksh (Korn shell) geliyordu. Programlamaya daha uygun olan Korn shell’di.

Linux kullanmaya başlayınca doğal olarak bash (Bourne Again shell) kullanmaya başladım. İkisi de Bourne shell ile uyumlu olduğu için ksh’den bash’e geçmek oldukça kolay oldu. bash’in bir güzel tarafı yeni versiyonların çıkmaya devam etmesi ve yeni özelliklerin eklenmesi. GNU projesinde kullanılan shell olduğu için sürekli olarak geliştirilmesi gayet normal.

bash scriptlerini en çok yedekleme işlemlerinde kullanıyorum. Ayrıca, ZFS kullandığım çoğu sistemde düzenli olarak snapshot oluşturuyorum. Tabii bunu bir döngü içerisinde yapmak gerekiyor. Yenileri oluştururken eskileri silinmeli. Script içinden bunları ayarlıyorum. Belli bir anda kaç adet snapshot olacağı, ne kadar süre sonra silineceği script içinden kolayca yapılıyor.

Shell script yazarken hem shell komutlarını hem de Linux komutlarını kullanıyoruz. Her Linux komutu ayrı bir process başlamasına yol açıyor. Yapılan işe göre bu scriptin çok yavaş çalışmasına yol açabiliyor. Örneğin e-posta sunucusu üzerinde logları inceleyerek işlem yapan bir script, shell script olarak yazıldıysa çok yavaş çalışıyor. Ben, performansın önemli olduğu durumlarda Perl scriptleri yazdım.

Perl öğrenirken O’Reilly yayınevinin kitaplarından çok faydalandım. Programming Perl kitabı çok meşhurdur. Kapağındaki deve resminden dolayı ‘Camel Book’ olarak biliniyor. O’Reilly’nin Cookbook kitapları da çok hoşuma gitmiştir. Perl Cookbook kitabından da çok faydalandım.

Perl scriptleri, LDAP sunucusu üzerinde işlem yaparken de imdadıma yetişiyor. LDAP sunucusu olarak OpenLDAP kullanıyorum. Yönetim için kullanılabilecek açık kaynak kodlu programlar sınırlı. İncelediklerim benim pek hoşuma gitmedi. Pek çok işlemi kendi yazdığım Perl scriptlerim ile hallediyorum.

Yıllar içinde, hala aktif olarak kullandığım çeşitli Perl scriptleri yazdım. Zaman içerisinde hataları giderdim ve gayet güzel bir şekilde işimi görüyor. İyice oturmuş bir program kodunu, sırf daha popüler diye başka bir script dilinde tekrar yazmaya çalışmak bana anlamsız geliyor.