6.10.2009

Solaris'de the allowable number of mount points has been exceeded hatası

Solaris 9 işletim sistemi yuklu production ortamindaki bir sunucumda;

cd /u04
ls -lrt komutunu çalıştırdıgımda,
: I/O error hatası aldım.

u04 file sistemini umount edip tekrar mount etmek istedigimde ise;

umount /u04
mount /u04

mount: /dev/dsk/c3t0d4s0 is already mounted, /u04 is busy,

or the allowable number of mount points has been exceeded
hatasını vermeye başladı.

Bu sorunun cozumu ise;

Her ihtimale karşılık ilgili file sistemi vfstab dosyasında comment'ledikten sonra
vi /etc/vfstab
#/dev/dsk/c3t0d4s0 /dev/rdsk/c3t0d4s0 /u04 ufs 5 yes logging

Benim gibi sunucudan çok uzakta iseniz;

reboot -- -r
(sunucuyu reconfigure ederek reboot etmek gerekiyor.)

vfstab dosyasından commnet'i kaldırıp,

vi /etc/vfstab
/dev/dsk/c3t0d4s0 /dev/rdsk/c3t0d4s0 /u04 ufs 5 yes logging

mount /u04

10.09.2009

linux işletim sisteminde Access Control List (ACL) tanımlamasını nasıl yapabilirim?

ACL tanımlamak için ilk yapmamız gereken şey /etc/fstab dosyası içerisinde,
ACL tanımlayacagımız filesystem'e ACL yapabilsin izni vermek olacak.

#/dev/hdd1 /yedek ext3 defaults,acl 1 2

Bu eklenti sonrasında,

#mount -o remount /yedek komutunu çalıştırarak sistemimizi restart etmeden acl’in aktif olmasını saglayabiliriz.

NOT: yukarıdaki her iki işlemi tek bir komutta gerçekleştirebiliriz;

#mount -o remount -o acl /dev/hdd1 /yedek

fakat bu şekilde yapılan işlem, sunucu restart'ından sonra etkili olmaz

Bu noktadan sonra yapacagımız, istedigimiz bir kullanici icin, istedigimiz bir dizin veya dosya üzerinde yetki tanımlaması yapmak olacaktir.

/yedek mount point’i altinda bulunan deneme dosyasının erişim yetkileri aşagıdaki gibi olsun;

-rwx------ 1 yusuf yusuf 4 Sep 10 15:50 deneme

aras kullanıcısına okuma, yazma ve çalıştırma hakkı vermek için;

#setfacl -m u:aras:rwx /yedek/deneme komutunu çalıştırıyoruz. bu işlemden sonra dosya izinlerine baktıgımızda,

-rwxrwx---+ 1 yusuf yusuf 4 Sep 10 15:50 deneme #dosya erişim yetkilerinin degiştigi hemen belli oluyor.

Ayrıca, ada kullanıcısının bu dosya üzerinde hiçbir yetkisinin olmamasını istersek... Bunun için,

#setfacl -m u:ada:--- /yedek/deneme komutunu kullanabiliriz.

NOT: Burada dosya erişimi engellemek icin kullandıgımız "—" yerine "0" da yazabiliriz.

Yaptıgımız bu tanımlamaları ve/veya ileride bu dosyaya tanımlanmış acl’leri gormek istersek getfacl komutunu kullanmak yeterli olacaktir.

[root@centos-yusuf yedek]# getfacl /yedek/deneme
getfacl: Removing leading '/' from absolute path names
# file: yedek/deneme
# owner: yusuf
# group: yusuf
user::rwx
user:aras:rwx
user:ada:---
group::---
mask::rwx
other::---

Bir dosyadan acl silmek istiyorsak,

#setfacl -x u:ada /yedek/deneme

Tum bu işlemleri kullanıcı yerine grup icin kullanmak istersek "u" parametresi yerine "g" parametresini eklememiz yeterli olacaktir.

Aynı şekilde işlemler bir dosyaya uygulandıgı gibi sadece dizin verilerek dizine de ACL uygulamak mumkundur.

10.08.2009

Mevcudiyet Bilgisi

Uzun zaman oldu birşeyler karalamayali;
Blog'u takip eden arkadasları,dostlari ve misafirleri sevgi ve ozlemle kucaklarım; fazla uzatmadan yoklugumun nedenine geliyorum:

Kara Kuvvetleri Komutanlığı
329'uncu Dönem Yedek Subay Sınıflandırma Sonuçları
Sonuç Açıklama Tarihi: 10 Ağustos 2009
Aday Nu. 52568
Adı ve Soyadı UĞUR İLERİ
Baba Adı MUSTAFA
Kuvveti Jandarma
Sınıfı Jandarma
Statüsü Kısa Dönem Er
Branşı -
Kabul Toplama Merkezi -
Gideceği Sınıf Okulu / Eğitim Merkezi ARTVİN İL J. K.LIĞI ARTVİN



Hepiniz kendinize iyi bakın, Linuxsuz gun gecirmeyin.

Hakkinizi helal edin, Hoscakalin

29.06.2009

Linux'ta konsoldan CD/DVD yazmak

Hatirlayalim:

Linux'da bir CD ya da DVD'nin iso image ini almak icin

#/$ dd if=/dev/sr0 of=/iso/media.iso

yapiyoruz. Biraz elini yuzunu duzeltirsek yazdiklarimizin:

#/$ dd if=/dev/sr0 of=/iso/media.iso && eject /dev/sr0 && sleep 10 ;eject -t /dev/sr0

Cikardigimiz image.iso isimli iso dosyasini mount etmek icin:

# mount /iso/media.iso /mnt -o loop

Peki cikardigimiz iso dosyasini nasil CD/DVD ye yaziyoruz?

1. Ilk once device isimlerini ve ID lerini ogrenelim:

uileri@uileri:~> cdrecord -scanbus
scsibus0:
0,0,0 0) 'HL-DT-ST' 'DVD-ROM GDR8164B' '0D08' Removable CD-ROM
0,1,0 1) 'HL-DT-ST' 'DVDRAM GSA-H10N ' 'JL12' Removable CD-ROM
0,2,0 2) *
0,3,0 3) *
0,4,0 4) *
0,5,0 5) *
0,6,0 6) *
0,7,0 7) *


2. Simdi gordugunuz gibi iki DVD ROM 'um ve bunlardan birinin de DVD yazici oldugunu gorduk.
O halde elimizdeki iso dosyasini yazalim:

$ cdrecord -v -dao dev=0,1,0 speed=32 Desktop/FREE_XenServer-5.5.0-install-cd.iso

Akilda soru isareti kalmamasi icin:

speed ile yazma hizimizi (speed=32 gibi)
dev ile device id sini (dev= 0,1,0)
dao ile ise yazma tipini veriyoruz (Disc atOnce)

daha fazla bilgi icin

$ wodim --help yapabiliriz

Elimizdeki RW bir CD ve DVD'yo bosaltmak icin :

$ cdrecord -v dev=0,1,0 blank=all

/usr/sbin/apache2: symbol lookup error: /usr/lib/perl5/auto/Apache2/ServerUtil/ServerUtil.so: undefined symbol: ap_get_server_banner


Gecen hafta OCS ile ugrasirken bu sorunla karsilastim. Cok ugrastim ama, cogu sorun gibi bu da cok ufacik birseyden dolayiymis.
Sistemdeki apache versiyonu mod_perl surumu ile uyumlu degil. :)
Tek yapmamiz gereken mod_perl'u yeniden yuklemek ve Apache sunucumuzu yeniden baslatmak.

24.06.2009

MySQL veritabani Replikasyonu II

MySQL replikasyonu yaparken karsilasilabilecek sorunlar, yapilabilecek kisa yollar vs vs..

1. Onceki yazida anlattigim MySQL Replikasyonunu gerceklestirirken datafile tasimak yerine mysqldump kullanabiliriz
2. MySQL slave'de /etc/my.cnf dosyasina
replicate-do-db={database_adi} seklinde verdigimiz databaseimizi replike etmek icin,konfigurasyon ve yeniden baslatma isleminden sonra, mysql shell'inde asagidaki girdiyi kullanabiliriz

mysql> LOAD DATA FROM MASTER;

3. LOAD DATA FROM MASTER sadece MyISAM tablolarda calisir.

4. replicate-do-db={database_adi_1}
replicate-do-db={database_adi_2}
replicate-do-db={database_adi_3} seklinde birdne fazla databasei ayni conf icinde altalta tanimlamamiz gerekiyor.

5. Master sunucuyu show master status\G;
Slave sunucuyu ise show slave status\G;
ile izleyebiliriz.

6. report-host =SLAVE_SUNUCU_TANIMLAMASI seklinde girdimiz olmazsa Slave sistemimizi MySQL Administrator gibi programlarla izleyemiyoruz.

7. InnoDB tablolarin replikasyonu biraz daha sorunlu olabiliyor. Konuyla ilgili detayli bir yazi daha yayinlayacagim.

MySQL veritabani Replikasyonu I


Hepimizin bildigi gibi, hangi sistemi yonetiyorsak yonetelim yedekleme cok onemli bir kavramdir.
Ozellikle Veritas Netbackup Client kullanan arkadaslar da bilirler ki, en buyuk sorunlardan biri NetBackup'in MySQL yedekleme agent'i bulunmamakta.
Dolayisiyla, elimizdeki MySQL veritabani sunucusunu ancak su sekilde yedekleyebiliriz:

1. MySQL veritabani sunucumuzu durdurup, SuSE sistemlerde /var/lib/mysql altinda bulunan data klasorlerini kopyalamak sureti ile yedekleriz
2.MySQL Sunucusu ile birlikte gelen "mysqldump" aracini kullanabiliriz.
$ mysql -u{username} -p{password} {database_ismi} > dump.sql
(Ayrica function ve trigger yedekleme konusunda da bir yazim vardi)

Ancak herhangi bir sekilde sunucumuz down oldugunda, geri dondurmek icin oncelikle yeni bir sistem kurmak ve uzerindeki MySQL Sunucusunu yapilandirmaktan sonra, aldigimiz en son yedekten grei donmemiz gerekir.
Yalniz burada da goze alinmasi gereken kayiplar var, ne gibi:

1. Sunucuyu yeniden kurmak, yapilandirmak, MySQL veritabani sunucusunu kurarak,yapilandirmak icin harcanan zaman
2. Geri donus yapacagimiz veri sadece -en son - yedekledigimiz ankine ait olacaktir. Ornegin. hergun saat 14:00 de yedek aliyorsak ve sistemi 13:00 da kaybedersek, yaklasik 23 saatlik bir data kaybi gerceklesmis olur. BU kayip bazen onemsiz olabilecegi gibi, ozellikle buyuk sirketlerde-projelerde hayati onem arz edebilir.

Bu kayiplarin onune gecmek icin yapmamiz gereken MySQL veritabani sunucumuz uzerindeki veritabanlarini replike edebiliriz. Nasil mi?

1. Yeni bir sunucu ve onun uzerine de MySQL veritabani sunucusu kuruyoruz.
---- MASTER ----
2. Eski - yeni adiyla Master - sunucumuzdaki /etc/my.cnf dosyasini yeni kurdugumuz - yeni adiyla Slave - sunucumuza kopyaliyoruz.
3. Ardindan Master sunucumuzun /etc/my.cnf dosyasini aciyoruz ve [mysql] ile baslayan bolume

server-id = 1
log-bin=mysqlreplikasyon-bin

satirlarini ekliyoruz.
4. Master sunucu uzerindeki my.cnf dosyasinda bind-address ve skip-networking gecen satirlarin basina # koyuyoruz.
---- MASTER ----


---- SLAVE ----
5. Slave sunucumuza ssh ile baglanip /etc/my.cnf dosyasini aciyoruz.
7. server-id=1 satirini ,
#server-id=1 olarak degistiriyoruz.
6. Yine [mysqld] ile baslayan bolume gelip su satirlari ekliyoruz.

server-id = 2
master-host ={MASTER_SUNUCU_IPSI}
master-user =repl_user
master-password ={SIFRE}
master-port =3306
log-bin=mysqlreplikasyon-bin
replicate-do-db={DATABASE_ADI}
report-host =SLAVE_SUNUCU_TANIMLAMASI
---- SLAVE ----

7. Master ve Slave sunucu uzerindeki MySQL veritabanlarini durduruyoruz

# rcmysql stop (SuSE sistemler icin)
# service mysqld stop (RedHat Sistemler icin)
# /etc/init.d/mysqld stop

8. Master sunucu uzerindeki datafile klasorlerini "tar" liyoruz.

# tar -cvpPf mysqlrepl.tar /var/lib/mysql/{database_ismi}

9. sftp ya da ftp ile Master sunucuda aldigimiz tar yedegini Slave sunucuya atip, yedegi aciyoruz.

# tar -xvpPf mysqlrepl.tar

10 . Master ve Slave sunucuyu baslatiyoruz

# rcmysql start (SuSE sistemler icin)
# service mysqld start (RedHat Sistemler icin)
# /etc/init.d/mysqld start

11. Master sunucusundaki MySQL konsola dusuyoruz.

mysql> show master status\G;

11. Master sunucusundaki MySQL konsola dusuyoruz.

mysql> show slave status\G;

15.06.2009

MySQL'de unutulan root sifresini degistirme

Diyelim ki MySQL root sifresini unuttuk.

Ilk yapmamiz gereken MySQL veritabanimizi kapatabilecegimiz bir bosluk bulmak.
Ardindan, SuSE sistemler icin

# rcmysql stop
RedHat sistemler icin ise

# service mysql stop

Ardindan
# whereis mysqld_safe
(/usr/bin/mysqld_safe)
# /usr/bin/mysqld_safe --skip-grant-tables &

Simdi MySQL sistemine root olarak baglaniyoruz.

# mysql -uroot

Buradan sonrasi cok kolay cunku root olarak MySQL komut satirina dusmus olduk.
mysql > use mysql;
mysql > update user set password=PASSWORD('sifrem') where user='root';
mysql > flush privileges;
mysql > quit;

Simdi SuSE sistemler icin

# rcmysql restart
RedHat sistemler icin ise

# service mysql restart

# mysql -uroot -psifrem

12.06.2009

ISO'dan DVD yazmak

Bugun elimdeki DVDBurner programlarini kullanmayip komut satirindan dvd yazmak istedim.

# ls -l /dev/cdrom*
2 tane cd/dvd wr karsima cikti.

Peki /iso altinda bulunan Fedora-11-x86_64-DVD.iso dosyasini DVD'ye yazmak icin ne yapmamiz lazim?

$ growisofs -dvd-compat -Z /dev/cdrom2=/iso/Fedora-11-x86_64-DVD.iso


Kaynak: http://www.linuxforums.org/forum/installation/35772-how-burn-dvd-iso.html

4.06.2009

Mevcut bir LVM partition'u buyutmek

Oncelikle kullandigimiz LVM partition'u buyutmek icin ya mevcut VolumeGroup'ta musait yer olmali ya da yeni disk -ya da partitionu- VolumeGroup'a eklemeliyiz.

VolumeGroup icindeki kullanilabilir alani gormek icin :

# vgdisplay {VolumeGroup_adi} | grep -i free // ornek #vgdisplay vg0 | grep -i free

Elimizdeki LogicalPartitionu 20 GB'a buyutmek icin

# lvextend -L 20G /dev/mapper/{VolumeGroup}-{LogicalVolume}

ya da

# lvextend -L 20G /dev/VolumeGroup}/{LogicalVolume}

eger elimizdeki LogicalPartitionu 20 GB arttirmak icin ise:

# lvextend -L +20G /dev/VolumeGroup}/{LogicalVolume}

LVM ile bir partition nasil olusturulur?

Elimizde 3 e bolunmus bir disk:
Ornegin
/dev/sda1 40GB
/dev/sda2 4GB
/dev/sda3 28 GB

Elimizde 2 'ye bolunmus baska bir disk:

/dev/sdb1 60GB
/dev/sdb2 20 GB

Elimizde tek parca baska bir disk bulunsun:

/dev/sdc1 146 GB

Bu diskler uzerine / bolumunu /dev/sda1 e, swap'i /dev/sda2 'ye kurdugumuzu dusunelim.
Dolayisiyla

$ df -h
/dev/sda1 / 40GB
/dev/sda2 swap 4GB

olsun.Kalan alani LVM ile gruplamak istedigimizi dusunelim. (Ornegin ben iso'lar icin bir mount point, sanal makinalar icin baska bir mount point kullanirim)

Simdi senaryomuza su sekilde devam edelim.

/iso mount pointimizin boyutu 80 GB
/virtual mount pointimizin boyutu 150 GB

Bu yapiyi yukaridaki partition tablosunu kullarak ancak LVM ile yapabiliriz nasil mi?

Oncelikle ilk yapmamiz gereken hangi Partitionlarin LVM senaryosunda kullanilacagini belirtmek

# pvcreate /dev/sda3 /dev/sdb1 /dev/sdb2 /dev/sdc1

Bunun ardindan hemen ilk Volume Group'umuzu olusturuyoruz.

# vgcreate vg0 /dev/sda3 /dev/sdb1
# vgcreate vg1 /dev/sdb2 /dev/sdc1

Isimizin cogu bitti,
Simdi Logical Volume'larimizi olusturup islemimizi tamamlayacagiz.

# lvcreate vg0 -L 80G --name iso
# lvcreate vg1 -L 150G --name virt

Simdi sanki partitionlari bulunan yeni bir disk takmisiz gibi;

# mkfs.ext3 /dev/mapper/vg0-iso
# mkfs -t ext3 /dev/mapper/vg1-virt

Son olarak

# mkdir /iso && mount /dev/mapper/vg0-iso /iso
# mkdir /virtual && /dev/mapper/vg1-virt

3.06.2009

Redhat,Public key for "cluster-snmp.x.x.x" is not installed hatasi

Daha onceki yazimda yerel yum repository'si kurmayi anlatmistim.
Bu repository'deki paketlerin sistem icin "Public Key'lerinin" gosterilmesi gerekiyor. Eger bu islemi yapmazsak, yum ile yerel depodan paket kurmamiz mumkun olma ve "Public key for "cluster-snmp.x.x.x" is not installed" seklinde hata aliriz.

Bu sorunun cozumu su sekildedir.

Kurdugumuz repositorynin bagli oldugu klasor icerisinde (ornekte /mnt/iso) RPM-GPG ile baslayan iki dosya vardir.Bu iki dosyayi import edersek bu sorunu da asmis oluruz. Nasil mi?

# rpm --import /mnt/iso/RPM-GPG-KEY*

Redhat ile DVD'yi YUM Repository olarak Kullanmak

Oncelikle makinamiza/ sunucumuza Redhat sistemi kurdugumuzu dusunelim.(Benim kurdugum isletim sistemi RHEL 5.3 x86_64)
Kurulumu tamamladiktan sonra Redhat'in Cluster ve Cluster yonetim araclarini kurmak istedim.
Ancak paket bagimlilliklari basima cok buyuk dertler acti. Sadece bir paket icin bile bir suru paketi kurmam gerekti. onemli olan o degil, bagimliliklarini ogrenmek icin bile bir rpm komutu calistirmak zorunda kaldim. En sonunda bu isten vazgectim ve DVD'mden local bir yum repository kurmaya ve paketleri yum ile kurmaya karar verdim.

Oncelikle DVD'yi dvdrom'a yerlestirdik. Ardindan DVD'mi iso yaptim

1. # mkdir /iso
2. # dd if=/dev/cdrom of=/iso/rhel5.3-x86_64.iso && eject

Ardindan

3. # mkdir /mnt/iso
4. # mount /iso/rhel5.3-x86_64.iso /mnt/iso -o loop
// Bu girdiyi /etc/fstab'a girmekte fayda olabilir

Isleme baslarken hatirlamakta fayda var, ihtiyacimiz olan paketin adi createrepo

5. # rpm -ivh /mnt/iso/Server/createrepo*
6. # cd /mnt
7. # createrepo .
8 # vi /etc/yum.repos.d/iso.repo
Buraya
[iso]
enabled = 1
baseurl = file:///mnt

Isimiz bitti,
artik gerekli paketleri yum ile yukleyebiliriz, Ornek
# yum install net-snmp

SuSE de kullanici eklerken karsilasilan "Unknown Group" hatasi

SLES ve SLED'de komut satirindan kullanici eklenirken

useradd: Unknown group `dialout'.
useradd: Unknown group `uucp'.
useradd: Unknown group `video'.
useradd: Unknown group `audio'.

gibi hata mesajlari alinabilir.
Bunu duzetlemek icin yapmamiz gereken tek sey:

# vi /etc/default/useradd
Burada GROUPS satirini bulup basini "#" ile hashlemektir.

SLES 11 - Sendmail Notlari


Yakin zamanda yaptigim sendmail gecisinden kisa notlar ve ipuclari:

1. Sendmail oldurmek ve baslatmak

# killall sendmail
# sendmail -bd -q30m

2. Sendmail'de mail yonlendirmesi

# vi /etc/mail/mailertable
domain.com.tr smtp:[{smtp_server_ip/adres}]

# makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable

3. Sendmail loglarini canli izlemek icin

#tailf /var/log/mail


4. Sendmail ile kuyruktaki mailleri yollamak

# sendmail -q

mailleri loglarini gorerek yollamak

#
sendmail -v -q

5. Kuyruktaki mail adedini her 3 saniyede 1 defa gostermek

# while [ 1 ]; do sleep 3; mailq|tail -1; done

6. "rejecting connections on daemon MTA: 15 children, max 15" hatasi cozumu:

#vi /etc/sendmail.cf O MaxDaemonChildren=115 (default degeri 15)

1.06.2009

Solaris digest komutu (Solaris'te md5sum)

Linux ve BSD sistemlerde dosya bütünlügünü test etmek için kullanılan md5sum, Solaris sistemlerde bulunmamaktadır.

Fakat bunun yeride Solaris'te daha güzel bir komut var: digest komutu.
Digest komutunun güzelligi birçok algoritmayı desteklemesidir.

Hangi algoritmaların desteklendigini görmek için

yusuf:>digest -l
sha1
md5
sha256
sha384
sha512

kullanım şekli ise;
yusuf:>digest -a algorithm file

yusuf:>digest -a md5 php-5.2.6-sol10-x86-local
d5e3ebe3826ffb8e8ac9e13480454d92

Redhat uzerine Apache PHP MySQL Yuklemek

Bu yazim- aslinda digerlerine gore oldukca- basit kalabilir.
Diyelim ki RHEL 5.3 sistemimiz var uzerine MySQL ve PHP destekli Apache kurmak istiyorsunuz.Isimiz oldukca kolay:
1. Sistemimizin internete cikabildiginden emin oluyoruz.
2. Sistemi register ediyoruz.
# rhn_register // Burada karsimiza cikan formlari rhn.redhat.com (satellite) sitesinde kullandigimiz bilgilerle dolduruyoruz.
3. # yum upgrade // ile sistemimizi guncel hale getiriyoruz. ('y') tusuna basarak onay veriyoruz
4. # yum install httpd // ile apache'yi yukluyoruz
5. # yum install php // ile apache'mize php destegini de veriyoruz.
6. # yum install mysql-server mysql // ile mysql sunucusu ve istemcisini yukluyoruz.

Kurulumumuz tamamlandi. Denememizi yapalim
# cd /var/www/htdocs
# vi index.php (Buraya bir phpinfo atiyoruz)
# service httpd start
# service mysqld start
# lynx http://127.0.0.1

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

22.04.2009

too many open files


Linux'te tanımlı olan maksimum açılabilir dosya sayısı limiti aşıldıgında,
oluşan "too many open files" hatasının çözümü oldukça basit;

oncelikle open files limitimizin ne olduguna bakıyoruz

ulimit -n
1024

bu degeri "4096" 'ya çıkarmak için;

/etc/security/limits.conf dosyasının içine

#for too many open files
* soft nofile 4096
* hard nofile 4096


/etc/sysctl.conf dosyasının içine

#for too many open files
fs.file-max=4096

sistemi restart etmeden degişikliklerin aktif olması için

sysctl -p

komutu çalıştırılır...

21.04.2009

Konsol'da Proxy

Linux , Unix sistemlerde konsolda proxy kullanmamiz gereken yerlerde (buyuk sirket aglarinda komut satirindan w3m , lynx, wget kullanacagimiz zamanlarda) yapmamiz gereken sey
$ vi ~/.bashrc
Bu dosyanin sonuna asagidaki girdileri eklemektir:



export http_proxy={kullanici_adi}:{sifre}@{proxy}:{port}
export https_proxy={kullanici_adi}:{sifre}@{proxy}:{port}
export ftp_proxy={kullanici_adi}:{sifre}@{proxy}:{port}

Yalniz unutmamak gereken bir nokta : sifreyi plain text olarak yazmali ve icinde @ bulundurmamaliyiz, zira @ konsol proxy de ayrac olarak kullaniliyor.

20.04.2009

SUN Satildi

Yakin zamanda IBM,SUN Microsystems'i satin alacak sekilinde haberler piyasalarda dolasmaya baslamisti ve bu haber -en azindan bende- rahatsizlik yaratmisti. Ancak SUN Microsystems'in sitesinde de anons gectigi son ve en gercek habere gore ORACLE SUN'i aldi.
Bu aslina cok sevindirici benim adima.Daha once Linux uzerinde kosturdugumuz OracleVeritabanlarinin performanslarinin Sun Solaris uzerinde,Windows ile Linux arasindaki Performans farki kadar farkli oldugunu duymus ancak tecrube edememistik. Umarim bundan sonra hersey degisir ve artik hem Oracle Sun sistemlere yatkinligini arttirir hem de Oracle kullanacak kisiler SUN sistemlere daha sicak bakarlar.

Ben kendi adima cok sevindim


Kaynak : http://www.sun.com/aboutsun/media/presskits/2009-0420/index.jsp


gcc ile c++ derlemek

Haftasonu lisans ogrencisi bir arkadasimin odevine yardim ettim.
C++ bir program yazilmasi gerekyordu, buyuk olcude yazip lden gecirdim, ilginc olan tarafi uzun suredir gcc ile program derlememisim.
Yazdigim c++ kodunu nasil derleyecegimi aramak zorunda kaldim.
En sonunda buldum :
g++ -Wall svural.cc -o svural

:)

17.04.2009

find ile bos klasorleri bulma

Linux / Unix sistemler uzerinde find ile bos klasorleri bulmaya su ana kadar ihtiyacim olmadi hic.
Ama find'in parametreleri arasinda bos klasorleri bulabilecegimiz bir parametresi de varmis.

find {arama_yapilacak_yer} -type d ile klasorlistesini alirken, bir de -empty ekliyoruz.

find {arama_yapilacak_yer} -type d -empty

Kaynak : http://www.void.gr/kargig/blog/2009/04/16/delete-all-empty-directories-using-xarg/

cron Yonetimi

Gecen haftalarda RSS Feedleri gezerken, cron ile ilgili bir makale okumustum.
Cron islerini yonetirken bunu su ana kadar belli cercevelerde yapiyordum :

$crontab -e // ile cron editorune giriyor ve isleri burda
dakika saat gun ay haftagunu komut
ya da
# vi /etc/crontab // ile cronjoblari yonetiyordum.

Ancak ozellikle gunluk, haftalik vs yonetimler iicn cron'un da kisa yollari oldugunu ogrendim.

Su sekilde :

string meaning
------ -------
@reboot Run once, at startup.
@yearly Run once a year, "0 0 1 1 *".
@annually (same as @yearly)
@monthly Run once a month, "0 0 1 * *".
@weekly Run once a week, "0 0 * * 0".
@daily Run once a day, "0 0 * * *".
@midnight (same as @daily)
@hourly Run once an hour, "0 * * * *".


Kaynak :http://www.howtoforge.com/a-short-introduction-to-cron-jobs

14.04.2009

MailScanner


Eskiden kurdugum bir mail sunucu uzerindeki mail servisinin mail yollamadigini farkettim ve MailScanner servisini baslattigimda sorunun MailScannerdan /usr/lib/MailScanner/MailScanner/Message.pm kaynaklandigini gordum. Aldigim hata : "/usr/lib/MailScanner/MailScanner/Message.pm" seklindeydi.
MailScanner versiyonum eskimisti:


  1. # perl -MCPAN -eshell
  2. cpan > install Bundle::CPAN
  3. cpan > reload cpan
  4. cpan > exit
  5. # perl -MCPAN -eshell
  6. cpan > upgrade
  7. wget {en_yeni_MailScanner_Versiyonu_OS_im_ile_uyumlu.rpm.tar.gz}
  8. tar -xvzf {en_yeni_MailScanner_Versiyonu_OS_im_ile_uyumlu.rpm.tar.gz}
  9. cd {en_yeni_MailScanner_Versiyonu_OS_im_ile_uyumlu}
  10. ./install.sh
  11. /etc/init.d/MailScanner restart
  12. //Burada bir klasor hatasi aldim
  13. vi /etc/MailScanner/MailScanner.conf // Bu dosyada Lock stringini aratip /tmp yerine adam akilli bir Lock yeri yaziyoruz. (Yer zaten oneriliyor bize)
  14. /etc/init.d/MailScanner restart
  15. mailq |wc -l
  16. Queue gittikce ufaliyor. Sorun cozuldu :)

MySQL ile Yedekten donme


Yakin zamanda mysql'de procedure ve function'larin yedeklemesi hakkinda ufak bir yazi yazmistim.Bugun bloglari gezerken bir makalede bilmedigim bir yolu okudum. Dogrusu makaleyi yazan eleman MySQL administration islerini hala PHPMyAdmin ile yapacak kadar acemi ama yine de gordugum ufacik bilgiyi paylasayim istedim.

Oncelikle mysql'den yedegi
mysqldump -u{db_user_name} -p{db_user_password} {db_adi} > {yedek_dosyasi.sql} seklinde alinacagini ve
mysql -u{db_user_name} -p{db_user_password} {db_adi} < {yedek_dosyasi.sql} ile restore edilecegini biliyoruz. Ancak eleman soyle yapmis:
  1. mysql -u{db_user_name} -p{db_user_password} // ile mysql'e baglanmis
  2. use {db_adi}; // ile veritabanini
  3. source {yedek_dosyasi_pathi} // ile db yi restore etmis
Dogrusu, ben mysql komut satirindan sql dosyalarini bu sekilde cagirabilecegimi bilmiyordum.


Kaynak : http://ditio.net/2008/12/07/big-mysql-dump-import/

8.04.2009

SLES ile Squid ile Transparent Proxy

Gecen sene Senol'la birlikte bir calismamiz olmustu.

Yapmamiz gereken sey suydu: Sirket icinde kullanilan Proxy'i kullanamadan cikan farkli Gatewayli makinalar icin transparan bir Proxy sunucusu kurmak ve bu kisilerin o Proxy Sunucusu uzerinden internete erismelerini saglamak, dolayisiyla internet erisimlerini loglamak.

En basta soylemem lazim : Transparent Proxy islemi HTTPS baglantilar icin calismamakta

Simdi Senol'un blog'unda yer verdigi seklinden biraz alintilar yaparak kendi eklemelerimle yontemi anlatacagim.

Biz bu calismayi yaparken SLES 11 daha yoktu dolayisiyla calismayi SuSE 10.2 x86_64 ile yaptik.

Oncelikle calisma icin kullanacagimiz paketler :

iptables

ebtables

squid

bridge-utils

Ancak bridge-utils paketi SLES Medyalarindan gelmiyor. Dolayisiyla bridge-utils paketini OpenSUSE Repository den indiriyoruz.Cift arayuzlu sunucumuzu bridge olarak kullanarak ebtables ile gelen paketi Layer 2 den Layer 3 e cikarip ,HTTP trafigini sonra da iptables ile Squid'e yonlendirecegiz. Squid ile de loglayip isimizi bitirecegiz.


bridge mode


// BRIDGE Bolumu
ifconfig eth0 0.0.0.0 up
ifconfig eth1 0.0.0.0 up

brctl addbr br0
brctl addif br0 eth0
brctl addif br0 eth1

// BRIDGE Bolumu

Burada iki interfacei bridge yapiyoruz.Sonra da bridge arayuzune IP veriyoruz.


ifconfig br0 192.168.1.1 netmask 255.255.255.0 up

Sonra da HTTP trafiklerini Layer 3 e tasiyoruz

ebtables -t broute -A BROUTING -p IPv4 --ip-protocol 6 --ip-destination-port 80
-j redirect --redirect-target ACCEPT

Son olarak da Layer 3 e tasidigimiz 80. port trafigini proxy ye yoneldeniriyoruz.

iptables -t nat -A PREROUTING -i br0 -p tcp --dport 80 -j REDIRECT --to-port 3128

Gelen trafigi loglayacak Squid konfigurasyonlari asagida verilmis.


Bu kadar :)


Squid 3 versiyonu için /etc/squid.conf dosyası aşağıdaki gibi düzenlenebilir:

http_port 3128 transparent
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
cache deny QUERY
acl apache rep_header Server ^Apache
access_log /var/log/squid/access.log squid
hosts_file /etc/hosts
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320

  1. acl all src 0.0.0.0/0.0.0.0



acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 563 # https, snews
acl SSL_ports port 873 # rsync
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl Safe_ports port 631 # cups
acl Safe_ports port 873 # rsync
acl Safe_ports port 901 # SWAT
acl purge method PURGE
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
acl lan src 192.168.1.0/24
http_access allow localhost
http_access allow lan

  1. http_access allow all



http_reply_access allow all
icp_access allow all
visible_hostname suseproxy.domainadi.com
always_direct allow all
coredump_dir /var/spool/squid

Kismen Alinti : http://senoldemirkol.wordpress.com/2008/11/17/squidi-transparent-bridge-olarak-calistirmak/

PAM ile kullanici sifre force islemleri

Uzun zamandir PAM ile ilgili onume ne gelirse okumaya calisiyorum, ancak dun tuxtraining da karsilastigim PAM dokumani kadar hosuma giden ve bu konuyu iyi anlatmis bir dokumana rastlamadim.
Kisa bir bolumunu alinti yapacagim makaleyi siddetle okumanizi oneririm.

Enforce strong passwords

In this experiment we’ll use the pam_passwdqc module on the password stack to ensure that users choose strong passwords. (Note that this will only make any difference when users set or change their passwords; it won’t winkle out weak passwords that are already set.)

What you need to do: Red Hat already uses the pam_cracklib module to check password strength in the common system-auth file. We simply need to replace the pam_cracklib line with a line that looks something like this:

password    requisite    pam_passwdqc.so  min=12,10,10,8,6 retry=3

lxf99tut_pamfig3

Figure 3 above attempts to illustrate the parameters to pam_passwdqc. The test of a password’s strength is based on its length, but you can set different minimum lengths depending on the number of character classes in your password. There are four character classes: lower case, upper case, digits, and other characters. Upper case letters used as the first character and digits used as the last character of a password don’t count.

How to test it: Try changing your password to various strings; in each case count the number of characters and the number of character classes in the string and predict if it should be an acceptable password. There are a few examples in the table below


Kaynak: http://tuxtraining.com/2009/04/07/how-pam-works

1.04.2009

Metasploit Kapatildi

Ne yazikki beklenen oldu ...
ve www.Metasploit.com kapatildi.

(1 Nisan nedeniyle yapmis vicdansizlar :) cok guldum. Ama salakligim da gorunsun istedim....)

SMT nin kullanisli komutlari ve islevleri


KOMUT

İŞLEV

smt-list-products

SMT servisinin desteklediği Ürün listesini gösterir

smt-catalogs

Kataloglanabilecek ya da kataloglanmış ürünlerin tümünü gösterir

smt-catalogs -o

Sadece kataloglanmış ürünlerin tümünü gösterir

smt-catalogs –e

Güncelleme izlenecek yeni ürün girilmesini sağlar. Katalog numarası ile ilgili katalog, a ile tüm ürünler yansılanır

smt-catalogs –d

Güncellemesi artık izlenmeyecek ürünlerin listeden çıkarılmasını sağlar. Katalog numarası ile ilgili kataloğun, a ile tüm ürünlerin yansılanmasından vazgeçilir

smt-list-registrations

SMT sistemine tanıtılmış masaüstü ya da sunucu sistemlerin hepsini listeler.

smt-delete-registration

SMT sistemine tanıtılmış masaüstü ya da sunucu sistemlerin silinmesini sağlar. Kullanımı

smt-delete-registration {Unique ID} şeklindedir.

smt-report

SMT sistemine bağlanan sunucu ve masaüstlerinin lisans sürelerini, kullanım süresi dolmuş lisansları listeler

smt-mirror –d

SMT sistemine kaydedilmiş tüm katalog güncellemelerinin indirilmesini sağlar


Daha fazla bilgi icin:

http://www.novell.com

http://www.novell.com/communities/node/6288/sneakernetting-sles10-sp2-updates-using-subscription-management-tool-smt

http://www.novell.com/communities/node/5922/keep-your-linux-desktops-and-servers-updated-subscription-management-tool-suse-linux-enter



SLED 11 uzerinde Winbind ile AD


Calistigim sirket icin Linux masaustu sistemleri AD uzerinden kimlik dogrulamasi yapacak sekilde konfigure etmistim. Ancak SLED 10.1 - 10.2 surumlerinde su sekilde bir sorunla karsilasmistim;
Makinayi reboot ettikten sonra, kullanici adi ve sifre giris ekraninda domain'i goremiyorduk. Bunun uzerine Winbind ve Samba servislerini yeniden baslatan scriptler duzenleyerek sorunu cozmeye calismistim, cunku Novell'den Alper de bu konuda yorum yapamamisti.

Ancak gectigimiz hafta SLES/SLED 11 kullanmaya basladim ve bircok yeni ozellik ve hata giderilmesinin yaninda bu sorunun da cozuldugunu gordum.
Su anda sistem "tipki bir Windows makina gibi" AD yi yabancilamadan Domain Membership gorevini ustleniyor ve $ id kullanici adi ciktisi ise gercekten AD kullanicisinin primary ve yan gruplari seklinde gorunuyor.



Redhat ile Hot-Plug CPU

RedHat'in sertifika sinavina hazirlandigimdan newsletterlarina da uye oldum bir suredir.
Cok guzel icerikler ve Tipler yollayabiliyorlar.
Ornegin bugun cok begendigim bir trick yollamislar. Paylasiyorum:


Problem

You want to dynamically enable or disable a CPU on a running system.

 

Solution

Red Hat Enterprise Linux 5 supports the cpu-hotplug mechanism, which allows for CPUs to be dynamically disabled and re-enabled on a system without requiring a system reboot.

 

In order to disable a CPU core in a running machine, use the file /sys/devices/system/cpu/cpuX/online.

 

The following command will disable a CPU:

 

# echo 0 > /sys/devices/system/cpu/cpuX/online

 

Where X is the ID of the CPU as determined from /proc/cpuinfo.

 

To re-enable the CPU, run:

 

# echo 1 > /sys/devices/system/cpu/cpuX/online

 

Example:

The following output from /proc/cpuinfo shows two processors on a system:

 

 root@xen # grep "processor" /proc/cpuinfo
processor : 0
processor : 1

 

In order to disable CPU 1, echo "0" to /sys/devices/system/cpu/cpu1/online:

 

root@xen# echo 0 > /sys/devices/system/cpu/cpu1/online 
cpu0/ cpu1/

 

Check /proc/cpuinfo to see if the cpu is disabled .

 

root@xen # grep "processor" /proc/cpuinfo



processor : 0

 

Notice that there is now only one processor shown (CPU 0) instead of two.

 

 

Note: There are some architectures in which a CPU cannot be disabled due to a dependency on a certain CPU. In such cases you will notice that the /sys/devices/system/cpu/cpuN/online file is missing.

 

For further details on CPU hotplugging, see this file:

/usr/share/doc/kernel-doc-2.6.18/Documentation/cpu-hotplug.txt

 

The documentation files are in the kernel-doc package, which can be installed from RHN.

Alinti: http://kbase.redhat.com/faq/docs/DOC-15523?sc_cid=70160000000HlgQAAS

25.03.2009

V490 ve rsc


Sirkete geldigimden beri yonettigim bir Sun v490 Sunucum var. Su ana kadar ciddiye alinacak nerdeyse hic bir sorun yasamadim. Ancak soyle bir sacmalik vardi: Ekrana goruntu alamiyordum. Dolayisiyla sistemde bir sorunla karsilastigimda KVM ile mudahale sansim yoktu. Ufak tefek islerde (SSH serverin down olmasi durumunda ise) seri girisinden baglanip sorunu cozuyordum.
Ayrica makina uzerinde bir rsc karti (uzerinde network ve serial yazaiyor), bir de network interfacelerinin orda serial yaza baska bir giris daha vardi ve ordan giris yapabiliyordum sisteme. rsc -network girisini ise sadece rsc ye telnet ile network uzerinden erismek icin kullaniyordum.
Normal sartlarda Sun sunucularda sc ya da rsc de iken console ya da console -f yazidigimizda makinanin basindaymisiz ve monitor baglamisizcasina console goruntusu gelirken bu sunucuda sadece bos ekran geliyor ve ekran resetrsc yapana kadar o sekilde kaliyordu.

Gecenlerde sunucuyu Fabrikanin baska bir yerleskesine tasimak zorunda kaldik. Bu demek oluyordu ki ,herkangi bir sorunda eskisi kadar rahat olarak makinanin basina gidip oturup serial girisinden makinaya giremeyecegim.Dolayisiyla konsol goruntusunu rsc-networkten almak zorundaydim.
Bunun icin oturup arastirmalara koyuldum.
Ilk yaptigim rsc ayarlarini isletim sisteminden degistirmek oldu, soyle:

/usr/platform/`uname -i`/rsc/rsc-config

Continue with RSC setup (y|n): y

Set RSC date/time now (y|n|?) [y]: y
Server Hostname [sunucuadi]: Sunucumun adini girdim
Edit customer info field (y|n|?) [y]: Buraya sirket bilgilerini girdim
Enable RSC Ethernet Interface (y|n|s|?) [n]: y
RSC IP Mode (config|dhcp|?) [dhcp]: config
RSC IP Address []: rscnin IP adresi, telnet ile baglanacagiz
RSC IP Netmask [255.255.255.0]: netmaskesi
RSC IP Gateway []: buraya da rscnin bagli olacagi gateway adresi
Enable RSC Alerts (y|n|s|?) [n]: y (rsc uyarilarini-makina kapandi, acildi vs vs sekilinde mail ile almak isteyebiliriz. O durumda y)
Enable RSC Modem Interface (y|n|s|?) [n]: n
Enable RSC Serial Port Interface (y|n|s|?) [n]:n
Setup RSC User Account (y|n|?) [y]: y (rsc ye baglanacgimiz kullanici adi)
Username []: uileri
User Permissions (c,u,a,r|none|?) [cuar]:

--------------------
Verifying Selections
--------------------

General Setup
-------------
Set RSC date now = y
Server Hostname = Sunucumun ad
Set Customer Info = y

Is this correct (y|n): y


Ethernet Setup
--------------
IP Mode = config
IP Address = IP
IP Netmask = netmask
IP Gateway = gateway

Is this correct (y|n): y


Alert Setup
-----------
- Alerts enabled
// burada mail adresi yaziyor
Is this correct (y|n): y


Modem Setup
-----------
- Modem disabled, ppp disabled

Is this correct (y|n): y


Serial Port Setup
-----------------
- Serial port disabled

Is this correct (y|n): y


User Setup
----------
User Name = uileri
User Permissions = cuar

Is this correct (y|n): y


This script will now update RSC, continue? (y|n): y
Updating flash, this takes a few minutes
........................................
........................................
........................................
........................................
........................................
........................................
........................................
...........................
Download completed successfully

Resetting RSC (takes about 90 seconds): DONE
Setting up server to update RSC date on boot: DONE
Setting up server hostname: DONE
Setting up ethernet interface: DONE
Disabling RSC alert engine: DONE
Disabling modem interface: DONE
Disabling serial port interface: DONE
Adding user to RSC:

A valid password is between 6 and 8 characters, has at least
two alphabetic characters, and at least one numeric or special
character. The password must differ from the user's login name
and any reverse or circular shift of that login name.
Setting User Password Now ...

Password:
Re-enter Password:
User has been added to RSC
Resetting RSC (takes about 90 seconds):
Are you sure you want to reboot RSC (y/n)? y

DONE
Setting up RSC date: DONE

*******************************
RSC has been successfully setup
*******************************


Bu sekilde makinanin rsc sini ilk gunde yapmam gerektigi haline getirdim.
Ardindan

# eeprom diag-out-console=true

# eeprom input-device=rsc-console

# eeprom output-device rsc-console

yazarak onayladim.

Artik telnet ile baglandigim rsc den console yazip goruntu alabiliyordum..

Not: goruntunun rsc yerine normal ekrana (serial girisi) gelmesini istiyorsan yapmamiz gereken

# eeprom diag-out-console=true

# eeprom input-device=keyboard

# eeprom output-device=screen

yapip rscyi resetlemek
Bu kadar kolay



Kaynaklar :
http://docs.sun.com/source/816-3314-12/ucm_config_chap.html
http://www.filibeto.org/~aduritz/truetrue/jumpstart/ALOM1.5Help-en/cli/h_bootmode.html