29.05.2009

Redhat sisteme yeni disk nasil eklenir

Öncelikle sistem üzerindeki mevcut disk bilgilerini alalım.

[root@yusuf-redhat-deneme ~]# fdisk -l

Disk /dev/sda: 16.1 GB, 16106127360 bytes
255 heads, 63 sectors/track, 1958 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 1958 15623212+ 8e Linux LVM

#Sistem'de 1 adet 16Gb scsi disk var. Diskin scsi oludugunu nereden anladık..
/dev/sda -- scsi disk
/dev/hda -- ide disk

Sunucuyu kapatmak için;
[root@yusuf-redhat-deneme ~]# init 0

Diski bos slota taktıktan sonra sunucuyu açıyoruz.

Yeni taktıgımız diskin sistem tarafından tanındıgına emin olmak için;
[root@yusuf-redhat-deneme ~]# fdisk -l

Disk /dev/sda: 16.1 GB, 16106127360 bytes
255 heads, 63 sectors/track, 1958 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 1958 15623212+ 8e Linux LVM

Disk /dev/sdb: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/sdb doesn't contain a valid partition table

Yeni taktıgımız disk bilgisi /dev/sdb. Şimdi yeni diskimizi formatlıyoruz.

[root@yusuf-redhat-deneme ~]# fdisk -u /dev/sdb
Karşımıza gelen ekranlardan sırasıyla;

Command (m for help): p

Disk /dev/sdb: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders, total 10485760 sectors
Units = sectors of 1 * 512 = 512 bytes

Device Boot Start End Blocks Id System

Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First sector (63-10485759, default 63):
Using default value 63
Last sector or +size or +sizeM or +sizeK (63-10485759, default 10485759):
Using default value 10485759

Command (m for help): p

Disk /dev/sdb: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders, total 10485760 sectors
Units = sectors of 1 * 512 = 512 bytes

Device Boot Start End Blocks Id System
/dev/sdb1 63 10485759 5242848+ 83 Linux
Partition 1 does not end on cylinder boundary.

Command (m for help): w
The partition table has been altered!
Seçenekleri ile formatlamayı tamamlayalım

Formatladıgımız disk üzerinde ext3 filesystem'i oluşturalım
[root@yusuf-redhat-deneme ~]# mkfs.ext3 /dev/sdb1

Diski mount etmek için data diye bir dizin yaratalım;
[root@yusuf-redhat-deneme ~]#cd /
[root@yusuf-redhat-deneme ~]#mkdir data

mount işleminin sunucu restart olduktan sonrada aktif olabilmesi için gerekli ayarlamaları yapalım
[root@yusuf-redhat-deneme ~]#vi /etc/fstab

/dev/sdb1 /data ext3 defaults 1 2

Dosyasının içine yukarıdaki satırı ekleyip kaydedelim.

Diskimizi mount edelim;
[root@yusuf-redhat-deneme ~]mount /data

[root@yusuf-redhat-deneme /]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00 14G 3.2G 9.7G 25% /
/dev/sda1 99M 12M 82M 13% /boot
tmpfs 252M 0 252M 0% /dev/shm
/dev/sdb1 5.0G 139M 4.6G 3% /data

Yeni diskimiz kullanıma hazır :)

28.05.2009

SLES 11 uzerinde Xen Sanallastirmasi I


Daha once de anlattigim gibi, bu aralar tamamen XEN ile sanallastirmaya takmis durumdayim.Simdi sanallastirma icin sectigim donanimdan baslayarak her adimi teker teker yazarak, XEN ile sanallastirma ornegimin ilkine baslamak istiyorum.

Donanim:

Dell PowerEdge R300 / Uzerinde RAID I yapilmis 2 SATA disk ve 2 GB Ram mevcut

Isletim sistemi:

Suse Linux Enterprise Server 11 x86_64

Guest Isletim sistemi:

Red Hat Linux Enterprise Server 5.3 x86_64

Oncelikle SLES 11 isletim sistemini donanim uzerine kurarkan "Virtualization Host" olarak seciyoruz. Cunku bu makinayi sanallastirmaya tam olarak adayacagimizi dusunuyorum. Kurulum sonuclandiktan sonra, ilk yapilacak is,
Sistemi XEN destegi ile acmak olacak:
Bunun icin ya grub menusunden XEN'i sececegiz ya da /boot/grub/menu.lst dosyasindan default boot loader olarak XEN destekli isletim sistemini gosterecegiz. Ikinci yolu secersek, makinayi ayarlarin etkin olmasi icin yeniden baslatmamiz gerekiyor.

Simdi geldigimiz adim su:
Elimizde Virtualization Host olarak DELL R300 uzerine kurulmus bir SLES 11x86_64 isletim sistemimiz ve XEN detsegi verilmis aktif calisan bir kernel'imiz var.

Bundan sonra yapacagimiz isleri su sekilde listeyelebilirim:
# cd /var/lib/xen/images // Burasi XEN sisteminin disk olarak kullanacagi dosyalarin durdugu -yani Guest sistemlerin harddisklerinin- klasoru. Bu klasoru isletim sisteminden ayirip LVM yapmak faydali olabilir gibi geliyor

# dd if=/dev/zero of=rhel5.3-x86_64.img bs=1k seek=8192k count=1 // ile 8 gblik bir dosya, ya da baska bir degisle: 8 GB'lik bir disk olusturuyoruz.

Opsiyonel olmakla birlikte:

# dd if=/dev/zero of=rhel5.3-x86_64.img bs=1k count=1 conv=notrunc

Ardindan "
/etc/xen/examples" klasoru altinda ornek xen konfigurasyonlari var, burdan bir dosya alip, bu dosyayi /etc/xen/vm altina rhel53.hvm adiyla kopyaliyoruz.XEN konfigurasyonlari direkt burdan okuyormus. (Yedeklenecek yerlerden biri daha :))

Simdi bu dosyayi edit etmeye basliyoruz.

# vi
/etc/xen/vm/rhel53.hvm

Ilk olarak disk = [ satirina gidiyoruz ve bu satiri:

disk = [ 'file:/var/lib/xen/images/
rhel5.3-x86_64.img,ioemu:hda,w', 'file:/iso/rhel5.3.x86_64.iso,hdc:cdrom,r' ]
sekline getiriyoruz. Burada XEN'e Redhat 5.3 u acarken ve kullandirirken hangi diski kullanacagini soylemis olduk.
Ardindan
memory = 512 (Megabyte cinsinden yaziyoruz)

Son olarak
sdl=1
ve
vnc=0 yapiyoruz.
Dosyayi kaydedip ciktiktan sonra

# xm mem-set 0 512

Son adimiza geldik :
# cd /etc/xen/vm
# xm create
rhel53 komutu ile makinayi calistiriyoruz.

Bu kadar... Karsimiza kurulum ekrani cikiyor.

Simdi gelelim sorun yasadigim ve sizlerin de sorun yasayabileceginizi dusundugum ince noktalara:

1.
# xm mem-set 0 512
komutu ile bellegi ayirirken bir hata alabilirsiniz -ki ben aldim-. Bu hata size
sisteminizin Fully Virtualization icin uygun olmadigini Para-virtualization'u kullanmaniz gerektigini soyleyebilir. Bu durumda yapilacak sey basit. Makinaya reboot verip. BIOS'tan CPU'da sanallastirma destegini acmamiz gerekiyor.
2. Kurulumun son asamasinda cikan sanal makina ekreni acilmayabilir. Ben ssh ile baska bir makinadan gelerek sorunu cozdum:
$ ssh -X -l {root} {sanallastirma_hostu} // /etc/sshd/sshd_config icinde PermitRootLogin yes yapilmali
bu durumda karsi makinadaki X session'u benim onumdeki makinada acildi ve kurulumua boyle devam ettim.
3. Kurulum ekrani oncesi VMBios sayip kaybolabilir. Bu da Guest sistemin bootable device bulamadigi anlamina gelir. Bunun icin tusuna basip boot device olarak cdrom sectiginizde sorun cozuluyor.
4. Eger elimizdeki CD ve DVD'nin isosunu cikamayi bilmiyorsak hatirlatalim:
# dd if=/dev/cdrom of=
/iso/rhel5.3.x86_64.iso && eject
ya da
# dd if=/dev/sr0 of=
/iso/rhel5.3.x86_64.iso && eject

Konfigurasyon dosyalariyla oynayip, network senaryolari ve disk kucultup buyutme islemlerini de yazacagim.
Simdilik bu kadar


SuSE'de bozulan ownershipleri duzeltmek


Gecen sene SuSE'de bir makale okumustum.

Ornegin, root olarak chown uileri:wheel /* dedik.Tum klasorlerin, altklasor ve dosyalarin, log dosyalarinin herseyin ownership'i ile oynamis oluyoruz.

Bundan sonra sistemin kararli calisacagini dusunmek emin olun hayal olur.


Ama ne mutlu ki bu durumdan bizi kurtaracak bir SuSE toolu var. root olarak calistirmamiz gereken komut sadece:

# SuSEconfig --module permissions


27.05.2009

SLES 11 uzerinde Xen Sanallastirmasi I


Daha onceki yazilarimdan birinde de belirttigim gibi SLES11 sanallastirma cozumu olarak da tam olarak hazir geliyor.
Peki nedir bu sanallastirmanin digerlerinden farki? SuSE ne oneriyor, ne sagliyor?

Sanallastirma cozumu olarak en cok kullanilan urun sanirim VMware'dir. Ancak unutmamak gerekir ki, VMware Redhat ES 3 uzerine kurulmus Gelistirilmis bir Vmware yazilinindan baska birsey degildir. ( VMware'in yaptiklarini hic kucumsemiyorum, oyle birsey de yapamam yanlis anlasilmasin ). Olayi su sekilde anlatabilirim aslinda:

RHEL3 bir sistem var. Yazilan VMware sistemi bu sistem uzerinde calisabilecek sekilde duzenleniyor ve makina acildiginda kaynak yonetimini vs tum isleri arkaplanda calisan bir vmware sureci kontrol ediyor.
Yani siz bir makina eklediniz diyelim, 512 MB Ram ve belli bir islemci gucu ile disc ayirdiniz, arka planda calisan vmware sureci o kaynaklari ayirmak icin sizin verdiginizden cok fazla kaynagi kullaniyor; cunku kendisi de isletim sistemi uzerinde calisan bir program.

Ancak XEN icin olay biraz daha farkli; XEN, Novell ve Redhat'in uzerinde calisabilen (ve diger Linux dagitimlarinda), kernela xen destegi verilmesini gerektiren ve tamamen sistemden yalitik olarak calisabilen, kullanilacak kaynaklari sizin icin aninda sistemden ayirarak kullanima hazir hale getiren, kaynak kontrolu icin extradan CPU ve Memory harcamak zorunda kalmayan, kisacasi tek cumleyle:

XEN sistem uzerinde calismak icin degil, sistemle calismak icin tasarlanmis bir sanallastirma cozumudur.

Bu gunlerde yaptigim Mail Gateway Stand By calismalarimdan kalan zamanimin buyuk kismini XEN olayini anlamaya ve kullanmaya ayirdim.

Bir sonraki yazimda XEN ile SuSE Entreprise Server 11 uzerinde yaptigim ilk sanallastirma denemesinin adimlarini ve tecrubelerimi yazacagim.

Kolay Gelsin

IBM x306 RAID Sorunu


IBM x306'da daha once yasadigim ve BIOS Upgrade yapsam da cozulmeyen bir sorun var.
RAID konfigurasyonunu yaptiktan sonra (ornegin RAID I) isletim sistemini kurarken sistem kurulumu sanki RAID yapilmamis gibi iki disk uzerine gerceklestirebiliyor.

Asil bekledigimiz RAID yapildiktan sonra tek disk olarak gorunmesi iken bunu IBM x306 da ne yazikki yapamiyoruz.

Cozumu su:

1. Tum RAID konfigurasyonunu ucuruyoruz,
2. Kurulum aninda Software RAID yapiyoruz ve mutlu mesut yarinlara kosuyoruz.

Benim bulabildigim -ne yazikki- daha akillica bir yol yok.

Software RAID nasil yapilir, bunu da onumuzdeki yazilarimda anlatacagim.

21.05.2009

SLES 10 / SLES 11 Arasindaki Farklar I

Bildiginiz gibi yakin zamanda SLES/D 11 duyuruldu.
Ilk haftasindan beri SLED 11 i kullaniyorum.
Ozellikle Windows Domain Membership 'te SLES 10 da yasadigim sikintilarin hicbirini yasatmiyor.Bunun disinda Firefox 3 gelmesi, Evolution Mapi Connector'unun bundled olarak gelmesi vs gibi onlarca olumlu ozelligini sayabiliriz.

Ancak SLES 11 'i test etme firsati bulamamistim. Dun ilk SLES 11 sunucumu kurdum ve bugun konfigure etmek icin basina oturdum.

Ilk gozume carpanlar su sekilde:

Kurulum ekraninda sanallastirma tipi diye bir secenek yerlestirilmis,artik kurulan sistem sanallastirmaya tam olarak hazir geliyor.
YAST toolundaki User Management bolumu, "Security and Users" olarak degismis.
Kullanici ekleme menusunden degistirilen Blowfish, MD5, DES encryption methodlar artik "Local Security" menusunden degistiriliyor.
Ayrica Sudo management yapilandirmasi da Yast'a eklenmis. Artik "Security and Users" menusu altindan Sudo secilerek tum sudo erisimleri YAST arayuzunden duzenlenebiliyor.

Yine ayni menuye LAF eklenmis (Linux Audit Framework). Auditd ayarlari bu framework ile kolaylikla yapilabiliyor gibi goruluyor, ancak ne yazikki daha detayli inceleyemedim.

Nasilsa artik SLES 11 kullanacagim. Bol bol inceler, gordugum farkliliklari da buraya eklerim diye dusundum.

useradd

Az once Novell'in SLES deneme testlerinden cozerken bir konfigurasyon dosyasi ile tanistim.
Mutlaka incelenmesi gereken bir dosya:

/etc/default/useradd

Kullaniciyi eklerken, kullanici icin olusturulacak "default" degerler bu dosyaya yaziliyor.
Aklimizda bulunsun

pstree

Linux sistemlerde calisan surecleri gormek icin hep ps ve parametre olarak auxw kullanirdim.
Bugun ps'i tabladigimda, pstree diye bir komut oldugunu gordum.
Ciktisi da cok hos.

uileri@uileri:~> pstree
init─┬─acpid
├─bluetoothd
├─bonobo-activati───{bonobo-activati}
├─console-kit-dae───63*[{console-kit-dae}]
├─cron
├─cupsd
├─2*[dbus-daemon]
├─2*[dbus-launch]
├─dhcpcd
├─evolution-alarm───{evolution-alarm}
├─evolution-data-───4*[{evolution-data-}]
├─evolution-excha───{evolution-excha}
├─evolution.bin───9*[{evolution.bin}]
├─firefox───firefox─┬─npviewer.bin───2*[{npviewer.bin}]
│ └─7*[{firefox}]
├─gconfd-2
├─gdm───gdm-simple-slav─┬─X
│ └─gdm-session-wor───gnome-session─┬─bluetooth-apple
│ ├─gnome-keyring-d
│ ├─gnome-panel
│ ├─gpg-agent
│ ├─gpk-update-icon
│ ├─metacity
│ ├─nautilus
│ ├─nm-applet
│ ├─python
│ └─{gnome-session}
├─geyes_applet2
├─gnome-keyring-d
├─gnome-power-man
├─gnome-screensav
├─gnome-settings-─┬─pulseaudio─┬─gconf-helper
│ │ └─2*[{pulseaudio}]
│ └─{gnome-settings-}
├─gnome-terminal─┬─bash───pstree
│ ├─gnome-pty-helpe
│ └─{gnome-terminal}
├─gvfs-fuse-daemo───3*[{gvfs-fuse-daemo}]
├─gvfs-gphoto2-vo
├─gvfs-hal-volume───{gvfs-hal-volume}
├─gvfsd
├─gvfsd-burn
├─gvfsd-trash
├─hald───hald-runner─┬─hald-addon-acpi
│ ├─hald-addon-cpuf
│ ├─hald-addon-inpu
│ └─hald-addon-stor
├─irqbalance
├─klogd
├─main-menu
├─master─┬─pickup
│ └─qmgr
├─6*[mingetty]
├─mixer_applet2───{mixer_applet2}
├─nm-system-setti
├─nmbd
├─notification-da
├─nscd───8*[{nscd}]
├─ntpd
├─rpcbind
├─smbd───smbd
├─sshd
├─startpar
├─stickynotes_app
├─syslog-ng
└─udevd

20.05.2009

sed ile replace

sed (stream editor) kullanirken bir dosya icindeki stringi baska biri ile degistirmek istedigimde eskiden,

$ sed s/{eski}/{yeni}/ {dosya_adi} seklinde kullaniyordum.Bu kullanimda sed sonucu bir dosyaya yazmiyor, ekranda gosteriyordu. Ayni dosyaya kaydetmek icinse ciktiyi gecici bir dosyaya yazip sonra o dosyanin icerigini eski dosyaya tasiyordum.Yani:

$ sed s/{eski}/{yeni}/ {dosya_adi} > /tmp/gecici && cat /tmp/gecici > {dosya_adi} && rm -f /tmp/gecici

Peki sed'in i parametresi varken ne demeye ugrasyirdum o kadar??

$ sed -i s/{eski}/{yeni}/ {dosya_adi} ile bu isi kokten cozuyoruz.

Unutmamak lazim, paylasmak lazim

Novell CLA

Uzun sure once Vue'dan yaptigim sinav basvurusunu uzun suredir, elimde olan-olmayan nedenlerden dolayi salliyordum.
En sonunda "artik yeter" dedim ve 18 Mayis'ta bu ise muspet ya da menfi son vermeye karar verdim.
Ruya gibi bir haftasonu tatilinin hemen ardindan Pazartesi sabahi Kizilay'a gittim
Ankara'da Atlantik (ABI) sirketini sinav yeri olarak belirledim ve saat 10:45 te Novell CLA maratonuna basladim.
Sinav suresi 120 dakikaydi. Sinavin mantigini anlamam ve tutorialleri takip etmem biraz zaman kaybettirse de, sinavdaki basarimi arttirdigi kanaatindeyim.

Saat 11:25 'te sinavdan ciktigimda , biraz zorlanmis olmakla birlikte mutluydum, artik elimde 600 puan ve PASS belgem vardi.
Dun itibariyle de sertifikam -online olarak- elime ulasti.


" Novell, on authorization from the President and CEO, hereby recognizes you
as a Novell Certified Linux Administrator for successfully completing the certification requirements on
This certificate has been granted as evidence thereof.
"

Artik NCLA oldum ... Hedef NCP ve RHCE

13.05.2009

Linux Sistemlerde ACL'ye hizli bakis

Linux sistemlerde kullanilan 2'lik sisteme dayanan ve 644,700 gibi sembolize edilen permission sistemi dosya ya da klasorlere sadece dosya sahibi, dosya sahibi grubu (dosya grubu) ve digerleri seklinde izin verilmesine imkan veriyor.

Bildiginiz gibi

uileri@uileri:~> ls -l l*
-rw-r--r-- 1 uileri wheel 1744004 2009-03-28 21:16 libcrypto.so.0.9.6

Seklindeki bir ciktida libcrypto.so.0.9.6 dosyasinin uileri tarafinan yazilip okunabilecegi, wheel tarafindan okunabilecegi ve sistemdeki diger herkes tarafindan okunabilecegini anliyoruz.Yani sembolik olarak soylemek gerekirse dosyanin yetkileri 644 .

Ornegin :
  • /var/log/audit diye bir klasorumuz bulunsun. Bu klasorun sahibi uileri:wheel ve modu 700 olsun.
  • wheel grubunda uileri,ymuccur ve izgens kullanicilari bulunsun
  • istedigim sey izgens kullanicisinin uileri ile birlikte klasore tipki uileri gibi girebilsin, okuyabilsin, yazabilsin. Ancak ymuccur bunlardan hicbirini yapamasin.
Bunu yapabilmek icin oncelikle:

# df -h // ile partition yapisina bakiyoruz. /var/log/audit klasorunun hangi partitionda oldugunu buluyoruz. Ornegin /dev/sda6 /var
# vi /etc/fstab // ile filesystem tablosunu edit etmeye basliyoruz. /dev/sda6 /var satirini buluyoruz o satirdaki options kolonuna acl girdisini ekliyoruz ([tab] kolon ayraci, "," ise veri ayracidir)
# acl'yi gerekli yere ekledikten sonra o partitionu yeniden bagliyoruz
# getfacl /var/log/audit //ile dosyanin haklarina bakiyoruz.
# setfacl -m user:izgens:rwx /var/log/audit // ile izgens kullanicisina dosyaya erisim hakki veriyoruz.

Isimiz bu kadar kolay, istersek kullanici yerine grup yonetimi de yapabiliriz (setfacl -m group:users:rwx /var/log/audit gibi)




Partitionu Reboot'a gerek kalmadan yeniden baglamak

Bildiginiz gibi bir partitionun fstab girdisinde degisiklik yaparsak, o degisikligin aktif olabilmesi icin o partitionun ayrilip-yeniden baglanmasi gerekiyor. Bunun icin umount, mount ikilisi kullanilabilecegi gibi, cok hiz bir bicimde (nerdeyse kaynak erisimleri kesilmeden) partition'u yeniden baglayabilecegimiz bir mount opsiyonu var:

mount -o remount {partition'un /etc/fstab girdisi}

Ornek:

mount -o remount /mp3
ya da
mount -o remount /dev/mapper/vg0-mp3

12.05.2009

32 bit yüklü işletim sisteminde 4gb'tan büyük memory'i adresleme problemi

Bugun Dell PowerEdge 2650 sunucusuna 32 bit Redhat E.L.5 kurmam gerekti. Kurulum sonrası kontrolleri yaparken, işletim sisteminin, 8 Gb olan memory'nin yarısını adresleyebildigini gördum.

Bu sorunun çözümü için;

kernel-PAE-devel-2.6.18-8.el5.i686
kernel-PAE-2.6.18-8.el5.i686

Paketlerini sistem üzerine yüklememiz gerekiyor.

#rpm -ivh kernel-PAE-devel-2.6.18-8.el5.i686
#rpm -ivh kernel-PAE-2.6.18-8.el5.i686

Bu işlemden sonra sistemi yeni kernel'den açmak için grub menusunu edit etmemiz gerekiyor.
#vi /boot/grub/grub.conf

Burada default degeri "0" olarak degiştiriyoruz.

default=0
timeout=5
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux Server (2.6.18-8.el5PAE)
root (hd0,0)
kernel /boot/vmlinuz-2.6.18-8.el5PAE ro root=LABEL=/ rhgb quiet
initrd /boot/initrd-2.6.18-8.el5PAE.img
title Red Hat Enterprise Linux Server (2.6.18-8.el5)
root (hd0,0)
kernel /boot/vmlinuz-2.6.18-8.el5 ro root=LABEL=/ rhgb quiet
initrd /boot/initrd-2.6.18-8.el5.img

Son olarak
#reboot

Peki bu PEA nedir?

Physical Address Extension (PAE) is a feature of x86 and x86-64 processors that enable the use of more than 4 gigabytes of physical memory to be used in 32-bit systems, given appropriate operating system support. PAE is provided by Intel Pentium Pro and above CPUs (including all later Pentium-series processors except the 400 MHz bus versions of the Pentium M),
as well as by some compatible processors such as the Athlon and later models from AMD.

Daha detaylı bilgi için
http://en.wikipedia.org/wiki/Physical_Address_Extension

Notice: Use of undefined constant OPER_MODE_NATIVE - assumed 'OPER_MODE_NATIVE' in

Cacti 0.8.7d uzerine cacti-plugin-0.8.7d-PA-v2.4.zip kurulumu yaptiktan sonra
"Notice: Use of undefined constant OPER_MODE_NATIVE - assumed 'OPER_MODE_NATIVE' in /cacti-0.8.7d/include/top_header.php on line 27 " seklinde bir hatayla karsilastik.

Bu hata bildiginiz gibi bu sabitlerin tanimlanmamis olmasindan kaynaklaniyor. Hatanin cozumu ise:
Once top_graph_header.php dosyasini acmak, dosyanin en ustune hemen
define('OPER_MODE_NATIVE', 0);
define('OPER_MODE_RESKIN', 1);
define('OPER_MODE_IFRAME_NONAV', 2); // Bunun icin hata almamistim gerci ancak durmasi bir sorun yaratmaz

satirlarini eklemek, ayni satirlari top_header.php dosyasinin basina da eklersek sorunu tamamen cozmus oluyoruz.

Kaynak : http://forums.cacti.net/about31126.html

bash: /bin/cp: Argument list too long

Bugun Cacti sunucu izleme yazilimimizi update ederken bir kopyalama yapmam gerekti. (rra klasoru icerisindeki rrd leri yeni yere kopyalamak seklinde). Ancak daha once almadigim bir hatayla karsilastim.
"bash: /bin/cp: Argument list too long"
Aslinda bu sorun Linux - belki de Unixlerde de, ancak denemedim- cp/mv komutunun calisma biciminden kaynalaniyor.
cp komutu aslinda su sekilde calisiyor.

$ ls a*

a.bz2 a.gz a.tar

$ cp a* /tmp
komutunu verdigimizde isletim sistemi ilk once komut dizinini kendi icerisinde acik acik yaziyor, soyleki:

$ cp a.bz2 a.gz a.tar /tmp seklinde

yani aslinda burdan soyle bir sonuc cikiyor. Diyelim ki:

$ ls a*
a.bz2 a.gz

$ cp a*
komutunu verdigimizde aslinda target destination vermedigimiz icin sistem hata dondurmesi gerekirken dondurmuyor , peki napiyor ???

Komutu acip :

$ cp a.bz2 a.gz

haline getiriyor. Sonra da a.bz2 dosyasini a.gz ismiyle varolan dosyanin uzerine kopyaliyor

Yukarda anlattigim komutun isletim sistemi tarafindan yorumlanmak icin acilarak calistirilmasindan dolayi, rra klasorundeki rrd dosyalarini kopyalarken "bash: /bin/cp: Argument list too long" hatasi aliyoruz.

Bu hatayi asmak icin yapmamiz gereken sey oldukca basit. Dosyalari ya ust klasoru ile ya da daha akillica bir yol ile -find ya da foir ile- teker teker kopyalamaiz gerekecek.

Dolayisiyla:

$ find {rra_klasoru_pathi} -type f -exec cp {target_pathi} {} \; -print komutunu kullanmamiz gerekiyor.

11.05.2009

ifconfig ile MAC adres degistirme

ifconfig komutunu hw ether ile kullanilirsa MAC adresi degistirilebilir.

Ornek :
ifconfig eth0 hw ether 00:Ba:14:44:ef:ba

8.05.2009

Solaris 10 Uzerine SNMP ayari


Solaris 10 uzerinde 2 tane SNMP Daemonu geldigini farkettim bugun.
Bunlardan ilki :
Konfigurasyon dosyasi (snmpd.conf) /etc/snmp/conf/ altinda olan ve SUN Solaris icin Sun Microsystems tarafinda gelistirilmis olan snmpd,


Ikincisi ise :
Konfigurasyon dosyasi (snmpd.conf) /etc/sma/snmp altinda olan bildigimiz Net-SNMP.

Bugun tecrube ettim ki, Cacti sistemi Sun'in SNMPD si ile ne yazikki konusamiyor. Sorunsuz calisacak Cacti-Solaris icin kullanmamiz gereken SNMPD server Net-SNMP olmali.

Bu isi cozmek de kolay. Su sekilde:

Oncelikle :
svcs svc:/application/management/sma:default
komutu ile servisin calisip calismadigini kontrol ediyoruz.

1. Eger calisityorsa durduruyoruz.
2. # vi /etc/sma/snmp/snmpd.conf dosyasini " bu " yazimda anlattigim gibi edit ediyoruz.
3. svc:/application/management/snmpdx:default servisinin durumunu kontrol ediyoruz. Calisiyorsa durduruyoruz
4. Son olarak svcadm enable svc:/application/management/sma:default ile sma servisini baslatiyoruz.
Boylece sistemimiz artik Cacti arayuzune eklenebilir duruma gelmis oluyor.

Sun xVM Ops Center Egitimi

Bugun gunluk bloglarimi gezerken super birseyle karsilastim.

Uzun suredir ogrenmeye calistigim SAI'den de egitimine halen devam ettigim Sun xVM Ops Center Egitimini Sun Online Egitim Merkezinde ucretsiz olarak sunmaya baslamis.
Herkese oneririm.

Linki : http://www.sun.com/training/catalog/courses/WVM-3356.xml

Kaynak: http://blogs.sun.com/stevewilson/

Konsol Kisayollari

Cok islevsel kisayollari:

!! - son komutu calistir. Ornek:
$ rpm -ivh xxx.y-z-k.0.1.rpm
$ sudo !! ( = sudo rpm -ivh xxx.y-z-k.0.1.rpm)

ya da

$ ./deneme.sh
$ vi !! ( = vi ./deneme.sh )

! - komutu en son parametresi ile calistirir. Ornek:

# vi /etc/sysconfig/network-scripts/ifcfg-eth0
# cat /etc/hosts
# !vi ( = vi /etc/sysconfig/network-scripts/ifcfg-eth0 )

!{NUM} - History'deki o satiri calistirir. Ornek:

# !145 (.bash_history deki 145. satiri yeniden calistirir)

7.05.2009

Solaris 10'da network'u restart etmek

Merhaba,

Solaris 10 ile birlikte sun firması servisleri Service Management Facility (SMF) adıyla yeni bir yapıya geçirdi.


Solaris 10'da network'u restart etmek istediginizde (KANKAM gibi :) ),

svcadm restart svc:/network/physical

komutunu vermeniz yeterlidir...


SMF KOMUTLARI

svcs
Reports service status
svcadm
Used for service management: e.g., starting, stopping and restoring services
svccfg
Used to list properties of a service
svcprop
Used to list properties of a service
inetadm
Used to manage inetd services

Shutdown Script

Calıştığımız şirkette 3 farklı lokasyonda toplam 244 tane unix iş istasyonu bulunuyor. bu iş istasyonlarının tümü bazı sebeblerden ötürü kapatılması veya reboot edilmesi gerekiyor. bu aşağıdaki script x, y, z, adını verdiğim üç lokasyonda bulunan iş istasyonlarını kapatıyor. x, y, z, lokasyonları için client ların hostname leri her lokasyon için hazırlanan (x.list, y.list, z.list) text dosylarına önceden girilimiştir. scripti çalıştırdığınızda karşınıza gelen menüden lokasyonu seçtiğinizde, ilgili text dosyası baz alınıp, dosya içerisindeki her hostnam e ssh ile bağlanıp, "uname" ile işletim sistemini sorguluyor. Çıkan sonuca göre HP-UX ve SunOS için oluşturulmuş fonksiyonlara yönelip sistemi kapatma işlemine başlıyor. her kapatılan veya kapatılamayan iş istasyonlarının hostname lerini ilgili log dosyasına yazıyor.


#!/usr/bin/bash
function hp_ux
{
echo "HP FONKSIYONU"
echo "$1 kapatiliyor">>tamamlanan.txt
ssh -l root $1 "shutdown -h -y now" 2>/dev/null
}
function her_makina
{
if [ $# -ne 1 ]
then
echo "Hedef verilmemis"
exit 1
fi
OS_OGREN=`ssh -l root $1 "uname" 2>/dev/null`
case "$OS_OGREN" in
'HP-UX')
echo "makina HP-UX"
hp_ux $1;;
'SunOS')
echo "makina SunOs"
echo "$1 kapatiliyor">>tamamlanan.txt
ssh -l root $1 "init 5" 2>/dev/null
;;*)
echo " BILINMIYOR $OS_OGREN"
echo "$1 ulasilamiyor">>ulasilamayan.txt
;;
esac
}
echo "***********************************"
echo "******Remote Shutdown Script*******"
echo "***********************************"
echo ""
echo " Lutfen Lokasyon Secin \c "
echo ""
echo ""
echo " 1-) X Lokasyonu"
echo " 2-) Y Lokasyonu "
echo "3-) Z Lokasyonu"
echo ""
echo ""
echo "***********************************"
echo ""
echo " Seciminiz:"
read sec junk
if [ "$sec" -eq 1 ]
then
file="x.list"
echo "$file isleme aliniyor"
fi
if [ "$sec" -eq 2 ]
then
file="y.list"
echo "$file isleme aliniyor"
fi
if [ "$sec" -eq 3 ]
then
file="z.list"
echo "$file isleme aliniyor"
fi
x=0
while [ $x -lt $(cat $file wc -l) ]
do
let x=x+1
her_makina $(head -n $x $file tail -n 1)
done
exit 0

sendmail max. client sorunu

Az once SMTP Server uzerinde :

rejecting connections on daemon MTA: 15 children, max 15

seklinde hatalar almaya ve 25 port acik oldugu ve servis kostugu halde mail yollayamamaya basladik.

Sorunun cozumu ise su sekilde:

# grep -i child /etc/sendmail ile MaxDaemonChildren satiri bulunur
Buradaki (default 15 gelen satir) tercihen 100 yapilir

Son olarak da

# killall sendmail
# sendmail -bd -q30m ile sendmail servisi yeniden baslatilir

lsof

Bugun commandlinefu yu gezerken, lsof'un cok farkli bir kullanimini gordum.
Normalde acik olan dosyalari gosteren lsof'un i parametresi ile connectionlari da gorebiliyormusuz.

Ornek Kullanim:


$ lsof -i

Kaynak: http://www.commandlinefu.com/commands/view/2110/show-established-network-connections

6.05.2009

Partition'un Yaratildigi Zaman Bilgisi

Bir sitede ayak uzeri bu bilgiyi gordum:

# df / | awk '{print $1}' | grep dev | xargs tune2fs -l | grep create

Kaynak: http://www.commandlinefu.com/commands/using/tune2fs

Linux Sistemlerde Acilista fsck YapMAMAsinin Saglanmasi

Elimizde uzun suredir kapanmayan, ancak cok onemli bir update yaptigimiz ve artik hizlica kapayip acmamiz gereekn bir sunucumuz oldugunu dusunelim.
Bu durumda sistemin ontanimli degerleri isiginda sistem acilista fsck'e girecek ve acilis suresi uzayacaktir. Kisisel olarak fsck'i cogunlukla oneririm ancak bazen gercekten yapacak durumda olmayabiliriz.
Bu durum icin kullanilacak komutumuz "tune2fs" olmali.
Kullanimi ise cok basit:

# tune2fs -T now partition (/dev/sda1)

Bu sekilde partirion ,o anda fsck'ten gecmis gibi imlenecek ve isletim sistemi yeniden baslarken fsck yapmayacaktir.

Sistemin hicbir partition icin fsck yapmamasini saglamak icin her partition icin (swap haric) tune2fs yapmamiz gerekiyor, UNUTMAYALIM

Sendmail ile Kuyruktaki mailleri yollamak


Dun aksam bir sendmail gecisi yaptim. Ancak kullanmaya kullanmaya sendmail komutlarini ve parametrelerini unutmusum.
Unutmadan eklemek istedim: Sendmail'de kuyruktaki mailleri force edip yeniden yollamak icin :


# sendmail -q

Sonucu ekranda gorerek (verbose) gondermek icinse

# sendmail -v -q

Partition Dolulugu Uyarisi

Bugun yonettigim sistemlerden birinde, daha onceki arkadaslarin yazdigi bir script buldum.
Temelde script Solaris uzerindeki partitionlar icin doluluk bilgisini mail atiyor. Biraz degisiklik yapip paylasmak istedim:

#!/bin/sh

df -k | grep team | while read satir ; do
deger=`echo $satir | awk '{ if ( $5 > 95 ) print "b"; else if ($5 > 90) print "k"; }'`

if [ "$deger" = "b" ] ; then
df -k | grep team | mailx -s "\"`echo $satir | cut -d/ -f6`\"Sistem uzerinde %95 uzeri doluluk var!" mailadresi1@mailadresi.com,mailadresi2@mailadresi.com,mailadresi3@mailadresi.com
echo "`date` [ %95 uzeri doluluk ] : $satir" >> /tmp/doluluk.log
elif [ "$deger" = "k" ] ; then
df -k | grep team | mailx -s "\"`echo $satir | cut -d/ -f6`\" Sistem uzerinde %90 uzeri doluluk var!" mailadresi1@mailadresi.com,mailadresi2@mailadresi.com,mailadresi3@mailadresi.com
echo "`date` [ %90 uzeri doluluk ] : $satir" >> /tmp/doluluk.log
fi
done