CentOS x86_64 Sistemlerden i386 Paketlerin Kaldırılması
Yeni bir 64bit CentOS kurduğunuz zaman, sisteminize bazı 32bit paketlerin de yüklenmiş olduğunu görebilirsiniz. Bunun sebebi CentOS’un, uyumluluk nedeni ile bazı paketlerin 32-bit sürümlerini de sisteme yüklemesidir. Bu durum kurulum sırasında öntanımlı olarak gerçekleştiği için önemsenmeyebilir. Ancak herhangi bir nedenden ötürü sisteminizin tam manası ile 64bit olmasını istiyorsanız bahsi geçen 32bit paketleri yazının devamında anlatıldığı şekilde sisteminizden kaldırabilirsiniz. |
Linux Sistemlerde RAM Disk Oluşturulması
Sistem memorysinin bir kısmının sisteme disk partisyonu olarak mount edilmesiyle oluşturulan ramdiskler zaman zaman disk I/O ile alakalı bazı konularda sistem performansını arttırmak üzere kullanılabilecek güzel bir alternatif olabilmektedir. Ram üzerinde dosya sistemi oluşturulmasına ve bu alan içerisinde dosya barındırılmasına olanak sağlayan ramdiskler özellikle veri güvenliğinin önplanda olmadığı cache vs. gibi işlemler için tercih edilebilirler. Örneğin daha önce ramdisk kullanılarak yapılan bir reverse proxy uygulamasından bahsetmiştim. Bu yazıda ise Linux sistemlerde ramdisk oluşturulmasından ve otomatik olarak mount edilmesine değineceğim.
qmail-channels patch: Giden Postalar için Domain Bazlı Hız Limiti
Bülten, duyuru ya da marketing gönderileri için mailer olarak kullanılan qmail posta sunucularında domain bazlı hız limiti tanımlayabilmek total gönderim hızını efektif olarak kullanmak için gerekli yöntemlerden birisidir. Bildiğiniz üzere Hotmail ve Yahoo gibi büyük e-posta sağlayıcıları, kendilerine gönderilebilecek postalar için hız ve adet bazında filtreleme yapmaktadır. Örnek olarak (özellikle) Yahoo ya da Hotmail, size ait IP’ler için (çeşitli hesaplama yöntemleri kullanarak) belirledikleri limitten daha hızlı bir şekilde gönderim yapmanız halinde gönderdiğiniz postaları belirli bir süreliğine redderek bir nevi gri liste uygulamasında bulunurlar. Böylece sizin için tanımlanan eşiğin üzerine çıkmanızı engelleyerek sistem kaynaklarını tüketmenize engel olurlar.
Böyle bir durum, size limit uygulayan domainler dışında kalan yerlere gidecek maillerin de gecikmesine ve total gönderimin yavaşlamasına neden olur. Çünkü bu tip mailler gönderilemiyor olsalar da qmail kuyruğunda beklemekte ve her bir gönderim denemesi için kendilerine bir thread (dolayısı ile kaynak) ayırılmaktadır.
Bu problemi ortadan kaldırmak üzere qmail-channels isimli güzel bir patch bulunuyor. Bu yama ile qmail’e farklı domainler için farklı kuyruk’lar (queue) ekleyebiliyor ve her bir kuyruk için farklı concurrency değeri (eş zamanlı gönderim adedi) belirleyebiliyorsunuz. Yazının devamında, qmail-channels yamasının bir qmail sunucusuna (netqmail-1.06) geçilmesinden ve belirli domainler için yapılandırılmasından bahsedeceğim.
Yazinin devami icin tiklayin.
diff ile Dizin Karşılaştırma ve Fark Tespiti
Dosyalar arasındaki farkları bulmaya yarayan diff aracı aynı şekilde -r (recursive) parametresi ile kullanılarak iki dizin arasındaki farkların tespiti için de kullanılabilir. Özellikle dosya/dizin yedekleme gibi kaynak ve hedef dizin arasındaki farkların belirlenmesi gereken işlemler için diff aşağıdaki şekilde kullanılabilir.
# diff -rq /kaynak/ /hedef/
Kök (/) dizinindeki kaynak ve hedef isimli klasörler arasındaki farkların listelenmesini söylediğimiz yukarıdaki komutta kullanılan parametrelere ait bilgiler şu şekildedir:
-r (recursive): Belirtilen dizinin tüm alt dizinlerine de göz atılmasını sağlamaktadır.
-q (brief): ise, farkların özet olarak gösterilmesini sağlar. Böylece düzgün bir listeleme yapılabilir.
Komutun örnek bir çıktısı ise şu şekilde olacaktır:
Only in /kaynak/: test1.txt Only in /hedef/: test2.txt Files /kaynak/test3.txt and /hedef/test3.txt differ
Görüldüğü gibi, test1.txt isimli dosya sadece /kaynak dizininde bulunurken, test2.txt isimli dosya sadece /hedef dizininde bulunuyor. Ayrıca, her iki dizinde de bulynan test3.txt isimli dosyanın içerikleri farklı.
diff ile ilgili daha fazla bilgi için man sayfasına göz atabilirsiniz:
http://unixhelp.ed.ac.uk/CGI/man-cgi?diff
mod_rewrite – .htaccess ile Bakım Sayfasına Yönlendirme
Bir web sitesini ya da uygulamasında bakımla ilgili bir çalışma yapılması gerektiğinde ziyaretçileri durumu bildirir bir bakım sayfasına yönlendirmek icap ediyor. Bu gibi bir işlem için izlenebilecek bir çok yöntem var. Bunlardan bence en pratik ve kullanışlı olanı ise apache’nin mod_rewrite modülünü kullanarak koşula bağlı yönlendirme yapmaktır.
Zira, bakım sayfanıza belli IP’lerden gelen istekleri ya da bakıma alınacak web uygulamasına (örneğin bir reklam sunucusuna) sürekli olarak erişmesi gereken sitelerden gelen istekleri yönlendirmeden muaf tutmanız gerekebilir. Ayrıca bakım işleminin bir iki saatten uzun süreceği durumlarda, isteklere yönlendirmenin geçici olduğunu bildiren 302 status kodunu döndürmek de isteyebilirsiniz.
İşte bu gibi ihtiyaçlar için mod_rewrite kullanmak iyi bir yoldur.
Eğer ilginizi çekiyorsa yazının devamında yönlendirme işlemlerinin nasıl yapılabileceği ile ilgili açıklama ve örnekler bulabilirsiniz.
lsof (LiSt Open Files) Kullanımı ve Örnek Komutlar
lsof, süreçler tarafından açılmış olan dosyaları listelemeye yarayan bir araçtır. Bildiğiniz gibi *nix sistemlerde, hemen herşey bir dosya olarak mevcudiyet gösterir. Örneğin herhangi bir sürecin eriştiği ya da açtığı “şey” sıradan bir dosya olabileceği gibi, bir dizin, bir block aygıt dosyası (block device), ya da bir sistem kütüphanesi ve ya bir network dosyası (network socket, Unix domain socket) olabilir. Dolayısı ile lsof ile süreçlerin eriştikleri dosyaları saptamak ilgili süreçlerin arka planda yaptığı işlemlerle ilgili daha net fikirler edinmek anlamına gelmektedir. Bu yüzden de özellikle sorun giderme konularında lsof çok güçlü bir araçtır.
Yazının devamında, lsof ile ilgili kullanım bilgilerini ve çeşitli durumlar için örnek komutları bulabilirsiniz.
Kurulu Perl Modüllerinin Listelenmesi
*nix sistemlerde, hali hazırda kurulu olan tüm perl modüllerinin bir listesini almak için aşağıdaki gibi bir komut kullanılabilir.
# perl -MFile::Find=find -MFile::Spec::Functions -Tlw -e \ 'find { wanted => sub { print canonpath $_ if /\.pm\z/ }, no_chdir => 1 }, @INC'
Uzun ve söz dizimi zor bir komut olduğundan bir yere not etmekte fayda var.
Komut Satırından Mysql Kullanıcı Şifresi Değiştirmek
Bir stemci ya da arayüz sunan bir uygulama üzerinden erişim sağlayamadığınız bir MySQL sunucusunda, varolan bir kullanıcıya ait şifreyi komut satırından değiştirmek için aşağıdaki örnek takip edilebilir. Aslında işlem klasik bir update cümlesi çalıştırmaktan ibaret olsa da sürekli yapılan bir işlem olmadığından bazen unutulabiliyor. |
Şifre değiştirmek için sırası ile izlenmesi gereken adımlar şunlar:
1 – ) Shell üzerinden mysql sunucusuna root kullanıcısı ile login olun:
# mysql -u root -p Enter password: mysql>
2 -) Kullanıcı bilgileri vs. gibi yapılandırma bilgilerinin tutulduğu mysql db’sine erişim sağlayın:
mysql> use mysql;
3 – ) Adı “falanca” olan kullanıcıya ait şifreyi “yenisifre” olarak değiştirmek için aşağıdaki örnek update komutunu kullanabiliriz.
mysql> update user set password=PASSWORD("yenisifre") where User='falanca'; mysql> flush privileges;
Komut satırından şifre değişikliği için yukarıdaki update cümlesi ile aynı işi yapan SET PASSWORD gibi yönlemlerde mevcut; detay için: http://dev.mysql.com/doc/refman/5.0/en/set-password.html adresinden yararlanabilirsiniz.