Etiket arşivi: Yeni

Android adam!

Google’ın ABD’li cep telefonu üreticisi Motorola’nın cep telefonu birimini satın almasıyla Rubin’in temelini attığı işletim sistemi Android’i kullanan cep telefonu pazarının daha da güçlenmesi bekleniyor.

6 yıl önce Google ekibine katılan Rubin, Android işletim sisteminin babası olarak anılıyor. 48 yaşındaki mühendis Andy Rubin, 6 yıl önce kendi adına benzeyen ve logosu da kendisine benzeyen Android işletim sisteminin tohumlarını atmış, 2005 yılında onu Google’a satmıştı. Bu tarihte Google ekibine katılan Rubin, Android işletim sisteminin akıllı telefonların çoğunda kullanılmasını sağlamış, internet devinin bu alanda rakipleri Apple ve Nokia’yı geride bırakmasını sağlamıştı.

Andy Rubin nisan ayında Google’ın kıdemli başkan yardımcılığı pozisyonuna yükselmişti. Google’ın en güçlü yöneticilerinden Rubin’in şirketin Motorola’nın cep telefonu ve tablet üretim bölümünü 12.5 milyar dolara satın alma kararını almasında önemli rol oynadığı belirtildi. Rubin’in Twitter’daki açıklamasına göre her gün 500 binin üzerinde yeni Android cihazı aktif hale geliyor. Bu sayının içinde akıllı telefonlar, tabletler ve Android ile çalışan diğer cihazlar bulunuyor. Rubin 2010’un Aralık ayından beri istatistikleri Twitter üzerinden paylaşıyor.

Ssh Kodları

wget :bulunduğunuz dizine download etmenizi sağlar
ls : Dizinde bulunan herşeyi listeler.
ls -a : Gizli dosyalar ve dizinlerle beraber listeler.
ls -l : Bütün dosyaları boyut ve tarihini göstererek listeler.
tar -zxpf : Uzantısı tar.gz olan sıkıştırılmış dosyaları açar.
tar -xpf : Uzantısı .tar olan dosyaları açar.
gunzip : Uzantısı .gz olan dosları açar.
cp : Dosyayı kopyalar.
mv : Bir dosyayı başka bir dizine taşımanızı sağlar ya da dosya adını değiştirir.
mkdir : Yeni bir dizin oluşturmanızı sağlar.
rmdir : Belirtilen dizini silmenizi sağlar.
rm : Dosya silmenizi sağlar.
rm -rf : Dizin silmenizi sağlar.
cd : Belirtilen dizine geçmenizi sağlar.
cd .. : Bir üst dizine geçmenizi sağlar.
cd ~ : En üst dizine çıkmanızı sağlar.
pwd : O anda bulunduğunuz dizini görüntüler.
pico : Belirtilen dosyayı text editör ile düzenlemenizi sağlar.
ftp : Belirtilen siteye FTP bağlantısı sağlar.
lynx : Belirtilen siteyi görüntüler.
df : Harddisk istatistiklerini gösterir.
quota : Disk kullanımınızı gösterir.
uname : İşletim sisteminin durumunu gösterir.
whoami : Kendi bilgilerinizi gösterir.
who : Sunucuya bağlı olanları gösterir.
last : Hesabınıza yapılan en son bağlantıyı gösterir.
whereis : Belirtilen dosyanın nerede olduğunu gösterir.
BitchX : IRC programını çalıştırır.
mail : Postalarınızı kontrol eder.
ps -x : Sizin çalıştırdığınız işlemleri gösterir.
ps -a : Sunucuda çalıştırılan tüm işlemleri gösterir.
ps -ux : Çalıştırılan işlemlerin CPU/RAM kullanımıyla gösterir.
kill Pid : numarası verilen işlemi durdurur.
kill -9 : Pid numarası verilen eggdrop işlemini durdurur.
killall : Belirtilen program türündeki tüm işlemleri durdurur.
ee Gilardinho : Gilardinho isimli dosyayı açar
whatis : Belirtilen komutun açıklamasını verir.
man : Komut hakkında yardım görüntüler
passwd : Shell hesabınıza girerken kullandığınız şifreyi değiştirmenizi sağlar.
vhosts ya da vhost : Sistemde bulunan vhostları (virtual host) listeler.(BNC için kullanabilirsiniz)
ip addr : Root makinada ip öğrenme
adduser login & chown mavigok /home/login & passwd pass1 , passwd pass2 : Root da hesap açmak
reboot : Sunucuya restart atar
service mysql restart : mysql restart atar
service httpd restart : apache ye restart atar
service httpd stop : Sitelere ulaşımı kapatır
apf -d ipadresi : verilen ipe ban atar
service apf restart : apf ye restart atar
netstat -n : sunucuya baglanan ipleri gösterir
netstat -a : sunucuya baglanan reseller ipleri gösterir(Proxy kullanmanız fark etmez her zaman gercek cıkış ipi görünür)
pico : ssh üzerinden text editor ile dosya içeriğini görme ve düzenlemeye yarar.
top : Sistem cpu kulalnımını gösterir.
uptime : Uptime Durumu
ee dosya adı.uzantısı : Bulunduğunuz dizindeki dosyayı düzenler (cd /usr/game… yapmanız gerekir)

IP Engelleme :

iptables -A INPUT -s 85.159.54.48 -j DROP

ip ban kaldirma :

iptables -X INPUT -s 85.159.54.48 -j DROP

syn olarak sunucuya aldigini saldiri adetini ve ipleri gösterme :

netstat -np | grep SYN_RECV | awk ‘{print $5}’ | cut -d. -f1-4 | cut -d: -f1 | sort -n | uniq -c | sort -n

sunucu özellikleri öğrenmek için yazmanız gereken :

dmesg

Php Upload Class

%100 tüm testlerimi yapmadım ama bayram tatilinde boş durmayıp upload fonksiyon kütüphanemi bitireyim dedim,

Kullanım Örneği;

<?php

include('upload.class.php');

$a = new upload;

/*Zorunlu değil boş bırakırsak root dizine atar*/
$a->directory = 'D:\wamp\www'.DIRECTORY_SEPARATOR;

/*Girmek zorunlu değil girmek gerede 250K,2M,1G vb, parametreler ile girilmelidir*/
$a->allowed_size = '2G';

/*Girmek zorunlu değil Dosya uzantısı kontrolü yapar girmek gerekirse array('uzantı') şeklinde */
$a->allowed_ext = array('jpg','gif','png');

/*Girmek zorunlu değil Dosya uzantısına aldırmaksınızın eğer resimli işlemler yapıyor isek resim oldugunu belirmekte fayda var*/
$a->check_image_type = true;

/*Girmek zorunlu değil Dosyaya yeni ad vermek iser isek not uzantıyı yazmıor sadece adı değiştiriyor*/
$a->file_rename = uniqid();

/*girmek zorunlu hangi file formdan geldiğini belirmemiz gerekiyor. multi upload fonksiyonunu kapattım*/
$file = $a->save('ahmet');

/*hata çıktıları*/
if($file){
	print_r($file);
}else{
	print_r($a->error);
}

?>

upload.class.php

<?php
	/*
		@author mehmetmutlu.com.tr
		@16 Kasım 2010, Salı
	*/

class upload{
	public $directory = NULL;
	public $allowed_size = NULL;
	public $allowed_ext = NULL;
	public $check_image_type = false;
	public $file_rename = NULL;
	public $error = NULL;
	public $renadme = NULL;

	public function save($file=NULL){
		if(!$this->check_directory()){
			die('Upload dizini yok yada yazma izini geçersiz.');
		}
		if($file==NULL){
			die('class save(\'\') file değeri geçersiz');
		}else{
			if($_FILES[$file]['error']==0 && $_FILES[$file]['size']!=0){
				if(!$this->check_allowed_ext($_FILES[$file])){
					$this->error[] = array(1,'Geçersiz dosya uzantısı.');
				}elseif(!$this->check_allowed_size($_FILES[$file])){
					$this->error[] = array(2,'Upload limit aşımı. Maksimum upload boyutu '.$this->allowed_size);
				}elseif(!$this->check_image($_FILES[$file])){
					$this->error[] = array(3,'Geçersiz resim dosyası');
				}else{
					if(move_uploaded_file($_FILES[$file]['tmp_name'], $this->directory . $this->path($_FILES[$file]))){
						return array('file'=>$this->path($_FILES[$file]),'ext'=>pathinfo(basename($_FILES[$file]['name']),PATHINFO_EXTENSION),'size'=>$_FILES[$file]['size']);
					}else{
						$this->error[] = array(0,'Upload sırasında hata oluştu');
						return false;
					}
				}
			}else{
				$this->error[] = array(0,'Upload sırasında hata oluştu');
				return false;
			}
		}
	}

	private function path($file){
		if($this->file_rename==NULL){
			return  basename($file['name']);
		}else{
			return $this->file_rename.'.'.pathinfo(basename($file['name']),PATHINFO_EXTENSION);
		}
	}

    private function check_directory(){
		if(is_dir(realpath($this->directory)) || is_writable(realpath($this->directory))){
            return true;
        }
		return false;
    }

    private function check_allowed_size($file){
		if($this->allowed_size!=NULL){
			if(!preg_match('#[0-9]++[GMKB]#',$this->allowed_size)){
				return false;
			}
			switch(substr($this->allowed_size,-1)){
				case 'G': $size = intval($this->allowed_size) * pow(1024,3); break;
				case 'M': $size = intval($this->allowed_size) * pow(1024,2); break;
				case 'K': $size = intval($this->allowed_size) * pow(1024,1); break;
				default : $size = intval($this->allowed_size);               break;
			}
			return ($file['size'] <= $size);
		}else{
			return true;
		}
    }

    private function check_allowed_ext($file){
		if($this->allowed_ext!=NULL){
			if (in_array(pathinfo($file['name'],PATHINFO_EXTENSION),$this->allowed_ext)){
				return true;
			}else{
				return false;
			}
		}else{
			return true;
		}
    }

	private function check_image($file){
		if($this->check_image_type==false){
			return true;
		}else{
			if(!getimagesize($file['tmp_name'])) {
				return false;
			}else{
				return true;
			}
		}
	}

}

?>

not: class içerisinde bazı fonsiyonları Yusuf Koç‘un upload classın dan alıntı yapılmıştır…

mysql_affected_rows

int mysql_affected_rows ([ resource $bağlantı_belirteci ] )

bağlantı_belirteci ile ilişkili son INSERT, UPDATE, REPLACE veya DELETE sorgusundan etkilenen satır sayısını döndürür.

Son sorgunun başarılı olması durumunda etkilenen satırların sayısını döndürür; başarısız olması durumunda -1 döndürür.

Eğer son sorgu, WHERE şartı içermeyen bir DELETE sorgusuysa, tablodaki bütün kayıtlar silinmiş demektir, ancak bu işlev MySQL’in 4.1.2’den önceki sürümlerinde 0 döndürür.

UPDATE’i kullanırken, MySQL yeni değerleri eski değerleri ile aynı olan sütunları düzeltmez. Bu da mysql_affected_rows()’un muhtemelen uyan tüm satırların değil, sadece sorgu sonucu gerçekten düzeltilen satırların sayısını döndürmesine neden olur.

REPLACE ifadesi aynı birincil anahtara sahip olan kayıtları siler, daha sonra yeni kaydı girer. Bu işlev silinen kayıtların sayısı artı girilen kayıtların sayısını döndürür.

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Bağlanamadı: ' . mysql_error());
}
mysql_select_db('mydb');

/* bu silinen kayıtların gerçek sayısını döndürmeli */
mysql_query('DELETE FROM mytable WHERE id < 10');
printf("Silinen kayıtlar: %d\n", mysql_affected_rows());

/* WHERE şartıyla asla true olmaz, 0 döndürmeli */
mysql_query('DELETE FROM mytable WHERE 0');
printf("Silinen kayıtlar: %d\n", mysql_affected_rows());
?>
Silinen kayıtlar: 10
Silinen kayıtlar: 0
<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Bağlanamadı: ' . mysql_error());
}
mysql_select_db('mydb');

/* Kayıtları güncelle */
mysql_query("UPDATE mytable SET used=1 WHERE id < 10");
printf ("Güncellenen kayıtlar: %d\n", mysql_affected_rows());
mysql_query("COMMIT");
?>
Güncellenen kayıtlar: 10