Blog nedir? . . . Kendi blogunu oluştur ;)

Linux , Php, Perl dünyası

Dünyanın en yaygın internet uygulama geliştirme dili ve en çok tercih edilen internet sunucu işletim sistemi hakkında faydalı birçok şey bu blogda bulacaksınız.

Temmuz 2007 tarihli yazilar Temmuz 2007 tarihli diger ogeler resimler, videolar

Lütfen Artık Herkes Bilinçlensin (Google Pagerank)

Aynı Class C ip blogundaki sitelerin biribirini linklemesinin etkisi çok çok azdır.
%100 etkilemez demek hatalı bir yaklaşım olurken, %1-2 lik bir etkisi var demek daha dogru olur. %1-2 oranıda devede kulak sayılabilecek bir katsayı.
Gidip pr5 ve sizinle farklı içerikli bir siteden karşılıklı link degişimi yaparsan %20 civarında bir katsayı ile size dönerken,
Gidip pr5 ve sizinle aynı içerikli bir siteden karşılıklı link degişimi yaparsan %40 civarında bir katsayı ile size dönerken,
Gidip pr5 ve sizinle aynı içerikli bir siteden karşılıksız link alırsanız %100 e yakın bir katsayı ile size döner.

Matematikten anlayan bir adamın yapacağı en mantıklı şey, Sizinle aynı içerikli siteden karşılıksız link almaktır.

Her önünüze gelen siteye link kesinlikle ama kesinlikle link vermeyin
Basit bir matematiksel yaklaşım ile şöyle düşünebiliriz.
100 birim pagerankınız varsa 10 tane dost siteniz, 5 tane üye oldugunuz toplist ve sitenizinden 10 tane altsayfasına giden linkiniz varsa, bu durumda her linke akacak olan pagerank degeri
10 (dost site)+5 (toplist)+10 (sitenizin alt sayfa linkleri)= 25link eder
100birim pagerank /25 link =4 birim/link dir. Yani link başına 4 birim pagerank düşüyor.
Eger toplistlere üye olmazsanız
10 (dost site)+10 (sitenizin alt sayfa linkleri)= 20 link eder
bu durumda
100birim pagerank /20 link =5 birim/link dir.
Eger kimseye link vermezseniz
100birim pagerank / 10 alt sayfanız= 10 birim pagerank.
Eger toplistlere üye olmazsanız Alt sayfalara gidecek pagerankınız %20 artı.
Eger başkalarına link vermezseniz Alt sayfalara gidecek pagerankınız %100 artı.

"Bir çicek açtı diye, bahar gelmez..."
Sadece sitemin anasayfası pr5 olsun alt sayfalarım önemli degil diye bir yaklaşım içine giremeyiz.
Sitemiz bütündür, tüm sayfaları önemlidir. Alt sayfalarımızında pagerankını yükseltmemiz gerek ki, aramalarda sitemizin anahtar kelimelerinde çıkma şansı yükselsin.

Son bir ipucu:
örnegin xxxxx.com toplistinin pagerankı 6, körü körüne kayıt olmak yerine biraz toplisti incelemeye almamız gerek.
Lütfen artık herkez bilinçlensin.

Bu toplistin yada linksitesinin pagerankı 6 olan sayfasında kaç link var.
En az 400 link vardır. Bu durumda sizin linkinize düşen pagerank hissesi (pr6 için 600birim pagerank, pr5 için 500birim pagerank varsayarsak)
600birim pageranktan 600/400link varsa =1.5 birim pagerank düşer link hissenize.
Bunun yerine pr5 olan ama link sayısı çok az olan ve sizinle aynı içerikli olan sitelerden link almanız durumunda 500 birim pagerankı bölsek 10 link sayısına yani 500/10= 50birim pagerank düşer hissenize.

1,5 birim pagerank için 50 birim pagerankı tepmek dangalaktır.

"Link Quality" olgusunu artık yakalamak gerek. Kaliteli linkler alarak inşaa edilen bir site çökmez.
Her sitenin "Link Quality" olgusu farklıdır. Bir site için anlam ifade eden link, başka site için önemsizdir google amcanın gözünde. Örnegin Sohbet siteniz varsa sizin sohbet sitelerinden link almanız gerekiyor. Sohbet sitesinin webmaster sitesine link vermesinin faydası olmuyor artık. Eskiden varsa bile artık olmuyor.

Web sitenizi Gmail'e yedekleyin

yedek almak sıkıcı bir işlem olduğundan çoğunlukla unutulan bir işlemdir. Ancak önemli bir proje esnasında yaptığınız unutganlık tüm emeğinizin boşa gitmesine sebep olabilir.

eğer unix bir sunucuda çalışıyorsanız cron, gmail, mutt ve bash tüm dertlerinize derman olabilir. Gmail verdiği yüksek disk alanı yedekler için adeta biçilmiş kaptan. Veritabanı yedeklerini de unix araçlarıyla alıp gmail'e yönlendirmek sandığınız kadar zor değil.

işte basit bir veritabanı yedekleyici bash script:

#!/bin/bash
cd DIZIN
EPOSTA="sen@gmail.com";
MESAJ="/home/sen/mail_icerigi.txt";
TARIH=`TARIH +%Y%m%d` ;
VT_ADI="veritabani_adi";
VT_SIFRE="veritabani_sifresi";
KULLANICI="veritabani_kullanicisi";
KONU="YEDEK";
mysqldump $VT_ADI > DIZIN/$VT_ADI$TARIH.sql -h mysql.sunucu.com -u $KULLANICI -p$VT_SIFRE
gzip DIZIN/$VT_ADI$TARIH.sql
mutt -s $KONU -a DIZIN/$VT_ADI$TARIH.sql.gz $EPOSTA < $MESAJ
rm DIZIN/$VT_ADI$TARIH.sql.gz

evet bu kodu artık ne zaman çalıştırsak veritabani yedeğimiz epostamıza gidecektir. ama hayat cron ile daha güzel. Bırakalım cron bu işi bizim için belirli periyotlarla yapıversin.

tek yapmanız gereken crontab ile cron'a bir iş girmek. bunun için aşagıdaki komutu shell'de yazıp,

# crontab -e

karşımıza gelen metin editörüne şu satırı eklemek

0 05 * * * bash /home/sen/yukardaki_script_dosyası

dosyayı sadece kaydedip kapatıyoruz. Bundan sonra her sabah 05:00'da herkes mışıl mışıl uyurken veritabanı yedeğiniz gmailinizde.

Fire and Forget; artık web sitenizin yedekleri tıkır tıkır gmail hesabınızda. Ancak bu yedekleri gelen kutunuzda sürekli görmek sıkıcı olabilir. gmail'in süzgeçleri bu yedekleri alıp etiketleyip gelen kutunuzdan arşivinize rahatça taşıyabilir.

veritabanı yedeği yerine sadece web sitenizdeki dosyaları yedeklemek ise daha basit:

#!/bin/bash
EPOSTA="sen@gmail.com";
MESAJ="/home/sen/mail_icerigi.txt";
tar -czf arsiv.tar.gz web_sitenizin_dizini
mutt -s $KONU -a arsiv.tar.gz $EPOSTA < $MESAJ
rm arsiv.tar.gz

tabi yine bunu crontab ile cron'a giriyorsunuz.
 

Tüm sistemi başka bir sunucuya yedeklemeniz için PERL script.. Çok işinize yarıyacak

Bu perl script ne yapar ?

* Veritabanınızı ve belirttiğiniz dosyaları , klasörleri sıkıştırıp başka bir sunucuya yedekler.. Bir sorun olduğunda ise sizi mail ile uyarır. 

Kırmızı ile belirtilmiş alnaları değiştirmeniz halinde sorunsuz çalışacaktır.

#!/usr/bin/perl -w
use strict;
use Net::FTP;
my $server="yedekalinacakserver.com";
my $user="ftpkullanici";
my $password="ftpsifreniz";
my $dir="";
my $file="/tmp/yedek.tar.gz";
my $success="true";
my $filetran="true";

print "Yedekleme basladi.. Bekleyiniz..";

#Bu satirda tablolaru mysqldump ile aliyoz
`/bin/mysqldump -h veritabanihost -u veritabanı_kullanici_adi -pŞifre -Aal > /etc/veritabani_yedek.sql`;

# Önemli klasorlerinizi birden fazla belirtip tmp klasörüne paketliyoruz.
`tar cvf /tmp/yedek.tar /etc  /home/resimler  /home/www/html /home/www/ornek; gzip --force --best /tmp/yedek.tar`;

my $ftp=Net::FTP->new($server) or $success="false";
$ftp->login($user, $password) or $success="false";
$ftp->pasv() or $success="false";
$ftp->binary() or $success="false";
$ftp->cwd($dir) or $success='false';
$ftp->put($file) or $filetran="false";
$ftp->quit;

my $sebep;
my $test="true";

if ($success eq "false"){$sebep .="Başarısız ftp girişn.";
        $test="false";}
if ($filetran eq "false"){$sebep .="Başarısızız dosya transferin.";
        $test="false";}

if ($test eq "false") {
        my $baslik="Server Yedekleme Hatası !";
        my $to='sizinmailiniz@google.com';

        BEGIN {
                $ENV{PATH}="/bin:/usr/bin";
                delete @ENV{qw(IFS CDPATH ENV BASH_ENV) };
                }
        open MAIL,"| /usr/lib/sendmail -t -i -F'adresiniz.com' -f'web@adresiniz.com'" or dienice("sendmai calismadi $!");
        print MAIL "To: $ton";
        print MAIL 'Reply-To: web@adresiniz.com';
        print MAIL "Subject: $baslik";
        print MAIL $sebep;
        close MAIL or die("Sendmail hatasi var: $!");
}

print "Yedekleme Bitti ;)";