Svn’den Web Sitelerinin Anında Güncellenmesi

Birkaç hafta önce, liste.linux.org.tr’nin izinden giderek derneğin hemen hemen tüm web sitelerini svn’de tutulur ve güncellenir hale getirmiştik.

liste.linux.org.tr farklı bir sunucuda olduğundan, zamanlayıcıdan çalışan bir betikle bu işlemi yapıyordu. Onunla başlayan alışkanlıkla, diğer web siteleri de aynı sistemle svn’den güncellenir ayarlanmıştı. Ancak site sayısı ve dosya miktarı artınca düzenli yapılan svn kontrol işlemi sunucuya işkence yapmaya başladı. Üstelik belirli zaman aralıklarıyla sitelerin güncellenmesi, üzerinde aktif güncelleme yapılan siteler için çalışmaları aksatıcı hale de getirmişti.

Bunun üzerine Bahri ile Doruk geçtiğimiz hafta konunun üzerinde çalıştı, svn servisi ile aynı sunucuda bulunan web sitelerinin hemen hepsi svn’de yapılan işlem sonrası çalıştırılan bir betikle güncellenir hale getirdiler. Betik önce svnlook komutuyla yapılan commit’te güncellenen dizinlerin bir listesini alıyor, cut ve uniq yardımıyla onlardan hangi web sitelerinin güncellendiğinin listesini çıkarıyor, elindeki eşleme tablosuna göre hangi web sitesinin hangi dizinde olduğunu bulup, ilgili dizinlerdeki web sitelerine geçerek onları svn’den güncelliyor.

Böylece hem artık web siteleri svn’de işlem olduğu saniyede güncelleniyor, hem de sunucu gereksiz yükle yorulmuyor.

25 Mart 2009

Posted In: Yk