Salih BiLGiN on Şubat 6th, 2011

İki yıldır geliştirilmesi devam eden son kararlı sürüm Debian tarafından duyuruldu. Debian 6.0 versiyonunun sürüm adı olarak squeeze kullanılmakta. Sürüm ile ilgili notları aşağıdaki kaynaklar linkinden öğrenebilirsiniz. Ancak bu sürümde en çok dikkatimi çeken özelliklerden biriside çekirdek olarak FreeBsd tabanlı olarak kullanılan yeni bir varyasyon çıkarması oldu. Masaüstü sistemlerinde ubuntu zaman içinde tercih edilirken bu yeni atılımla debian kullanıcı sayısının artacağına inanıyorum.

Bu yeni kararlı sürüm birlikte debianın sitesinde de bir değişiklikte farkediliyor. Daha sade ve fonksiyonel bir site olmuş. Ayrıca Ubuntu’dan görmeye alıştığımız varyasyonlara benzer proje gruplarını da Debian’da da görmeye başladık. Bence diğerlerinden yine farklı olarak DebianGis projesi dikkatimi çekti.

Yeni sürüm ile birlikte kullanım oranının Debian’dan türemiş yazılımlardan pay kapacağına eminim. En azından kendim adına öyle olacağını düşünüyorum.

Debian Nedir?

Debian İndirme / Edinme

Debian 6.0 Squeeze Sürüm Notları

Debian 6.0 Squeeze Sürüm Haberi

Tags: , , , , , , , ,

Salih BiLGiN on Şubat 5th, 2011

Linux komut satırında bir komutu belli kriterler karşılaştığında çalıştırabilirsiniz. Örnek bir komut ile belli bir boyutun üzerindeki dosyaları sildirelim.

find /home/salih/Downloads/* -size +1024k -type f -exec rm -f '{}' \;

komut sırasıyla inceleyelim.

  1. argüman arama komutu.
  2. argüman dosyaların belirli kriterlere göre silineceği klasör
  3. aramanın hangi kritere göre yapılacağını belirtiriz.
  4. argüman hangi boyuta göre işlem yapacağımızı belirler. Artı (+) olursa sağındaki değerden yukarıdaki dosyaları bulur. Eksi (-) olursa sağındaki değerden aşağıdaki dosyaları bulur.
  5. argüman aramanın hangi dosya tipi ile yapılacağını belirler. (-f  normal dosya)
  6. argüman kabuk komutu çalıştırmak istediğimizi belirtiyoruz.
  7. argüman rm komutunun işletilmesi ve kriterlere uyan dosyaları siler

Bu kriterlere uyan dosyaları silmek değil bir dosya içerisinde yazmak istersek aşağıdaki komutu çalıştırmamız yeterli.

find /home/salih/Downloads/* -size +1024k -type f > birmbdenbuyuk.txt

İki günden daha eski dosyaları silmek içinde aşağıdaki komutu çalıştırırız.

find /var/spool/squid/* -mtime +2 -exec rm {} \;

Tags: , , , , , , ,

Salih BiLGiN on Ocak 9th, 2011

Veritabanında olan fakat aradaki id numarası düzenli ile artarken aradaki bazı kayıtları bir düzenlemeden sonra sildim. Kayıtları çağırırken id numarasına bir ekleyerek çağırıyordum. Ancak bu aralardaki silinen kayıtlardan sonra işlemlerde hata alıyordum. Bunu yapmanın bir yolunu aradım ve SQL komutunda buldum çözümü. where koşulundan sonra verdiğim id’den bir sonraki kayıtı getirmesi için > büyüktür işareti kullanmam yeterli oldu. Bir önceki kayıdı getirmesi içinde < küçüktür işareti kafi geldi. Çok kolay ama benim için önemli adım oldu. PostgreSQL için geçerli php kullanımı aşağıdaki gibidir.

$vt_host="localhost";
$vt_kullanici="salih";
$vt_sifre="123456";
$vt_adi="linux_db";
$vtbaglantisi = pg_connect("host=$vt_host dbname=$vt_adi user=$vt_kullanici password=$vt_sifre");
if (! $vtbaglanti) {
echo "Bağlantı Hatası";
}
else {
echo "Veritabanı baglantisı var";
}
$sorgu = "select * from oyun.dosya where dosya.id &gt; $gecici_id ORDER BY id ASC LIMIT 1";
$sorgula = pg_query($vtbaglantisi,$sorgu);
while ($sonuc=pg_fetch_array($sorgula)){
echo $sonuc["id"];
echo $sonuc["ad"];
echo $sonuc["gorsel"];
}

Tags: , , , , , , ,

Salih BiLGiN on Ocak 8th, 2011

Postgresql veritabanından bilgi çekmek için kullanım şekillerine bir kaç örnek verelim. İlk olarak veritabanı bağlantı bilgilerinin girişini yapıyoruz.

$vt_host="localhost";
$vt_kullanici="salih";
$vt_sifre="123456";
$vt_adi="linux_db";
$vtbaglantisi = pg_connect("host=$vt_host dbname=$vt_adi user=$vt_kullanici password=$vt_sifre");
if (! $vtbaglanti) {
echo "Bağlantı Hatası";
}
else {
echo "Veritabanı baglantisı var";
}

Veritabanı bilgilerinin ardından ilk sorgumuzda veri tabanına bilgileri girelim.

$sorgu = "insert into malzeme (barkod,isim,fiyat,adet) values ('2201515','5mm Vida','3','100')";
if(pg_query($vtbaglantisi,$sorgu)){
echo "Kayıt Tamamlandı";
}
else {
print($sorgu . " | " . pg_errormessage($vtbaglantisi));
}
}

Aynı veriyi güncelleyelim.

$sorgu = "update malzeme set isim = '6mm Vida', adet = '250' where barkod = '2201515'";
if(pg_query($vtbaglantisi,$sorgu)){
echo "Kayıt Tamamlandı";
}
else {
print($sorgu . " | " . pg_errormessage($vtbaglantisi);
}
}

Girdiğimiz veriyi silelim.

$sorgu = "delete from malzeme where barkod=''2201515";
        if(pg_query($vtbaglantisi,$sorgu)){
        echo "Kayıt Tamamlandı";
        }
        else {
            print($sorgu . " | " . pg_errormessage($vtbaglantisi);
        }
        }

Dizi işlemlerinide örnek verelim.

$sorgu = "select * from malzeme";
        $sorgula = pg_query($btvaglantisi,$sorgu);
        while ($sonuc=pg_fetch_array($sorgula)){
            echo $sonuc["barkod"];
            echo $sonuc["isim"];
            echo $sonuc["fiyat"];
            echo $sonuc["adet"];
        }

Temel sorgu işlemleri bu şekilde yapılmakta. pg_ ile başlayan php fonksiyonları ile PostgreSQL veritabanın da istediğiniz gibi dans edebilirsiniz.

Tags: , , , , , , , , , ,

Salih BiLGiN on Ocak 7th, 2011

Komut satırından yada pgadmin gibi yazılımlarla çalıştırabileceğiniz ve sık kullanılabilecek PostgreSQL sorgu örneklerini paylaşıyorum. Daha önceki yazımızda veritabanı oluşturmayı ve ona bağlanmayı yazmıştık.

Tablo oluşturma;

 CREATE TABLE calisanlar (isim VARCHAR(25), soyisim VARCHAR(25),
adres VARCHAR(64),telefon VARCHAR(16));

Tabloya veri girişi yaparken bütün değerleri tırnak içine alıyoruz.

 INSERT INTO calisanlar(isim,soyisim,adres,telefon) VALUES ('Salih', 'Bilgin', 'Bursa', '2241112233');

Tablodan veri çekme;

İsime göre sıralanmış olarak tablodaki bütün bilgileri getirelim.

 SELECT * FROM calisanlar ORDER BY isim;

Soyismi Bilgin olan çalışanların listesini getirelim.

 SELECT * FROM calisanlar WHERE soyisim = 'Bilgin';

Birden çok değişken ile sorgu yapalım. Soyadı Bilgin olan ve Bursa’da ikamet eden çalışanların listesini getirelim.

 SELECT * FROM calisanlar WHERE soyisim = 'Bilgin' AND adres = 'bursa';

Bilgi güncelleme işlemi yapalım. Benim adresimi değiştirelim.

 UPDATE calisanlar SET adres = 'İnegöl' WHERE isim = 'Salih' AND soyisim = 'Bilgin';

Kayıt silme işlemi ile yazımızı sonlandıralım.

 DELETE FROM calisanlar WHERE isim  = 'Salih' AND soyisim = 'Bilgin';

Tags: , , , , , , , ,

Salih BiLGiN on Aralık 22nd, 2010

Normal kullanıcılar için veya topluma açık alanlarda bilgisayarını kullanmak zorunda kalan linux kullanıcıları için yeterli sayılabilecek güvenlik kuralı sörf sırasında gözüme çarptı. Umarım işinize yarar.

# Location of IPTABLES on your system
IPTABLES=”/sbin/iptables”

# SETUP:

# Flush active rules and custom tables
$IPTABLES –flush
$IPTABLES -t nat –flush
$IPTABLES -t mangle –flush

$IPTABLES –delete-chain
$IPTABLES -t nat –delete-chain
$IPTABLES -t mangle –delete-chain

# Give free reign to the loopback interfaces, i.e. local processes may connect
# to other processes’ listening-ports.
$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A OUTPUT -o lo -j ACCEPT

# Set default policies for all chains.
# User-defined chains cannot be assigned default policies.
# NAT and mangle tables use default ACCEPT policies.
# DROP in nat table is prohibited in newer iptables.
# DROP in mangle table creates hassle.
$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT ACCEPT

# INBOUND POLICY:

# Accept inbound packets that are part of previously-OK’ed sessions
$IPTABLES -A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT

# Log and drop anything not accepted above
$IPTABLES -A INPUT -j LOG –log-prefix “Dropped by default (INPUT):”

# OUTBOUND POLICY:
# Allow all outbound traffic.

# Log & drop ALL incoming packets destined anywhere but here.
$IPTABLES -A FORWARD -j LOG –log-prefix “FORWARD? Dropped by default:”

Her defasında elle girmemek için açılışa eklenebilir. Bunun için rcconf ile kolaylıkla yapabilirsiniz. Dosya düzenleme için mc kullanı.

apt-get install mc rcconf
mcedit /etc/init.d/firewall

Firewall adında bir dosyayı init.d altına oluşturalım. İçinede yukarıdaki betiği ekleyebiliriz.

chmod +x /etc/init.d/firewall
rcconf

komutu ile gelen menüden firewall’ı seçerek çıkıyoruz. Bilgisayarınız her açılışta devreye giren betikle dışarıdan erişimlere tamamen kapanmış olur.
Firewall Betiği Kaynak: Ubuntu Forums

Tags: , , , , , , , ,