Archive

Posts Tagged ‘Linux’

Screen ile Irssi Kullanım Kılavuzu

November 15th, 2013 2 comments

irssi[1] komut satırından çalışan ve bir çok geliştirici için popüler olan bir IRC istemcisidir. Irssi GNU Screen[2] programı ile birlikte kullanılarak çıkış yapmadan bir veya birden fazla kabuk yaratabilirsiniz. Sürekli biligisayar değiltirip fakat irssi’a kaldığınız yerden devam etmek istediğinizde çok kullanılışılır.

Avantajları:

  • Kişiler size mesaj bırakabilir.
  • Siz dışardayken yapılan görüşmeleri sonradan yakalayabilirsiniz (genellikle “scroolback” olarak adlandırılır).

Yönergeler:

  • Bir adet linux VPS edinin ya da sık sık yeniden başlatılmayacak, ihtiyacınız olan yerden bağlanabileceğiniz *nix makina üzerinde ssh hesabı edinin.
  • Bu hesaba bağlanmak için ssh kullanın. Windowsta PuTTY[3] gibi bir istemci kullanın. Eğer Linux yada Unix temelli bir işletim sistemi kullanıyorsanız zaten ssh kuruludur.
  • Ssh hesabına bağlandığınızda, irssi’yı screen oturumu içinde başlatın. Aşağıdaki şekilde yapabilirsiniz.
    $ screen
    screen will flash and go back to the default prompt.  You are now inside screen
    $ irssi
    
  • Irc uygulaması IRSSI’yı başlatmak yeni komut satırına “irssi” yazın. Bir not olarak, eğer bir screen oturumundan çıkmak istiyorsanız komut satırından “exit” yazmanız sizin screen oturumunu açtığınız ilk noktaya dönmenizi sağlayacaktır.
  • IRSSI komut satırı içinde bir sunucuya bağlanmak:
    /connect irc.mozilla.org

    yada

    /connect irc.freenode.net
  • Bir kez bağlandıktan sonra
    /join #hadron
  • /connect ve /join komutlarını tekrarlayarak birden fazla sunucuya katılabilirsiniz.
  • Screen yazılımı sizin irssi yazılımından çıkmanıza ve tekrar bağlanmanıza izin verir.
    • IRSSI’dan çıkmadan komut satırına geri dönmek istersen önce “ctrl+a” sonrada “ctrl+d” komninasyonuna bas
    • Eğer IRSSI’a tekrar bağlanmak istiyorsanız “screen -raAd” komutunu çalıştırın.
    • Eğer çalışan screen süreçlerini görmek istiyorsanız “screen -ls” komutunu kullanabilirsiniz.
    • Eğer screen sürecine bir isim vermek istiyorsanız “screen -S irc” komutunu kullanabilirsiniz. Bu şekilde screen komutuna irc adını vermiş oluruz. Buna tekrar bağlanmak için “screen -r irc” komutunu kullanabilirsiniz.

Sıkça Sorulan Sorular:

  1. Ön tanımlı takma ismi(nick) nasıl değiştirebiliriz?
    • Irssi içinde, “/set nick takmaisim” ya da “/nick“, iki yöntemde çalışacaktır.
  2. Açık kanallarımı, özel mesajlarımı ve sunucu pencerelerini görebilmek için nasıl pencereler arasında geçiş yapabilirim?
    • Alt tuşuyla birlikte o pencerenin numarasını kullanarak geçiş yapabilirsiniz. Mesala Alt+1 sucunu penceresine gidecekti.
    • Eğer bu çalışmıyorsa, Alt tuşu yerine Esc kullanın. Bunun her zaman çalışması gerek.>/li>
  3. Mevcut kanaldaki tüm kullanıcıları nasıl listelerim?
    • /names yada /who yazabilirsiniz.
  4. Irssi ekranında ‘Act: 3’ ne anlama geliyor?
    • Irssi ekranınızda, [2:#hadron] [Act:3,4] göreceksiniz. Bu numaralar ne anlama geliyor? 2’nin anlamı bulunduğunuz sohbet ekranı. 3 ve 4 diğer açık sohbetler.
    • Eğer 3 mavi renkteyse, bunun anlamı birilerin durumu değişti (giriş – çıkış yapıldı).
    • Eğer 3 beyaz ise, o sohbette muhabbet devam ediyor.
    • Eğer 3 pembe ise, özellikle sizin ilginizi çekecek bir nedenden dolayı size ekstra bir mesaj yollandı.
    • Eğer bir sohbetten diğerine geçiş yapmak istiyorsanız, alt+screen# kombinastonunu kullanın(screen# => geçmek istediğiniz ekranın numarası).
  5. Açık bir pencereyi nasıl kapatabilirim?
    • Kapatmak istediğiniz pencereye geçin, ve /window close (yada /wc) yazıp enter’a basın.
  6. İkinci seferde hesabıma nasıl giriş yapabilirim.
    • “screen -r” komutunu terminale yazarak.
  7. Birden fazla screen oturumum var fakat şuan kullandığım screen oturumunu açmak istiyorun. Nasıl yapabilirim?
    • Komut satırına “screen -x” yazın.
  8. Ekranı aşağı yukarı nasıl kaydırabilirim.
    • Page Up & Page Down
  9. Birisiyle irc üzerinde nasıl özel sohbet yapabilirim?
    • Birisiyle özel sohber başlatmak için konuşacağınız kişinin ismini bilmelisiniz. “/names” komutunu yazarak odadaki kişileri listeleyip konuşacağınız kişiyi belirleyebilirsiniz ve “/query takmaad” ya da “/q takmaad” yazarak özel sohbeti başlatabilirsiniz.
    • Özel sohbeti kapatmak için “/query” ya da “/q” yazın.
  10. Irssi’ı bir bilgisayardan kapatıp diğerinden ulaşmak istiyorum, bu sırada bağlantılarım açık kalsın ve mesajları almaya devam edeyim istiyorum. Nasıl yapabilirim?
    • Ctrl+A tuşlarına bastıktan sonra D tuşuna basmalısınız. (Bu sizi screen oturumundan çıkartacaktır)
    • O bilgisayardan ssh bağlantısını kapatın ve diğer bilgisayara geçin. Irssi’ın kurulu olduğu bilgisayara ssh ile bağlanıp “screen -arAd” komutunu verin.
    • Duyuru: Birdaha bağlanmak zorunda değilsiniz. Irssi’ın çalıştığı bilgisayar kapatılmadığı sürece sunucularla bağlantınız kopmayacaktır.

[1]: http://www.irssi.org/
[2]: http://en.wikipedia.org/wiki/GNU_Screen
[3]: http://cdot.senecac.on.ca/software/putty/

Bu yazı http://zenit.senecac.on.ca/wiki/index.php/Irssi_Tutorial adresindeki dökümanın bir nevi çevirisidir. Bir kısmını kendi kafama göre düzenledim. Bir kısmı pek anlaşılır değil, fazla zaman kaybetmek istemedim. Yorumlarla katkı verirseniz daha anlaşılır bir döküman haline getirebilirim.

Categories: Linux Tags: , , , ,

Linux’ta disk doluluk oranının yanlış hesaplanması

July 22nd, 2013 No comments

diskBir sunucuda garip bir problemle karşılaştım, diskte yer kalmadığını söylüyordu fakat ne yaparsam yapayım diski dolduran dosyaları bulamıyordum. Biraz araştırınca sorunu ve çözümünü buldum. Senaryo şöyle idi:

  1. Dosya bir program tarafından okumak için açılır.
  2. Başka bir program bu dosyayı siler.

Bu senaryo gerçekleştiğinde, her ne kadar dosya silinmiş olsa da, hala diskte yer tutmaya devam edecektir. “du” komutuyla baktığınızda yer tutmayacaktır, ancak df ile kontrol ettiğimizde disk dolu olarak görünecektir.

Basit bir demo yapacağım:

Öncelikle 1GB boyutunda bir dosya oluşturacağım.

mkdir /tmp/tmp_directory/
cd /tmp/tmp_directory/
dd if=/dev/zero of=1gb_file.dat bs=1M count=1024

Oluşturulan bu dosyayı python ile açacağım.

python
Python 2.7.4 (default, Jul  5 2013, 08:21:57)
[GCC 4.7.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> f = open("1gb_file.dat", "rwb")
>>>

Şimdi disk bilgilerine bakıyorum

df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda5       414G   11G  382G   3% /

Görüldüğü gibi diskin 11GB’lık kısmı kullanılıyor.

du -sh tmp_directory/
1.1G    tmp_directory/

tmp_directory dizini diskte 1.1GB yer tutuyor.

Şimdi dosyayı siliyorum.

rm tmp_directory/1gb_file.dat

Disk bilgilerini tekrar kontrol edelim:

df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda5       414G   11G  382G   3% /

du -sh tmp_directory/
4.0K    tmp_directory/

Görüldüğü gibi, df çıktısı hala diski 11GB dolu görüyor, du ile baktığımızda ilgili dizinin boyu sadece 4KB, buda boş bir dizinin diskte tuttuğu yer.

Açtığımız dosyayı geri kapatalım.

>>> f.close()

Tekrar kontrollerimizi yapalım:

df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda5       414G   10G  383G   3% /

Dosya kapatıldıktan sonra 1.1GB’lık alan tekrar boş olarak hesaplandı.

Bu dosyayı biz oluşturduğumuz için hangi dosya üzerinde işlem yapacağımızı biliyorduk, peki bu durumda olan dosyalarını nasıl bulabiliriz?

lsof komutu yardımıyla bunu yapabiliriz.

sudo lsof | grep deleted
python    21882            askin    3r      REG                8,5         0    7211180 /tmp/tmp_directory/1gb_file.dat (deleted)

Bu şekilde hangi açık dosyaların silinmiş olduğunu görebiliriz. Bu çıktıya göre, askin kullanıcısı 21882 process id’si ile python programıyla /tmp/tmp_directory/1gb_file.dat dosyasını açmış, fakat bu dosya hala açıkken silinmiş. Bu dosyayı kapatmak için biraz daha bilgiye ihtiyacımız var.

sudo ls -l /proc/21882/fd/*
lrwx------ 1 askin askin 64 Jul 22 14:58 /proc/21882/fd/0 -> /dev/pts/11
lrwx------ 1 askin askin 64 Jul 22 14:58 /proc/21882/fd/1 -> /dev/pts/11
lrwx------ 1 askin askin 64 Jul 22 14:58 /proc/21882/fd/2 -> /dev/pts/11
lr-x------ 1 askin askin 64 Jul 22 14:58 /proc/21882/fd/3 -> /tmp/tmp_directory/1gb_file.dat (deleted)

Burdan aldığımız bilgiyle dosyamızı kapatabiliriz.

sudo cat /dev/null > /proc/21882/fd/3
Categories: Gezegen, Linux Tags: , , , ,

Usb bellek üzerinde Raspberry PI

March 24th, 2013 No comments

Malesef sd kart olmadan raspberry pi’yı boot etmemiz mümkün olmuyor. Benim elimde 1GB’lık bir sd kart vardı ve 2GB dan daha ufak imaj dosyaları bulamadım. Bu nedenle usb bellek ile boot etme ihtiyacı duydum.
Benim sistemimde usb bellek ve sd kart aşağıdaki şekilde tanındı:
– usb: /dev/sdd
– sd: /dev/sde

Öncelikle indirdiğimiz imaj dosyasını usb belleğimize kopyalıyoruz

dd if=2013-02-09-wheezy-raspbian.img of=/dev/sdd

Elimizde bulunan sd karta 1 adet fat32 bölüm oluşturuyoruz (oluşturduğunuz bölüm hem ilk sırada hem de birincil bir bölüm olmalı). Bunu ister Gparted gibi bir araçla yapın isterseniz fdisk kullanın. Bölümleme işlemlerini yaptıktan sonra aşağıdaki komutları uygulayın.

mkdir /tmp/mnt_sd /tmp/mnt_usb
mount /dev/sdd1 /tmp/mnt_usb
mount /dev/sde1 /tmp/mnt_sd

cp /tmp/mnt_usb/* /tmp/mnt_sd

Bu işlemleri yaptıktan sonra /tmp/mnt_sd/cmdline.txt dosyasını düzenlememiz gerekmekte. Bu dosyada root=/dev/mmcblk0p2 olan kısmı root=/dev/sda2 olarak değiştirin.

Kaynak

Categories: Gezegen, Linux Tags: , , , , ,

Bir dosyanın boş olup olmadığını kontrol etme

November 7th, 2012 No comments

Shell script yazarken bir dosyanın boş olup olmadığını kontrol etmemiz gerekebilir. Bunu yapmak için birkaç yöntem yazacağım.

satirsayisi=`wc  -l 194.27.108.90  | awk '{split($0,a," "); print a[1]}'`
if [ $satirsayisi == 0 ]; then echo "dosya bos"; fi
if [ -z $(cat dosyaadi) ]; then echo "dosya bos"; fi
if [ -z `cat dosyaadi` ]; then echo "dosya bos"; fi

Ve en güzeli

if [ -s dosyaadi ]; then echo "Dosya dolu"; else echo "Dosya bos"; fi
Categories: Gezegen, Linux Tags: , , , , ,