Skip to content

mySQL `ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction` hatası

2012 January 9
by M.Kürşad DARA

Herhangi bir mySQL’de InnodB olan bir veritabanında update gibi table-lock koyan sorgusu çalıştırırken

ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction

hatasını alıyorsanız, konfigürasyon dosyasından

innodb_lock_wait_timeout=300

ekleyip mySQL i yeniden başlatırsanız sorununuz çözülecektir. Parametrenin değeri olan 300 saniye cinsindendir ve varsayılan değeri 50 sn. dir.

Bakınız : http://dev.mysql.com/doc/refman/5.0/en/innodb-parameters.html#sysvar_innodb_lock_wait_timeout

Popularity: 1% [?]

Text dosyasının başına satır numarası ekleme.

2011 December 8
by M.Kürşad DARA
[root@efffe ~]# cat kursad.txt
satir 1
satir 2
satir 3
satir 4
satir 5

gibi bir text dosyanız var ve bütün satırların başına satır numarası koymak istiyorsunuz.
Bunun için linuxte nl isimli bir komut var

[root@efffe ~]# nl kursad.txt
     1  satir 1
     2  satir 2
     3  satir 3
     4  satir 4
     5  satir 5

veya

[root@efffe ~]# less -N kursad.txt
      1 satir 1
      2 satir 2
      3 satir 3
      4 satir 4
      5 satir 5

kullanabilirsiniz.

Fakat daha özelleştirilmiş birşeyler isterseniz awk ile bunu yapabilirsiniz.

[root@efffe ~]# awk 'BEGIN{FS=",";OFS="|"} {$1=$1; print NR,$0}' kursad.txt  > satirnumarali.txt

komutunu verdiğinizde satirnumarali.txt dosyasına satır numaralı şekilde yazacaktır.

[root@efffe ~]# cat satirnumarali.txt
1|satir 1
2|satir 2
3|satir 3
4|satir 4
5|satir 5

Popularity: 1% [?]

Warning event on netapp1:aggr0 (Aggregate Snapshot Reserve Almost Full)

2011 November 18
by M.Kürşad DARA

Snapshot reserve almost full dediğine göre biraz ayırdığımız alanı büyültmemiz gerekiyor.

netapp1> df -A  -g aggr0
Aggregate                total       used      avail capacity
aggr0                    573GB      519GB       127GB      90%
aggr0/.snapshot          73GB       61GB      12GB      84%

Bunun için ;

netapp1> snap reserve -A aggr0 20

komutunu kullanıyoruz.

Default olarak ayrılan alan %5 Biz bu alanı %20 ye çıkartıyoruz. Yani toplam storage’ın %20 sini kullanacak.

netapp1> df -A  -g aggr0
Aggregate                total       used      avail capacity
aggr0                    573GB      519GB       54GB      90%
aggr0/.snapshot          143GB       61GB      82GB      42%

Popularity: 1% [?]

sudo komutu geç cevap veriyorsa

2011 September 29
by M.Kürşad DARA
[kursad@kursad ~]$ sudo su -

komutunu girdiğinizde root olmanız çok uzun zaman alıyorsa çözümü basit.

[root@kursad ~]# hostname
kursad

komutu ile çıkan makine ismini öğrenin.

Daha sonra bu makine ismini /etc/hosts dosyasında 127.0.0.1 satırının en sonuna ekleyin.

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 kursad
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

Şimdi tekrar tekrar normal bir kullanıcı ile sudo su – komutunu denediğinizde hemen root olacaksınız vakit almadan.

Popularity: 1% [?]

Clickatell API’sini kullanarak nagios ile sms uyarısı gönderme

2011 September 16
by M.Kürşad DARA

Bunun için öncelikle Clickatel firmasından gerekli üyeliği almalısınız.

Size verilen kullanıcı ve api bilgilerini aşağıdaki gibi /etc/nagios3/commands.cfg dosyasına yazın.

define command{
command_name host-notify-by-sms
command_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$ \nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | wget "http:/
/api.clickatell.com/http/sendmsg?user=USERNAME&password=PASSWORD&&api_id=API_ID&to=$CONTACTEMAIL$&text='** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ @ $LONGDATETIME$ **'"
}

define command{
command_name service-notify-by-sms
command_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$ \nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | wget "http:/
/api.clickatell.com/http/sendmsg?user=USERNAME&password=PASSWORD&&api_id=API_ID&to=$CONTACTEMAIL$&text='** $NOTIFICATIONTYPE$ Service Alert: $SERVICEDESC$ on $HOSTNAME$ State: $SERVICESTATE$ @ $LONGDATETIME$ **'"
}

Daha sonra /etc/nagios3/conf.d/contacts_nagios2.cfg dosyası içine aşağıdaki gibi notification komutlarını girin. ( Kırmızı renkteki satırlar )

# Kursad DARA
####################

define contact{
contact_name                    swn_kursadd_sms
alias                           Kursad DARA
service_notification_period     nonworkhours
host_notification_period        nonworkhours
service_notification_options    w,c,r
host_notification_options       d,u,r
service_notification_commands   service-notify-by-sms
host_notification_commands      host-notify-by-sms
pager                           532xxxxxxx
}

Sonrasında

/usr/sbin/nagios3 -v /etc/nagios3/nagios.cfg

komutu ile nagios konfigürasyonunuzu kontrol edip hata yapmadığınızdan emin olun. Hata varsa düzeltmeniz gerekecek.

Hata yok ise

service nagios3 restart

ile nagios servisini tekrar başlatın.

Artık herhangi bir uyarı durumunda nagios size sms ile bilgi verecektir.

Popularity: 1% [?]

Facebook uygulamanızı kullanan kullanıcıların duvarına otomatik veri yollama

2011 June 14
by M.Kürşad DARA

Facebook uygulamalarınızı kullanan kullanıcıların duvarlarına otomatik veri yollamak için aşağıdaki kod bloğunu kullanabilirsiniz.

$attachment = array('message' => 'mesajınız',
                'name' => 'Uygulama adı',
                'caption' => "Uygulama adı",
                'link' => 'Uygulama linki',
                'description' => 'İçerik',
                'picture' => 'resim tam linki'
                );

    $result = $facebook->api('/me/feed/',
                                'post',
                                $attachment);

Not : İlgili javascriptleri ve api kodlarını da sayfanıza include etmiş olmanız gerekmektedir.

Popularity: 2% [?]

Yazdığınız PHP programlarının güvenliği için bir checklist

2011 May 12
by M.Kürşad DARA

İncelenmesi gereken güzel bir checklist.

Güvenli mi yazdığınız programlar ?

Checklist için tıklayınız.

Popularity: 2% [?]

Facebook sayfalarda kullanıcının beğenip beğenmediğini tespit etme.

2011 May 11
by M.Kürşad DARA

Kodunuzun en başında aşağıdaki kodu kullanırsanız kullanıcının sayfayı beğenip beğenmediğini anlayabilirsiniz.


function parsePageSignedRequest() {
    if (isset($_REQUEST['signed_request'])) {
      $encoded_sig = null;
      $payload = null;
      list($encoded_sig, $payload) = explode('.', $_REQUEST['signed_request'], 2);
      $sig = base64_decode(strtr($encoded_sig, '-_', '+/'));
      $data = json_decode(base64_decode(strtr($payload, '-_', '+/'), true));
      return $data;
    }
    return false;
  }
  if($signed_request = parsePageSignedRequest()) {
    if($signed_request->page->liked) {
      echo "Sayfayı beğendiğiniz için teşekkürler";
    } else {
      echo "Önce sayfayı beğenmeniz gerekmektedir.";
       echo("< s c r i p t > top.location.href='http://www.facebook.com/pages/blabla/198687143423423'< / s c r i p t >");
    }
  }

Popularity: 2% [?]

jQuery $ is not defined hatası

2011 May 5
by M.Kürşad DARA

jQuery kullanırken firefox ta firebug ile debug ederken aşağıdaki hatayı alıyorsanız çözüm basit.

$ is not defined
$(document).ready(function(){

Gerekli javascript dosyalarını include ederken jQuery dosyasını kendi kullandığınız javascript dosyasından sonra include etmişsinizdir o yüzden bu hatayı alıyorsunuzdur.

Yani;



şeklinde yaparsanız kuvvetle muhtemel bu hatayı alacaksınız. Ama;



şeklinde include ederseniz sorununuz düzelecektir.

Popularity: 3% [?]

Bağlantı cihazına göre web sitesine otomatik yönlendirme.

2011 April 26
by M.Kürşad DARA

Web sitenizin pc ve mobile versiyonunu yaptıysanız ve otomatik yönlendirme yapmak isterseniz aşağıdaki kodu kullanabilirsiniz.

< ?php

$mobile_browser = '0';

if(preg_match('/(up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone)/i',
    strtolower($_SERVER['HTTP_USER_AGENT']))){
    $mobile_browser++;
    }

if((strpos(strtolower($_SERVER['HTTP_ACCEPT']),'application/vnd.wap.xhtml+xml')>0) or
    ((isset($_SERVER['HTTP_X_WAP_PROFILE']) or isset($_SERVER['HTTP_PROFILE'])))){
    $mobile_browser++;
    }

$mobile_ua = strtolower(substr($_SERVER['HTTP_USER_AGENT'],0,4));
$mobile_agents = array(
    'w3c ','acs-','alav','alca','amoi','audi','avan','benq','bird','blac',
    'blaz','brew','cell','cldc','cmd-','dang','doco','eric','hipt','inno',
    'ipaq','java','jigs','kddi','keji','leno','lg-c','lg-d','lg-g','lge-',
    'maui','maxo','midp','mits','mmef','mobi','mot-','moto','mwbp','nec-',
    'newt','noki','oper','palm','pana','pant','phil','play','port','prox',
    'qwap','sage','sams','sany','sch-','sec-','send','seri','sgh-','shar',
    'sie-','siem','smal','smar','sony','sph-','symb','t-mo','teli','tim-',
    'tosh','tsm-','upg1','upsi','vk-v','voda','wap-','wapa','wapi','wapp',
    'wapr','webc','winw','winw','xda','xda-');

if(in_array($mobile_ua,$mobile_agents)){
    $mobile_browser++;
    }
if (strpos(strtolower($_SERVER['ALL_HTTP']),'OperaMini')>0) {
    $mobile_browser++;
    }
if (strpos(strtolower($_SERVER['HTTP_USER_AGENT']),'windows')>0) {
    $mobile_browser=0;
    }

if($mobile_browser>0){
   header('Location: http://siteniz/mobile_versiyonu');
   } else {
   header('Location: http://siteniz/pc_versiyonu');
   }

?>

Popularity: 3% [?]