28 March 2009


Özgürlükiçin.com
(ozgurlukicin)

Birleşik Krallık ODF'den Yana

ODF zaferini ilan etti.Kamusal belge ve hizmetlerde özgür standartların kullanımını tercih eden ülkelerin sayısı her geçen gün artıyor. Geçtiğimiz günlerde yayınladığımız ODF'yi kullanan ülkeler listesine Birleşik Krallık’ın da (İngiltere, İskoçya, Galler ve Kuzey İrlanda'dan oluşan yapı) katılımıyla, Açık Belge Biçimi (Open Document Format-ODF), çok önemli bir mevzi daha kazandı.

ODF Alliance Başkanı Marino MARCICH, "Britanya Hükümeti tarafından yapılan açıklama, ODF'ye duyulan ve büyümekte olan talebin göstergesi" şeklinde konuşuyor ve ekliyor: "ODF aracılığıyla sağlanan birlikte çalışabilirlik esasları üzerine kurulan açık standartlar, hükümetlere kazanç ve veriye uzun vadeli erişim seçenekleri açısından büyük kazanımlar sağlıyor."

Britanya Hükümeti, bir süre önce haberini de yaptığımız üzere, "Açık Kaynak, Açık Standartlar ve Tekrar-Kullanım: Hükümet Eylem Planı" altında, bundan sonraki tüm IT projelerinde açık standartlara ilişkin gereksinimleri belirterek, açık standartlara uygunluk talep edeceğini duyurmuştu. Hükümet bu plan çerçevesinde, ODF’nin kullanımını destekleyeceğini belirtti. Buna ek olarak, hükümet, bilgilerin açık standartlarda bulunabilirliğini güvence altına almak için çalışacak ve bu kamusal web sayfaları için bir standart haline gelecek.

Hem özel hem de açık kaynaklı ODF destekli yazılımların kolay bulunabilirliğine dikkat çeken OpenForum Avrupa başkanı Graham TAYLOR, "Britanya Hükümeti'nin tedarik yönetmeliklerinde açık standartlara işaret etmesi ve açık standartlar ile uyumluluk halindeki çözümleri tercih edecek olması, farklı platformlardaki çoklu rekabet ürünleri arasındaki yarışı güvence altına alacak önemli bir gelişme şeklinde konuştu.

Birleşik Krallık ile birlikte, şu an için, 17 devlet ve sekiz özerk hükümet, belge alışverişi için resmi olarak ODF’yi kabul etmiş durumda. Tercihini ODF'den yana kullanan hükumet politikası girişimlerine dair açıklama ve daha kapsamlı bir liste için buraya bakabilirsiniz.

 

Kaynak: ODF Alliance

23 March 2009


GNOME Türkiye
(gnometr)

GNOME 2.26 Yayınlandı

GNOME Masaüstü ortamının en son sürümü olan GNOME 2.26 sürümü yayınlandı. Bu sürümde GNOME Masaüstü ortamı bir çok hata düzeltmesi, performans artışının yanı sıra gelişmiş bir CD/DVD yazma programı olan Brasero (http://projects.gnome.org/brasero/)'yu da platforma katmış oldu. Yeni GNOME sürümündeki yenilikleri öğrenmek ve daha fazla bilgi edinmek için Türkçe Sürüm Notları (http://library.gnome.org/misc/release-notes/2.26/index.html.tr) sayfasına bakabilirsiniz.

15 March 2009


Ubuntu Türkiye
(ubuntutr)

Mustafa ALKAN: SUDO'nun 5. sayısı yayında!




devamını oku

28 January 2009


Linuxipuclari
(linuxipuclari)

Ben Kimim? Başka Kim Var? En Son Ne Yapmış?

Bu konuya başka nasıl bir başlık verilebilirdi bilemiyorum ama bence hem konuyu anlatması açısından hem de ilgi çekmesi açısından değişik  bir başlık oldu.

Tabi konumuz linux ama olaya felsefi açıdan değil de teknik açıdan açıklık getireceğiz. Ama aynı başlık ile birde olayın felsefi yanına dokunup Türkiye’de Linux konusunda, ben dahil kimler var ve en son ne yapmışlar bir ara bakmak lazım :)

Önünüzde açık bir linux konsolu var ve bir işlem yapmanız lazım.

İlk bilmeniz gereken, sisteme o an kim olarak bağlı olduğunuzdur.

Öğrenmenin yolu sormaktır. Linux’te bunu sormanın yolu da whoami komutudur.

~$ whoami
 
murat

Peki şu an sistemde bizden başka kimler var? Hemen soralım yine bu seferki komut who

~$ who
 
murat    pts/0        2009-01-27 20:18 (84.145.113.121)
ali      pts/1        2009-01-27 21:32 (84.168.127.32)

Bu komut sayesinde sisteme kim bağlanmış, ne zaman bağlanmış, hangi ip den bağlanmış görebiliyorsunuz.

Peki bu bağlı olan kişi ne yapıyor, yada birşey yapıyor mu? Bunu öğrenmek için de w komutunu kullanıyoruz.

~$ w
 22:00:53 up 92 days, 12:45,  2 user,  load average: 0.00, 0.07, 0.07
USER     TTY      FROM             LOGIN@   IDLE     JCPU   PCPU WHAT
murat    pts/0    84.145.113.121   20:18    0.00s    0.19s  0.02s w
ali      pts/1    84.168.127.32    21:32    118.34s  21.18s 0,03s ls -l

Bu sonucu inceleyecek olursak.

Birinci satırdaki bilgiler bağlı olduğumuz sistemin kaç gündür çalıştığını, Sisteme kaç kişinin bağlı olduğunu ve o anki yükünü gösteriyor.

Daha sonra yeralan bilgiler ise sisteme o an bağlı olan kişinin;

USER Hangi kullanıcı adı ile bağlı olduğunu,
TTY Hangi terminal numarası ile bağlı olduğunu,
FROM Hangi ipden bağlandığını
LOGIN@ Ne zaman bağlandığını
IDLE Şu an bir işlem yapıp yapmadığını. (İşlem yapıyorsa bu süre 0.00s olarak gözükür. İşlem yapmıyorsa sizin komutu çalıştırdığınız süre ile o kişinin en son komutu çalıştırdığı zaman arasındaki fark saniye olarak görüntülenir)
JCPU Bağlı olduğu süre içinde çalıştırdığı komutların harcadığı CPU zamanını
PCPU En son çalıştırdığı komutun harcadığı CPU zamanını
WHAT En son çalıştırdığı komutu gösterir

Bu konudan bahsedince bir komutu daha anlatmadan geçmek olmaz.

Peki son zamanlarda, sisteme kimler bağlanmış ve ne kadar bağlı kalmış. Bunun için last komutunu kullanabiliriz.

~$ last
murat    pts/0        84.145.113.121   Tue Jan 27 20:18   still logged in
murat    pts/0        84.145.113.121   Mon Jan 26 15:39 - 17:02  (01:22)
ali      pts/0        84.168.127.32    Fri Jan 23 15:52 - 20:39  (04:46)
murat    pts/0        84.145.113.121   Fri Jan 23 08:28 - 19:58  (11:30)
ali      pts/0        84.168.127.32    Thu Jan 22 20:34 - 15:44  (03:16)
murat    pts/0        84.145.113.121   Thu Jan 22 12:28 - 23:30  (02:56)

Özellikle belli bir kullanıcının bağlantılarını merak ediyorsak o zaman komutun sonuna kullanıcı adını yazmak yeterli olacaktır.

~$ last murat
murat    pts/0        84.145.113.121   Tue Jan 27 20:18   still logged in
murat    pts/0        84.145.113.121   Mon Jan 26 15:39 - 17:02  (01:22)
murat    pts/0        84.145.113.121   Fri Jan 23 08:28 - 19:58  (11:30)
murat    pts/0        84.145.113.121   Thu Jan 22 12:28 - 23:30  (02:56)

Umarım bu doküman faydalı olmuştur.

İyi Çalışmalar

27 January 2009


Linuxipuclari
(linuxipuclari)

RPM’cinin İsviçre çakısı :)

Belki sizlerin de başına gelmiştir - tabii ki her zaman için haklı nedenlerden dolayı ;) - bazen bir üreticinin rpm’lerinin üzerinde ufak tefek değişiklik yapmak zorunluluğunu hissedebilirsiniz.

Eğer söz konusu ticari bir uygulamanın paketi ise %99.9 olasılıkla SRPM dosyalarına veya kaynak kodlarına erişiminiz olmayacaktır. Hoş, erişiminiz olsa bile bir RPM’i kendiniz tekrar paketlemeye çalıştığınızda hiç de hoş olmayan bir çok süprizle karşılaşmanız muhtemel.

Şimdi karşılaştığım gerçek bir problem üzerinden yazımıza konu olan rpmrebuild programının kullanımını ve ne gibi faydaları olduğunu açılklamaya çalışalım.

Bir müşterimiz için geliştirdiğimiz platformun merkezi loglama ihtiyacını Syslog-NG ile karşılama yoluna gittik. Açık kaynaklı bu  projenin ticari versiyonunu kullanan muşterimize üretici Balabit firmasında premium edition olarak etiketlenmiş yeni bir rpm ulaştı.

Balabit firmasının müşterimize gönderdiği rpm kurulum bittikten sonra syslog servisinin yerine kendisini yani syslog-ng servisini ekliyor. Buraya kadar bir sorun yok fakat kurulumun son aşamasında rpm’in post install scriptinde  syslog servisini durdurup  syslog-ng servisini başlatıyor.

Geliştirilen platformun mimarisi gereği syslog-ng servisinin platform tarafindan talep edilene kadar çalıştırılmaması loglamanın local syslog servisi tarafından yapılması gerekiyor. Kaldi ki syslog-ng servisinin konfigurasyonu daha ilerki bir aşamada platformun değişik bileşenleri tarafından tamamlanacak.

Balabit firması açısından önemsiz bir problem olmakla birlikte müşterimizin, dolayısıyla bizim başımız bu sorundan dolayı oldukça ağrıdı. Sadece post installation scriptini değiştirebilsek yani syslog servisinin durdurulup syslog-ng servislerinin başlatıldığı iki satırı rpm’den çıkarabilirsen sorunumuz çözülecek, müşterimiz de biz de gayet mutlu olacaktık.

Bu noktada internette yaptığımız araştırmalar sonucunda rpmrebuild isimli programı bulduk. rpmrebuild aracılığıyla binary bir rpm paketinin içindeki dosyaları değiştirebilir, yeni dosya ekleyebilir, varolan dosyaları silebilir ve hatta rpm’in elinizde olmadığı durumlarda rpm veritabanı aracılığıyla ilgili rpm’in spec dosyasını tekrar oluşturabilirsiniz. Uzun lafın kısası İsviçre çakısı gibi bir uygulama. :)

[sogua00@aliontl901 ~]$ rpmrebuild -n --edit-post -p syslog-ng-premium-edition-2.1.4-1.x86_64.rpm
 
warning: syslog-ng-premium-edition-2.1.4-1.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID f5297614
warning: syslog-ng-premium-edition-2.1.4-1.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID f5297614
warning: syslog-ng-premium-edition-2.1.4-1.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID f5297614
warning: syslog-ng-premium-edition-2.1.4-1.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID f5297614
warning: syslog-ng-premium-edition-2.1.4-1.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID f5297614
warning: syslog-ng-premium-edition-2.1.4-1.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID f5297614
warning: syslog-ng-premium-edition-2.1.4-1.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID f5297614
warning: syslog-ng-premium-edition-2.1.4-1.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID f5297614
warning: syslog-ng-premium-edition-2.1.4-1.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID f5297614
warning: syslog-ng-premium-edition-2.1.4-1.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID f5297614
warning: syslog-ng-premium-edition-2.1.4-1.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID f5297614
warning: syslog-ng-premium-edition-2.1.4-1.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID f5297614
warning: syslog-ng-premium-edition-2.1.4-1.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID f5297614
warning: syslog-ng-premium-edition-2.1.4-1.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID f5297614
 
Do you want to continue ? (y/N) y
 
Processing files: syslog-ng-premium-edition-2.1.4-1
 
Wrote: /home/sogua00/rpmbuild/RPMS/x86_64/syslog-ng-premium-edition-2.1.4-1.x86_64.rpm
 
result: /x86_64/syslog-ng-premium-edition-2.1.4-1.x86_64.rpm

Yukarıdaki komut satırı ve ekran çıktısı üzerinden rpmrebuild komutunun çalışmasını incelemeye çalışalım. Öncelikle kullanılan parametreler bakalım

-p kaynak olarak bu parametreyı takip eden paket dosyasının kullanılacağını belirtir. Eğer bu parametreyi belirtmezseniz belirtmiş olduğunuz rpm’in sisteminize kurulu olduğunu varsayıp sistem veritabanını kullanamaya çalışacaktır.

-n rpm paketini değiştirdikten veya yeniden oluşturduktan sonra test kurulumu yapmamasını belirtir. Genelde rpm’leri oluşturduğunuz ortamlar ile kurulum gerçekleşeceği ortamlar birbirleriyle alakasız yapılandırmaya sahiptir.

–edit-post post install scriptini değiştireceğimizi ifade eder.

Yukarıdaki komutu çalıştırdığınızda rpmrebuild syslog-ng-premium-edition-2.1.4-1.x86_64.rpm isimli rpm dosyasini okuyup post install scriptini standart editörünüzde açacak. (Bizim sistemimiz için  vi). vi aracılığıyla post install scriptinde istediğimiz değişikliği gerçekleştirip vi editöründen çıktığımızda rpmrebuild işleme devam edip etmek istemediğimizi soracak. Eğer onay verirseniz macro tanımlarınız doğrultusunda rpmbuild dizininize değiştirilmiş rpm dosyasını kaydedecek.

Programın birçok özelligi ve kullanabileceğiniz birçok seçeneği var. Fedora 8 ve sonrasında standart fedora depolarından rpmrebuild paketini temin etmek mümkün.

Aşağıdaki makalelerden ve programın sitesinden ve man sayfalarından daha detaylı bilgi edinebilirsiniz.

http://rpmrebuild.sourceforge.net/
http://www.redhatmagazine.com/2007/12/04/hacking-rpms-with-rpmrebuild/
http://www.linux.com/feature/62262

İyi çalışmalar.

21 January 2009


Linuxipuclari
(linuxipuclari)

Anahtar Tabanlı SSH Bağlantısı için Açık (public) Anahtarınızı En Kolay Nasıl Paylaşırsınız?

Eğer internette ssh bağlantıları için anahtarlama kullanımı konusunda biraz araştırma yaptıysanız karşınıza çıkacak dökümanların çoğunda açık anahtarınızın hedef makinada ~/.ssh/authorized_keys dosyasına nasıl ekleneceği, bu dosyanın ve .ssh dizininin hangi kullanıcı ve grup yetkilerine sahip olacağı konusunda bilgi verildiğini göreceksiniz.

İlgili dökümanlarda bahsedilen herşey doğru olmakla birlikte ssh programı bütün bu adımları sizin için layığıyla gerçekleştiren bir komut satırı programıyla birlikte geliyor. ssh-copy-id isimli bu program ne yazık ki birçoğumuzun dikkatinden kaçıyor.

ssh-copy-id programı ne yapar?

  • Açık anahtarınızı hedef makinada  kullanıcı dizini altındaki yetkili anahtarlar dosyasına ekler ( ~/.ssh/authorized_keys)
  • ~/.ssh dizinini ve ~/.ssh/authorized_keys dosyasının yetkilerini düzenler.

Aşağıdaki örnek  komutta herhangi bir kimlik belirtmediğimiz için varsayılan açık anahtar ( ~/.ssh/id_rsa.pub dosyasının içeriği) hedef.makina.com makinasındaki ali kullanıcısının  home dizinine yüklenir.

$ssh-copy-id ali@hedef.makina.com

Eğer birden çok anahtarınız var ise hedef makinaya göndermek istediğiniz açık anahtarı -i parametresiyle belirtebilirsiniz.

$ssh-copy-id  -i  ~/.ssh/ikinci_anahtar.pub ali@hedef.makina.com

Kıssadan hisse tek bir komutla açık anahtarınızı hedef bir makinaya yükleyebilirsiniz.  :)

İyi çalışmalar

19 January 2009


Linuxipuclari
(linuxipuclari)

Linux Komut Satırında İnternetten Dosya İndirme

Linux makinanıza bir dosya indirip kuracaksınız diyelim.

Bunun için önce grafik arayüzü olan bir yerden Firefox gibi bir tarayıcı veya Filezilla gibi bir ftp istemcisi ile bağlanıp dosyayı indirip sonra bunu tekrar ftp, scp gibi bir program kullanarak dosyaya asıl ihtiyacımız olan yere kopyalamak büyük bir zaman kaybı olacaktır. (İstemci olarak linux kullanan arkadaşların kaşlarını çattıklarını görür gibiyim. Diyelimki kişi linux değil de başka bir işletim sistemi kullanıyor ve grafik arayüzü yüklü olmayan bir linux sunucusu var)

Bunun yerine wget komutunu kullanarak bu dosyayı bir web sitesinden direkt istediğimiz klasöre indirebiliriz.

En basit kullanımıyla

wget http://www.ornekwebsite.com/dosya.zip

Dosya gelsin ama ben bir yandan konsolu kullanıyım diyorsanız bu işlemi backgrounda atabilirsiniz. İşlemin sonucunu logdosyasi.log adlı dosyaya yazacaktır.

wget -o logdosyası.log http://www.ornekwebsite.com/dosya.zip &

Büyük bir dosya indiriyorsunuz ve kesiliyor o zaman aşağıdaki komut size yardımcı olacaktır.

wget -c http://www.ornekwebsite.com/buyukdosya.zip

Bazen bir sitedeki toplu dosyaları indirmek istiyorsunuz diyelim. Burada dikkat etmeniz gereken şey bu komut o sayfa içinde geçen .zip isimli dosyaları indirecektir.

downloads.html yerine bir klasör ismi yazarsanız ancak klasör gezinme (directory browsing) yetkisi sunucuda açıksa o şekilde dosyaları indirebilirsiniz aksi taktirde ya o klasörde bir index.html dosyası varsa o dosyada geçen ilgili dosyaları indirmeye kalkar yada “ERROR 403: Forbidden” şeklinde bir hata ile karşılaşırsınız.

wget -r -nd -np -l1 -A '*.zip' http://www.ornekwebsite.com/downloads.html

Şu an hattınız yavaş diyelim yada çalışırken indirme işlemi yüzünden yavaşlamasını istemiyorsunuz. Tamam bizde yattıktan sonra başlayacak şekilde ayarlarız, mesela saat 1′de başlayacak şekilde.

echo 'wget http://www.ornekwebsite.com/dosya.zip' | at 01:00

Tahmin edeceğiniz gibi at aslında bir zamanlama komutu bunu kullanarak birçok işinizi cron’a yazmadan zamanlayabilir ve zamanı geldiğinde çalışmasını sağlayabilirsiniz. En kısa sürede at komutu ile ilgili de bir ipucu hazırlayacağım.

18 January 2009


Linuxipuclari
(linuxipuclari)

Oturumumuz Süresinde Kullandığımız Komutları ve Sonuçlarını Otomatik Olarak Nasıl Kaydedebiliriz?

Hepimizin başına gelmiştir. Bir problemle uğraşırken veya yeni bir program kurarken not almaya çalışırız. Ama bir noktadan sonra kendimizi yaptığımız işe kaptırır işi bitirdiğimizde;

Tüh bak yaptıklarımı not almayı unuttum. Ne yapmıştık? Hangi komutları kullanmıştık? Karşımıza hangi mesajlar çıktı ve biz neyi seçtik?

diye hayıflanırız.

Kendimizi işimize vermişken bizim adımıza birisinin tüm komutlarımızı ve bu komutların ürettiği mesajları, terminalimize yansıyan çıktıları otomatik olarak kaydetmesi hoş olmaz mıydı?

Linux script komutu bu konuda derdimize derman oluyor.

script komutu aracılığıyla terminalize yansıyan tüm çıktıları bir dosyaya kaydedip daha sonra tekrar inceleyebilirsiniz.

Bir örnek ile nasıl çalıştığına bakalım;

ali@ali-laptop:~/temp/scriptNot$ script -f otomatikDokumantasyon
Script started, file is otomatikDokumantasyon
ali@ali-laptop:~/temp/scriptNot$ pwd
/home/ali/temp/scriptNot
ali@ali-laptop:~/temp/scriptNot$ whoami
ali
ali@ali-laptop:~/temp/scriptNot$ ls /tmp/
domains genel.xls  gdl              kde-alisPik0Fj  
ksocket-alisSBnyBl  orbit-root  plugtmp-1   
Registration_Form_WBG.pdf  Tracker-alis.7358
fbug               hsperfdata_alis  keyring-YXOiJM  
 
ali@ali-laptop:~/temp/scriptNot$ exit
Script done, file is otomatikDokumantasyon

Yukarıda script komutunu başlattığımız nokta ile komutu CTRL+D tuş kombinasyonu aracılığıyla sonlandırdığımız nokta arasında oluşan ekran görüntülerini görüyorsunuz. Şimdi script komutunun yukarıdaki etkileşim sonucunda bizim için oluşturduğu otomatikDokumantasyon dosyasına bakalım.

ali@ali-laptop:~/temp/scriptNot$ more otomatikDokumantasyon
Script started, file is otomatikDokumantasyon
ali@ali-laptop:~/temp/scriptNot$ pwd
/home/ali/temp/scriptNot
ali@ali-laptop:~/temp/scriptNot$ whoami
ali
ali@ali-laptop:~/temp/scriptNot$ ls /tmp/
domains genel.xls  gdl              kde-alisPik0Fj  
ksocket-alisSBnyBl  orbit-root  plugtmp-1   
Registration_Form_WBG.pdf  Tracker-alis.7358
fbug               hsperfdata_alis  keyring-YXOiJM  
 
ali@ali-laptop:~/temp/scriptNot$ exit
 
Script done on Sun 18 Jan 2009 01:59:44 PM CET
ali@ali-laptop:~/temp/scriptNot$

Yukarıda gördünüz gibi script komutu terminalimize yazılan herşeyi bizim için kaydetti. Bir problemle uğraşırkan ayrıca kopyala&yapıştır aksiyonlarıyla kendimizi germemize gerek yok.

İyi çalışmalar.

16 January 2009


Linuxipuclari
(linuxipuclari)

Sürekli Akan Logları İzleme

Eğer birşeyler ters gidiyorsa hemen loglara bakarız çünkü soruna ait bütün ipuçları oradadır.

Bazen bu logları oluştukları anda anında izlemek istediğimizde her linux kullanıcısının ilk öğrendiği komutlardan birini kullanırız

tail -f /var/log/messages

Ama bu komutun şöyle bir dezavantajı var loglar orda akıp giderken birşey gözünüze takıldı ne yapacaksınız ctrl+c ve logun akmasını keseceksiniz ya ekranda kalan kısımdan logun gördüğünüz kısmına bakmaya çalışacaksınız yada more yada vi gibi komutları kullanarak dosyanın içine girip o satırı aramaya çalışacaksınız.

Peki size bunun daha kolay bir yolu var desem. Evet less komutu. Nasıl mı kullanacağız? Çok basit.

less /var/log/messages

Shift+F tail -f ile aynı işi görür loglar akmaya başlar

Ctrl+C ile istediğiniz yerde logun akmasını durdurabilirsiniz

B ve F tuşları logun içinde ileri geri gitmenizi sağlar

Q ile işiniz bittiğinde logdan çıkarsınız

Logların siz komutu yazdığınızda direk akarak başlamasını istiyorsanız komutu aşağıdaki gibi kullanabilirsiniz.

less +F /var/log/messages

Yada daha önce yazdığımız Kendi Komutunuzu Oluşturun ipucumuzu kullanarak less +F için akanlog diye bir alias yaratabilir ve komutu direkt olarak

akanlog /var/log/messages

şeklinde de kullanabilirsiniz ;)

15 January 2009


Linuxipuclari
(linuxipuclari)

Periyodik Olarak Bir Programı Çalıştırma ve Çıktısını Takip Etme

Sizin de hiç ihtiyacınız oldu mu bilmem ama bu tür bir şeye çok sık ihtiyacım olunca biraz araştırdım ve bu komutu buldum o günden beri de en sevdiğim linux komutlarından biri oldu.

Nasıl kullanılır?

watch [seçenekler] komut

-n Komutun kaç saniyede bir tekrar edileceğini, ekran çıktısının kaç saniyede bir yenileneceğini belirtir. Kullanılmazsa her 2 saniyede bir anlamına gelir.

-d Ekran çıktısında oluşan değişiklikleri beyaz olarak boyar böylece değişim olan yerleri daha rahat gözlersiniz

Ne için mi kullanıyorum?

  • Bir klasördeki dosya sayısındaki değişimi gözlemlemek için örn: postfix aktif kuyruktaki mail sayısını
    watch -d 'wc -l | ls -l'
  • Disklerin doluluk oranlarını gözlemlemek için örn: Kapasite sıkıntısı olan bir diskte log yazma oranı dengesiz bir proses çalıştırdığımda diskte yer sıkıntısı oluşmasın diye
    watch -d 'df -k'
  • Hafıza kullanım oranını gözlemlemek için
    watch -d 'free -m'
  • Bir klasöre muratz kullanıcısı ile eklenen yada silinen dosyaları gözlemlemek için
    watch -d 'ls -l | fgrep muratz'

Başka nerelerde kullandığınızı sizde bizimle paylaşırsanız sevirim.

14 January 2009


Linuxipuclari
(linuxipuclari)

VM Imajının Kopyasını Aldım Ethernet Bağlanmıyor

Bu sıkça başıma gelen konulardan biri sizinle paylaşmak istedim. Bazen kullandığım vm imajını bir vmware serverdan (gsx) başka bir vmware servera taşıdığımda veya aynı vmware server üzerinde kopyasını aldığımda yeni imajın ethernet bağlantısı çalışmayabiliyor.

Bunun genelde sebebi ethernet kartının vmware tarafından yeniden yaratılmasıdır.

Eski kartı silip yeni kartı eklediğinden kartın id’si eth0′dan eth1′e değişiyor. Eğer ip tanımlarınız statik yapılmışsa /etc/network/interfaces dosyanızda da yeni ethernet id sine göre düzenleme yapmanız gerecektir.

O anki id’yi bulmanın en pratik yollarından biri de /proc/net/dev dosyasının içine bakmak. 

Bu dosyanın içi aşağıdaki gibi.

  Interface	Receive bytes	packets errs drop fifo frame
  eth0:		161543042	916321    0    0    0     0

Unutmayın eğer bu sorunla karşı karşıya iseniz; ifconfig komutu sisteme /etc/network/interfaces dosyasında tanıttığınız kartları gösterecektir. O yüzden siz ifconfig diye baktığınızda eth0′ı görürken /proc/net/dev altında eth1 görüyor olacaksınız.


Linuxipuclari
(linuxipuclari)

Ubuntu VirtualBox ve KVM çakışma problemi

Virtualbox sanallaştırma uygulamasının son versiyonunu kurduysanız KVM çekirdek modulleri  yüklü makinalarda Virtualbox sanal makinalarınızı  ayağa kaldırmak istediğinizde aşağıdaki hatayı verip kapanacaktır.

VirtualBox can’t operate in VMX root mode. Please disable the KVM kernel extension, recompile your kernel and reboot.
VBox status code: -4011 (VERR_VMX_IN_VMX_ROOT_MODE).

Result Code:
0×80004005
Component:
Console
Interface:
IConsole {d5a1cbda-f5d7-4824-9afe-d640c94c7dcf}

Problemlemin çözümü için VirtualBox kullanacağınız zaman KVM çekirdek modullerini hafızadan kaldırmanız gerekecek.

Öncelikle hafızada hangi kvm modülünün yüklü olduğuna bakıyoruz.

$lsmod | grep kvm
kvm_intel              49728  0
kvm                   142912   1 kvm_intel

Hafızada yüklü olan kvm modülü işlemcinize bağlı olarak değişecektir. Intel tabanlı sistemimizde yüklu olan modül kvm_intel isimli modül.. Aşağıdaki komutla kvm modülünü hafızadan kaldırıyoruz.

sudo rmmod kvm_intel

Eğer VirtualBox’ı tekrar başlatırsanız sanal makinalarınızın sorunsuz olarak çalışmaya başladığını göreçeksiniz.

İyi çalışmalar.

13 January 2009


Linuxipuclari
(linuxipuclari)

Sanallaştırma ve Beraberinde Getirdiği Sürprizler

Trendleri takip eden herkes yakından tecrübe ediyordur ki sanallaştırma ve faydaları her düzeyde konuşuluyor tartışılıyor. Son yılların en sıcak konularından biri, son 2 senedir de Türkiyenin gündemindeki ağırlığını her geçen gün arttırıyor.

Hemen hemen her şirkette  AR-GE çalışması, test sistemi olarak sanal makinalar uzun yıllardır kullanılıyor.  Son dönemdeki tartışmaların farklı boyutu sanal makinaların artık üretim ortamlarında kullanılmaya  başlanması.

Ne yazık ki heyecan dalgasına kapılıp sörf yapmaya başlayan IT yöneticilerimiz sadece artı eksi hesabının artı boyutuna bakıyorlar. Fakat madalyonun bir de diğer yüzü var.

Sanallaştırma sayesinde çok kolay yeni bir sistemi ayağa kaldırabiliyorsunuz. Var olan bir sistemin yeni bir kopyasını alabiliyorsunuz. Eğer belli bir planlama ve kontrol olmazsa (ki baslangıçta hiç bir sanallaştırma projesinde ne yazik ki olmuyor) göz açıp kapayana kadar organizayonun yapısına gore 10 larla veya 100 lerle ölçülen sanal makinalara ulaşmanız hiç de şaşırtıcı olmaz.

Sanallaştırma her fiziksel makinanın nerdeyse ayrı bir datacenter gibi davranmasına imkan sağlıyor.

Bu noktada sanallaştırma projesi gerçekleştiren veya gerçekleştirmeyi planlayan IT yöneticilerimizin kendilerine aklıma ilk gelen şu soruları sormaları gerekiyor.

Sanal makinalarınızın yama yönetimini nasıl yapacaksınız?
Eskiden Sanal makinaları barındıran fiziksel makinenin yamalarını yapmak zorunda kalırken sanallaştırma sonrasında bu fiziksel makine üzerindeki her bir sanal makinanın ayrı olarak yamanması gerekiyor.

• Sanal ortamlarda veri güvenliği konusunda ne kadar bilgi sahibisiniz?
Fiziksel makinanızı datacenter’a kilitliyorsunuz ama sanal makinanız ağ üzerinden datacenter dışına kaçabilir.

Sanal makinaların loglarını nasıl takip edeceksiniz?
Sanal makinalarınızın loglarını nasıl takip ediyorsunuz? Sanallaştırmanın sistem yöneticilerine getirdiği ekstra yük nedir? Yeni yasal düzenlemelere uyum kapsamında sanal makinaların kullanımı size ne gibi yükümlülükler getiriyor?

Her bir sanal makinadaki kullanıcı ve yetki yönetimini nasıl yapacaksınız?

Sanal makinalarınızın kaynak kullanımlarını nasıl izliyorsunuz?

Lisansların yönetimi nasıl yapacaksınız?

Yedekleme için ne tür bir altyapı düşünüyorsunuz?

Takip eden yazılarda her bir başlık için linux platformunda çalışan açık kaynak kodlu veya ücretsiz çözümleri, alternatif senaryoları incelemeye çalışacağız.

Sizlerin de bu konudaki görüş ve tecrübelerini duymaktan mutluluk duyarız.

Sanallaştırma tecrübelerinizi, ürettiginiz yaratıcı çözümleri duymak için sabırsızlanıyoruz.

İyi çalışmalar.

03 January 2009


Python-TR
(python-tr)

Operatörler

Operatörler aritmetik operatörler, ilişkisel operatörler ve mantıksal operatörler olarak üçe ayrılır. Aritmetik operatörler matematiksel işlemlerde kullanılır. Ayrıca toplama (+) operatörü string değerleri birleştirir. Aşağıdaki tabloda Java ve Python programlama dillerine ait aritmetik operatörler bulunmaktadır.       Toplama Çıkarma Çarpma Bölme Mod Alma Java + - * / % Python + - * / %          İlişkisel operatörler programdaki iki değeri karşılaştırmak için kullanılır. Aşağıdaki tabloda Java ve Python programlama dillerine ait ilişkisel operatörler [...]

28 December 2008


Zemberek NLP
(zemberek)

Zemberek-server Firefox Türkçe yazım denetim eklentisi

Daha önceki bir yazıda Ahmet hunspell sözlükleri oluşturarak Firefox'ta yazım denetimi yapılabilmesi için olan çalışmalarından bahsetmişti. Şimdi ise uzun zamandır düşündüğüm ve yapılabileceğini bildiğim bir çalışma Rail ALİEV tarafından başlatıldı. Firefox, Thunderbird 3 ve Xulrunner 1.9 yeni yazım denetim motorlarının yazılabilmesine ve eklenti olarak paketlenebilmesine olanak veriyor. Bu alanda yapılmış olan örnek bir çalışma da var aslında. Voikko Fince yazım denetim kütüphanesi için mozvoikko adında bir eklenti var. Ancak bunun yapılabileceği bilinmesine rağmen daha önceden uğraşan olmamıştı. Rail ise tam da bu boşluğu doldurdu. Eklenti kodu şu anda Pardus ekibi tarafından geliştirilen ve Zemberek-server kullanan yamayı baz alıyor ve üstüne eklenti eklenti olarak paketlenebilmesi için gereken altyapıyı ekliyor. Şu an deneysel aşamada olsa da çalışır durumda. Eklenti Firefox eklenti sitesinden[1] indirilebilir, eklentinin kodlarına da SVN deposundan[2] erişilebilir. Rail'e eline sağlık diyor, Zemberek şemsiyesi altındaki çalışmalarının devamını bekliyoruz.

Not: Eklenti şu anda tamamen deneysel aşamada olduğundan testiniz ve geri bildirimleriniz ciddi katkı sağlayacaktır.

1: https://addons.mozilla.org/en-US/firefox/addon/10183
2: http://zemberek.googlecode.com/svn/trunk/mozzemberek/

14 July 2008


Python-TR
(python-tr)

Denetim Deyimleri

3.5. DENETİM VE DÖNGÜ DEYİMLERİ 3.5.1. Denetim Deyimleri   Denetim deyimleri, koşulun mantıksal durumuna göre programın akışını değiştiren yapılardır. 3.5.1.1. If deyimi If deyimi belirli bir koşul sağlandığında yapılacak işleri belirlememizi sağlar. Java ve Python programlama dillerinde if deyiminin kullanımı [...]

16 February 2008


Python-TR
(python-tr)

Matematiksel Fonksiyonlar

    Uzun zamandır blog’umuza yazı eklemiyorduk. Tezimizin içeirği hazır sayılır fakat tüm tezi siteye hemen ekleyemiyoruz. Ama matematiksel fonksiyonlar bölümünü eklemenin zamanı geldi.     Matematiksel fonksiyonlar programlama yaparken çeşitli matematik işlemlerini yapmamızı kolaylaştırırlar. Aşağıdaki tabloda Java ve Python programlama dillerine ait matematiksel fonksiyonlar yer almaktadır. İşlevi Java Python x argümanının mutlak değerini hesaplama abs(x) fabs(x) x’i kendisinden büyük en [...]

06 November 2007


Python-TR
(python-tr)

Değişkenler ve Temel Veri Tipleri

Değişkenler, programlarda saklamak istediğimiz değerleri tutarlar. Programlama dillerinde değişkenler tutabilecekleri veri cinslerine göre sınıflandırılmıştır. Java’da değişken tanımlamak için eşitliğin sol tarafına değişkenin veri tipi ve değişkenin adı, sağ tarafına ise değeri yazılır. Açıklama : Örnek : int degiskenadi = değer; int a=4; Java programlama dilinde boolean, char, byte, short, int, long, float ve double temel veri tipleridir. Boolean mantık değişkenidir ve [...]

21 September 2007


Python-TR
(python-tr)

2 Kere “Merhaba Dünya”

Bu siteyi bitirme tezimizin konusu olan “Java ve Python Programlama Dillerinin Karşılaştırılması” için oluşturduk. Arkadaşım Emel OKAY (japanese) ve ben Uğur SAMSA (JaMaL), bizler gelişme gösterdikçe, gelişmeleri buraya aktarıyor olacağız. Sitenin adresinin python-tr.com olmasına aldanmayın. Bu sitede Java da anlatılacaktır, Python da. Tezimizi erken bitirebilirsek Python ile bir uygulama yapmayı düşünüyoruz. Tabi bunlar zamanla olacak [...]

05 August 2007


Python-TR
(python-tr)

Python’da Klavye Girişleri

Her programlama dilinde olduğu gibi klavye girişleri, kullanıcıdan bilgi alınmak istendiğinde kullanılır. Python’daki kullanımı şöyledir: karakter girişlerinde “raw_input”, sayısal değer girişlerinde “input” kullanılır. Şimdi de bunu örnekler üstünde görelim. Örnek 1 : –>raw_input(”yaz bir şeyler:”) yaz bir şeyler:Bugün hava çok güzel veya –>kelime=raw_input(”Bir kelime giriniz:”) #Kullanıcının yazdığını kelime adlı değişkene atadık Bir kelime giriniz:Bulut –>kelime #kelime adlı değişkenin değerini istiyoruz “bulut” Örnek 2 : –>input(”Bir sayı [...]

12 July 2007


Python-TR
(python-tr)

Python’da Karakter Dizilerini Birden Fazla Satırda Yazmak

Yazımızı satırlar halinde yazarak görsellik kazandırmak istediğimiz durumlar vardır. İşte bunu yaparken Python’un bize sunduğu bir çok yoldan birini kullanabiliriz. Bunun nasıl yapıldığını her biri için örneklerle görelim. a => değişken olsun (Python’da değişkenleri kullanırken önceden tanımlama yapmamıza gerek olmadığını hatırlayalım) Örnek 1 : a=”Muhabbet bağına girdim bu gece\ Açılmış gülleri derdim bu gece” Örnek 2 : a=”Muhabbet bağına girdim bu [...]

11 July 2007


Python-TR
(python-tr)

Java’da Sınıf Oluşturma

Java Programlama Dili’nde sınıf oluşturmak çok basittir. Tabi önemli olan bu sınıfı ne şekilde ve nasıl kullanacağımızdır. Aşağıda Java’da sınıf oluşturma kodunu görüyorsunuz. public class sinifadi{ //gerekli tanımlar } Burada “sinifadi” sınıf adının değişkenidir ve programcıya göre şekillendirilir. “public” komutunun buradaki amacı ise bilgilerin diğer sınıflar tarafından da kullanılabilmesidir.

08 July 2007


Python-TR
(python-tr)

Python’da Değişken Tanımlamak

Aslında bu başlık yanlış, doğrusu “Python’da Değişken Tanımlamamak” olacaktı. Çünkü Python’da değişken tanımlanmıyor, değişkenlerin tipleri atandıkları ilk değere göre belirleniyor. Bu da bize kullanım rahatlığı sağlıyor. Değişkene değer atama yaparken sayıları direkt, string ifadeleri ise tırnak içinde yazıyoruz. Tek ya da çift tırnak kullanabiliriz, aynı anlama geliyor. Örnek 1 : değişken=değer a=5 b=”ali” k=’veli’ Örnekten anlaşılacağı gibi program a’yı integer, b ve [...]

Python-TR
(python-tr)

Python İle İlgili Genel Bilgiler-Python Nedir?

Python, ilk olarak 1990 yılında Guido Van Rossum tarafından geliştirilmeye başlanmıştır ve adını Monty Python’s Flying Circus adlı programdan almıştır. Python, nesne yönelimli(object oriented), yorumlanabilen(interpreted), modüler ve etkileşimli(interactive) bir programlama dilidir. Sözdiziminin(syntax) basit olması dilin öğrenilmesini oldukça kolaylaştırmktadır. Ayrıca diğer dillerde kod bloklarını belirtmek için parantezler kullanılırken Python’da kod blokları girintiler(indentation) yoluyla anlaşılmaktadır ve bu [...]

07 July 2007


Python-TR
(python-tr)

Java’da Değişken Tanımlamak

Java’da değişken tanımlamak için önce tanımlayacağımız değişkenin tipini yazıyoruz. Ardından tanımlayacağımız değişkene vereceğimiz adı yazıyoruz. “=” işaretini ekliyoruz. Eşitliğin sağ tarafını isteğimize göre iki şekilde yazabiliriz. Birincisi new + değişken tipini yazıp parantez içinde çift tırnaklar kullanarak değişkenin değerini yazarak, ikincisi ise sadece çift tırnaklar içinde değişkenin başlangıç değerini yazarak. İki seçenekte aynı işi yapar. [...]