gurcanozturk.com

başka türlü bir şey benim istediğim

Log dosyalarını dolduran SNMPD satırlarını durdurmak

Kullandığımız sunucu ve sistemleri izlemek için NAGIOS kullanıyoruz. NAGIOS birçok aktif cihazın durumunu (RAM, CPU, vb.) izlemek için SNMP protokolunu kullanıyor. Linux üzerinde SNMPD servisi aktif edilerek, sunucunun birçok bilgisi SNMP yoluyla alınabiliyor.
Read the rest of this entry »

Networkten MP3 dinlemek/dinletmek – DAAP/iTunes

Evdeki ses çıkaran küçük PC’yi kenara atıp yerine Apple MacMini alınca, linux üzerindeki MP3 sunucum da rafa kalktı. MacMini üzerinde OSX Leopard çalıştığı için, MacMini için Digital Audio Access Protocol (DAAP) destekleyen bir sunucu arayışına girdim. Firefly bu iş için oldukça ideal, Windows, Linux, Mac OS X and Mobile OS X (iPod Touch ve iPhone) üzerinde çalışabiliyor. Ben hem Mac OSX hem de linux üzerinde kurup denedim.

Mac OS X üzerinde kurulum oldukça kolay. Normalde Mac OS X için stable release edilmiş bir dosya yok, SVN releaselarda birini http://nightlies.fireflymediaserver.org/nightlies/svn-1696/Firefly-svn-1696.dmg adresinden indirip sisteminize kurun. System Preferences app ile ayarlarını yapabilirsiniz.

Linux’ta kurulum için http://www.fireflymediaserver.org/download.php adresinden stable bir release download edebilirsiniz. Kaynak kodu açıp kurduktan sonra, contrib dizinindeki yapılandırma dosyasını /etc altına kopyalamanız gerekiyor.

cd /usr/local/src
wget http://garr.dl.sourceforge.net/sourceforge/mt-daapd/mt-daapd-0.2.4.2.tar.gz
tar -zxvf mt-daapd-0.2.4.2.tar.gz
cd mt-daapd-0.2.4.2
./configure
make
make install
cp contrib/mt-daapd.conf /etc

Daha sonra bu dosyada gerekli birkaç ayarı yaptıktan sonra sunucunuzu çalıştırın.
Yapılandırma dosyası oldukça küçük ve basit. Örnek olarak içeriği şu şekilde olmalıdır.

web_root /usr/share/mt-daapd/admin-root
port 3689
admin_pw mypass
db_dir /var/cache/mt-daapd
mp3_dir /download/gurcan-mp3/
servername GurcanMusicServer
runas nobody
playlist /etc/mt-daapd.playlist
extensions .mp3,.m4a,.m4p

Sunucuyu /etc/init.d/mt-daapd komutuyla calıştırdıktan sonra sıra geldi sunucuya bağlanmaya. Herhangi bir DAAP destekleyen müzik dinleme programı kullanabilirsiniz. Bu programlarda DAAP protokolünün özelliği olarak otomatik olarak DAAP sunucu ismi çıkıyor ekrana.

*Bazı programlarda (Winamp, SongBird, amaroK) DAAP desteği vermek için ekstra plugin gerekebilir. Bunları da clientiniza eklemeniz gerekiyor.
Benim favorim SongBird

Client olarak birkac öneri;
Linux – amaroK, SongBird
Windows – iTunes, SongBird
Mac OS X – iTunes
Windows Mobile 6 – WifiTunes
Apple iPhone – iTunes

Artık tüm ağınızdan hatta benim gibi, firewalldan 3689. porta gerekli izinleri verirseniz, işyerinizden evinizdeki MacMini üzerindeki müziğinizi bile dinleyebilirsiniz :)

Ubuntu ile 4GB ram

32 bit islemci ile calisan sisteminize 4GB ram taktiniz, BIOS 4GB diyor Ubuntu 3GB. Hangisine inanacagiz?

32bit islemcilerde en fazla 4GB bellek adreslenebileceginden dolayi, sisteminiz 3 GB olarak calisir, bunu asmak icin Physical Address Extension (PAE) eklentisi olan bir kernel kullanmalisiniz. Bunun icin Ubuntu sisteminizde asagidaki komutlari calistirip sisteminizi yeniden baslatmaniz yeterli olacaktir.

sudo apt-get install linux-headers-server linux-image-server linux-server linux-restricted-modules-server

Kabul, server kernel biraz yavas :)

Phpmyadmin error: “Cannot start session without errors”

RHEL 5 uzerinde, phpmyadmin kurup web sunucu olarak apache2 yerine lighttpd kullanmaya karar verirseniz, dikkat etmeniz gereken bir nokta var:

Kurulum sonrasi, phpmyadmine web uzerinden erismeye calistiginizda,

“Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly.”

gibi hata aldiysaniz, sorun php session bilgilerini tutacak olan dizinin kullanici haklarini, hangi akla hizmetse lighttpd yerine apache kullanicisi olarak ayarlamasi. Bu durumda da lighttpd, session bilgisini dizine yazamadigi icin hata veriyor.

Cozum oldukca basit;

/var/lib/php/session/ dizininin kullanici hakkini apache degil lighttpd yapmlisiniz. Daha sonra gerekirse bu dizine yazma hakkini 777 yapin. Gerekli komutlar;

chown lighttpd.lighttpd -R /var/lib/php/session/
chmod -R 777 /var/lib/php/session/

Regexp kullanarak postfix’te catch-all tanimi

Diyelim ki, mail sunucunuzda bir çok alan adı var, bunların her birinde gurcan.ozturk@domain1.tld, gurcan.ozturk@domain2.tld şeklinde tanımlar yapmak istemiyorsunuz, her domaine gelen gurcan.ozturk maillerini tek bir emailde toplamak istiyorsunuz. (catch-all işlemi) Postfix’te aşağıdaki ayarları yaparak bunu basitce sağlayabilirsiniz.

Öncelikle /etc/postfix/main.cf dosyasına aşağıdaki satırı ekleyin.

virtual_alias_maps = regexp:/etc/postfix/virtual

Daha sonra /etc/postfix/virtual dosyası içine aşağıdaki satırı ekleyin, dosya yoksa oluşturun.

/^gurcan.ozturk@/ gurcan.ozturk@domain.tld

Aşağıdaki komutları sıra ile verdikten sonra, yaptığınız ayarlama aktif olacaktır.

postmap /etc/postfıx/virtual
postfix reload

İçince gurcan gecen her emaile gelenleri toplamak için ise catch-all satırı şu şekilde olmalıdır.

/.*gurcan.*@/ gurcan.ozturk@domain.tld

Ext3 Partition buyutme

Gectigimiz gunlerde calismakta olan web sunucularimizdan birinin yenilenmesi gerekiyordu, ben de sunucu ayarlarini bastan yapmaktansa var olan sunucunun disk imajini alarak platformunu degistirmeyi dusundum. Eski sunucu HP Proliant DL380 G4 bir sunucu iken, yeni sunucu IBM xSeries x3850 bir sunucu olunca insan nasil olacak diye dusunmeden edemiyor.

Ilk olarak, eski sunucudaki disk uzerindeki partitionlarin imajini partimage ile aldim, bu amacla SysRescueCD kullandim. IBM x3850 sunucu SysRescueCD uzerindeki default kernel ile acilmiyor, “checking TSC synchronization bla bla” hatasi verip cakilip kaliyor. Bunu cozmek icin sunucuyu SysRescueCD ‘nin “altker64″ boot parametresi ile boot etmek gerekiyor.

HP sunucunun toplam disk alani 270GB iken, yeni sunucuda 415GB civarinda oldugu icin imaj dosyasini yazdiginizda, partition buyuklugu 270GB olacak ve geri kalan alani kullanamayacaksiniz. Bunu cozmek icin yine SysRescueCD kullandim.

SysRescueCD ile boot ettikten sonra partitioni buyutmek icin asagidaki komutlar yeterli olacaktir. (Burada ornek olarak partition ismi /dev/sda1 verilmistir.)

tune2fs -O^has_journal /dev/sda1
e2fsck -f /dev/sda1
resize2fs /dev/sda1 -S 5
tune2fs -j /dev/sda1

Burada, resize2fs komutunun -S (RAID-stride) parametresi olarak diskler icin kullandiginiz RAID bilgisini verdiginizde, RAID durumuna gore partition buyuklugunu ayarlayacak sizin partition buyuklugu hesap etmenize gerek kalmayacaktir. (IBM sunucuda RAID5 ayarlamis oldugum icin -S 5 parametresi verdim.)

Sunucunuzu restart ettiginizde, partitionun buyuklugu degismis olacaktir.

Debian/Ubuntu’da Netatalk ile Mac OS X’e afp baglanti yapmak

* Bu dokumandaki bilgiler Ubuntu 8.10 Intrepid Ibex dagitimi kullanilarak uygulanmistir, tahminen Debian turevi tum dagitimlar icin calisacaktir.

 

Sirkette bol miktarda bulunan Macintosh kullanicilari icin kullanilmak uzere bir “File Server” ihtiyacimiz vardi. Leopard Server mi kuralim derken, bugun Linux uzerinde Netatalk ile “AFP Sharing” yapilmasi fikri dogdu. Kisa bir Google arastirmasi sonucunda http://blog.damontimm.com/how-to-install-netatalk-afp-on-ubuntu-with-encrypted-authentication/ adresindeki blogda guzel bir dokumantasyon buldum. Ben de az once evdeki Mac Mini uzerindeki Mac OS X Leopard ile Ubuntu 8.10 Intrepid Ibex kurulu notebook arasinda test yaptim. Sonuc basarili :)
Read the rest of this entry »

RHEL5 uzerine HP DataProtector Agent kurulmasi

Onceki gunlerde RHEL5 kurulu local yedekleme sunucumuza, sistem icin kullandigimiz HP DataProtector programinin Disk Agent (da) kisminin kurulmasi gerekti. Sagolsun HP dokumantasyon konusunda benden daha kotu oldugu icin, hangi CD/DVD kullanilacagina dair bir bilgi yok. Internetteki forumlarda da bir cok insanin bu sebepten kafasi karismis gibi.

HP DataProtector sitesinde Disk Agent clientlarinin hangileri oldugu bildirilmedigi gibi, verilmis olan agent ISO dosyalarinin isimleri de bir harika. (Ornegin B6960-10010.iso, B6960-10011.iso vb.) Hangi ISO’yu download edip kurmaniz gerektigi herhangi bir yerde yazmiyor sitede ya da ben bulamadim. Cozumu http://www.brucalipto.org/linux/how-to-install-data-protector-60-on-red-hat-enterprise-linux-5 adresinde buldum.

Cozum icin;
Read the rest of this entry »

RHEL4 P2V maceralari

Bugün çalıştığım şirkette fiziksel bir RHEL4 sunucuyu VMware’e migrate etmeye uğraşırken daha önce karşılaşmadığım ancak bazı bloglarda rastladığım SCSI adapter sorunuyla karşılaştım.

Sorun şu ki, fiziksel sunucuda bulunan SATA disklere karşın Vmware’de SCSI disk kullanıldığı için sunucu boot sırasında aşağıdaki hataları veriyor.

mount: error 6 mounting ext3
mount: error 2 mounting none
swithchroot: mount failed:22
umount /initrd/dev failed:2
Kernel panic : not syncing: Attempted to kill init!


Çözüm olarak Vmware ESX Server dokümanlarındaki şu kaynağı kullandım. http://www.vmware.com/support/esx21/doc/esx21admin_lsilogic_vms.html

Kısaca yapılması gerekenler;

* Vmware’de sanal makinanın ayarlarından SCSI adapter olarak LSI Logic seçili olduğundan emin olun.
* Sunucuyu rescue CD ile açın, (RHEL4 için RHEL4 install CD1 kullandım)
* Rescue modda ekrana hiç disk bulamadığına dair hatalar gelirse, Driver olarak LSI Logic driver modüllerini (mptscsih, mptbase) yükleyin.
* Rescue mod shellde chroot /mnt/sysimage komutunu çalıştırın.
* /etc/modprobe.conf dosyasını editleyerek SCSI adapter aliasının şu şekilde olmasını sağlayın.
alias scsi_hostadapter mptscsih
* Sunucunun boot sırasında / dizinini bulabilmesi için mptbase modülünü yüklemesi gerekiyor. Bunun için;
mkinitrd --preload mptbase /boot/initrd--lsi.img
komutunu vermek gerekiyor. Burada kernelname yerine sisteminizin çalışan kernel versiyonunu yazmalısınız. (Benim sistemimde 2.6.9-67-0.15.ELsmp idi.)

* /boot/grub/menu.lst dosyasını editleyerek yeni bir boot entry oluşturun. Oluşturacağınız entry çalışmakta olan kernel entry ile aynı olacak sadece initrd satırı farklı olacaktır. Örnek;

title Red Hat Enterprise Linux ES (2.6.9-67.0.15.EL-LSI)
root (hd0,0)
kernel /boot/vmlinuz-2.6.9-67.0.15.EL ro root=LABEL=/
initrd /boot/initrd-2.6.9-67.0.15.EL-lsi.img

* grub-install /dev/sda komutuyla grub’u tekrar yazın.
* Sunucunuzu restart ettiğinizde normal bir şekilde açılmalı ve kudzu gerekli hardware değişikliklerini yapmalıdır.

mysqlhotcopy timeout problemi

mysqlhotcopy, perl ile hazırlanmış bir online yedekleme aracı. Bu araç yardımıyla mySQL servisini durdurmadan veritabanı yedeklemesi yapılabiliyor.

mysqlhotcopy ile çok kayıt bulunan bir tablolar içeren bir veritabanını yedeklemeye çalışıyorsanız aşağıdaki hatayı almanız kuvvetle muhtemel.

DBD::mysql::db do failed: MySQL server has gone away at mysqlhotcopy line 528.

Çözüm?

Aşağıdaki dosyalardan biri içerisine;

Debian tabanlı sistemler için; /etc/mysql/my.cnf
RedHat tabanlı sistemler için; /etc/my.cnf
Kullanıcı bazlı ayarlama için; $HOME/.my.cnf

[mysqlhotcopy]
interactive_timeout = 3600
wait_timeout = 3600

satırlarını ekleyip mysql servisini yeniden başlatın.