Pazar, Şubat 26, 2012

PHP: Generate a random password


function generatePassword($length=9, $strength=0) {
    srand((double)microtime()*1000000);
    $chars = 'abcdefghijklmnopqrstuvwxyz0123456789';
    if ($strength > 1) $chars .= 'ABDGHJLMNPQRSTVWXZ';
    if ($strength > 2) $chars .= "!@#$%";
    if ($strength > 3) $chars .= '^&*(-_=+)';
    $i = 0;$key = '';
    while ($i <= $length) {$key .= $chars[rand(0, strlen($chars))];$i++;}
    return $key;  
}


echo generatePassword(9);
echo generatePassword(9,1);
echo generatePassword(9,2);
echo generatePassword(9,3);
echo generatePassword(9,4);
echo generatePassword(50,4);


v6qu8my20e
66qv24hero
QswQeNGX1W
@VdQ$7V1kX
l5(11JLmGV
ww$ec6vbc$oh&cr#_w+g&2chQHn1%9TQGXj*ZmT)tHaBH$7(@

Çarşamba, Şubat 15, 2012

git local repoyu bare yapmak

Önce yedeğinizi alın

$ cd repo
$ git config --bool core.bare true
$ mv .git ../repo.git
$ rm -Rf repo

Pazar, Şubat 05, 2012

live cd den grub kurtarmak

sudo mkdir /mnt/root

sudo mount -t ext3 /dev/sda6 /mnt/root sudo

mount -t proc none /mnt/root/proc

sudo mount -o bind /dev /mnt/root/dev

sudo chroot /mnt/root /bin/bash

grub-install /dev/xxx

Pazartesi, Ocak 30, 2012

Linux komut satırını kullanarak toplu resim boyutlandırma

# apt-get install imagemagick 

$ for i in $( ls *.jpg); do convert -resize 50% $i re_$i; done

Salı, Aralık 20, 2011

Exim giden e-posta gönderme IP sini değiştirme

Dosyaları Oluşturma ve Düzenleme

öncelikle hangi domainin hangi ip adresinden mail göndereceğini belirtmek için aşağıdaki dosyalar lazım


  1. /etc/mailhelo — Exim'in HELO komutunu yapılandırma dosyası. 
  2. /etc/mailips — hangi IP adreslerinden posta gönderilmesi gerektiğini belirten dosya. 


/etc/mailhelo
EXIM bir e-posta sunucu ve istemci arasında diyalog başlatmak için HELO komutunu kullanır. Bu dosya hangi HELO komutunu göndermesi gerektiğini yönetir. Budosyayı oluşturmak için, nano, vi veya vim gibi bir metin düzenleyicisi kullanmanız gerekecektir. Dosyayı aşağıdaki şekildeyapılandırmanız gerekir:


 example.com: example.com
 sub.example.com: example.com
 example.net: example.net
 addon.example.net: example.net
 *: hostname.example.com
/etc/mailips
 example.com: 192.168.0.2
 sub.example.com: 192.168.0.2
 example.net: 192.168.0.3
 addon.example.net: 192.168.0.3
 *: 192.168.0.1

daha sonra exim.conf dan aşağıdaki ayarları yapmak gerekiyor

remote_smtp:
  driver = smtp
  interface = ${if exists {/etc/mailips}{${lookup{$sender_address_domain}lsearch*{/etc/mailips}{$value}{}}}{}}
  helo_data = ${if exists {/etc/mailhelo}{${lookup{$sender_address_domain}lsearch*{/etc/mailhelo}{$value}{$primary_hostname}}}{$primary_hostname}}

Exim komutları

exim -M id #Mesajı id idsi ile göndermeye çalış

exim -qf #Eximin tüm kuyruğu tekrar işleme almasını sağla
exim -qff #qf ile aynı fakat bu frozen mesajları da tekrar işleme alacaktır

exim -Mvl id #mesaj id için mesaj kaydını görüntüle
exim -Mvh id #mesaj id nin headerlarını görüntüle
exim -Mvb id #mesaj id nin içeriğini görüntüle
exim -Mrm id #kuyruktan mesaj id yi kaldır
exim -Mg id #başarısız ve gönderene bounce gönder
exim -bp | exiqsumm #Kuyruktaki mesajların özetini yazdır
exiwhat #şuanda exim'in ne yaptığını göster
exim -bpc #kuyrukta mesaj sayısını göster
exim -bp #kuyruktaki mesajların listesini yazdır

Tüm kuyruğu manuel olarak silmek için


cd /var/spool
mv exim exim.old
mkdir -p exim/input
mkdir -p exim/msglog
mkdir -p exim/db
chown -R mail:mail exim

Daha sonra Exim'i yeniden başlatın. 

Pazartesi, Ekim 31, 2011

Linux Terminali Kapatınca Program Kapanmasın


Root olarak terminalde bir dosya, dizin, program vs… açtığınızda, terminali kapatınca veya ctrl+c ile sonlandırıldığında kapanır.
Programı terminalden bağımsız kullanmaya devam edebilmek için nohup ı kullanmamız gerekiyor.
nohup ile terminal de oturum kapatsak bile, arkaplanda uygulama çalışmaya devam eder.
ÖRNEK:
root@toor:~# nohup gedit /var/www/index.html &

Pazartesi, Ağustos 15, 2011

mysqldumb script

her veritabanını ayrı ayrı alıp sıkıştırarak klasöre atar


#!/bin/bash
# Shell script to backup MySql database
# To backup Nysql databases file to /backup dir and later pick up by your
# script. You can skip few databases from backup too.
# For more info please see (Installation info):
# http://www.cyberciti.biz/nixcraft/vivek/blogger/2005/01/mysql-backup-script.html
# Last updated: Aug - 2005
# --------------------------------------------------------------------
# This is a free shell script under GNU GPL version 2.0 or above
# Copyright (C) 2004, 2005 nixCraft project
# Feedback/comment/suggestions : http://cyberciti.biz/fb/
# -------------------------------------------------------------------------
# This script is part of nixCraft shell script collection (NSSC)
# Visit http://bash.cyberciti.biz/ for more information.
# -------------------------------------------------------------------------
 
MyUSER="SET-MYSQL-USER-NAME"     # USERNAME
MyPASS="SET-PASSWORD"       # PASSWORD
MyHOST="localhost"          # Hostname
 
# Linux bin paths, change this if it can not be autodetected via which command
MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"
CHOWN="$(which chown)"
CHMOD="$(which chmod)"
GZIP="$(which gzip)"
 
# Backup Dest directory, change this if you have someother location
DEST="/backup"
 
# Main directory where backup will be stored
MBD="$DEST/mysql"
 
# Get hostname
HOST="$(hostname)"
 
# Get data in dd-mm-yyyy format
NOW="$(date +"%d-%m-%Y")"
 
# File to store current backup file
FILE=""
# Store list of databases
DBS=""
 
# DO NOT BACKUP these databases
IGGY="test"
 
[ ! -d $MBD ] && mkdir -p $MBD || :
 
# Only root can access it!
$CHOWN 0.0 -R $DEST
$CHMOD 0600 $DEST
 
# Get all database list first
DBS="$($MYSQL -u $MyUSER -h $MyHOST -p$MyPASS -Bse 'show databases')"
 
for db in $DBS
do
    skipdb=-1
    if [ "$IGGY" != "" ];
    then
	for i in $IGGY
	do
	    [ "$db" == "$i" ] && skipdb=1 || :
	done
    fi
 
    if [ "$skipdb" == "-1" ] ; then
	FILE="$MBD/$db.$HOST.$NOW.gz"
	# do all inone job in pipe,
	# connect to mysql using mysqldump for select mysql database
	# and pipe it out to gz file in backup dir :)
        $MYSQLDUMP -u $MyUSER -h $MyHOST -p$MyPASS $db | $GZIP -9 > $FILE
    fi
done

Cuma, Haziran 10, 2011

cPanel den DirectAdmin e mail taşıma

öncelikle ssh bağlantınızın olması gerek

cpanel yedeğimizi alalım

tar zcvf olduser.tar.gz /home/olduser
aldığımız yedeği hedef sisteme açalım

cd /home/newuser/backup/
tar zxvf  olduser.tar.gz

mail dizinine girelim

cd /home/newuser/imap/mydomain.com

geriye mailleri tek tek taşımak kalıyor

cp -R /home/newuser/backup/mail/mydomain.com/mymail1/* ./mymail1/Maildir/
cp -R /home/newuser/backup/mail/mydomain.com/mymail2/* ./mymail2/Maildir/
cp -R /home/newuser/backup/mail/mydomain.com/mymail3/* ./mymail3/Maildir/

Çarşamba, Haziran 01, 2011

wsimport örnek kullanım

wsimport -d target/classes -s src/main/java -p org.xh.studies.jaxws.webapp.client http://localhost:8080/JAXWSWebApp/MathService?wsdl


-d buil edilen classların oluşturulacağı klasör
-s source file classların oluşturulacağı klasör

Pazartesi, Mayıs 30, 2011

müzikler youtube den

gerekli komutlar

youtube-dl
ffmpeg
lame
mesela videomuz bu http://www.youtube.com/watch?v=eWPrkQws0II

videoyu download et
youtube-dl http://www.youtube.com/watch?v=eWPrkQws0II 
wav a çevir
 ffmpeg -i eWPrkQws0II.mp4 eWPrkQws0II.waw
tekrar mp3 yap
lame eWPrkQws0II.wav eWPrkQws0II.mp3 
tepe tepe kullan

Cuma, Mayıs 20, 2011

gitosis kurulumu

gitosis kurulumu

git için global ayarları yapalım


$ git config --global user.name "Hasan Basri Ateş"
$ git config --global user.email "your_email@youremail.com"



cd ~/
git clone git://eagain.net/gitosis.git
cd gitosis

eğer kurulu değilse python-setuptools u kurun

sudo apt-get install python-setuptools
sudo python setup.py install        

depoları yönetmek için git kullanıcısını oluşturalım

sudo adduser \
    --system \
    --shell /bin/sh \
    --gecos 'git version control' \
    --group \
    --disabled-password \
    --home /home/git \
    git


gitosis için rsa.pub dosyası oluşturalım

ssh-keygen -t rsa

home klasörünüze .ssh/id_rsa.pub dosyası oluşmuş olmalı bu dosyayı /tmp altına kopyalayın

cp ~/.ssh/id_rsa.pub /tmp/id_rsa.pub

daha sonra

sudo -H -u git gitosis-init < /tmp/id_rsa.pub

izinleri tekrardan düzenliyoruz

sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update

gitosis hazır

şimdide gitosis yönetimi için

git clone git@YOUR_SERVER_HOSTNAME:gitosis-admin.git
cd gitosis-admin

gitosis.conf içeriğiniz

[gitosis]              

[group gitosis-admin]
writable = gitosis-admin
members = kullanıcıadınız


kendi takımımız için aşağıdaki satırı ekleyelim

[group myteam]
members = kullanıcıadınız
writable = denemeproje

yetkileri bu şekilde ayarlayabilirsiniz yeni kullanıcı eklediğinizde
keydir klasörüne eklediğiniz kullanıcının home dizinindeki id_rsa.pub dosyasını da atın

değişiklikleri aktif edelim

git commit -a -m "denemeproje projesinde kullanıcıadınız a yazma izni verildi"
git push

proje dosyalarımızı oluşturalım

mkdir denemeproje
cd denemeproje
git init
git remote add origin git@YOUR_SERVER_HOSTNAME:denemeproje.git

proje dosyalarınızı ekleyin

git add .
git commit -a -m "proje eklendi"


değişiklikleri remote gönderelim

git push origin master:refs/heads/master


işlem tamam

Pazar, Mayıs 01, 2011

php ile gettext olmadan çoklu dil özelliği

po dosyalarını kullanarak ve cach destekli çoklu dil sistemi

po dosyalarını pars etmek için php poparser kütüphanesini kullanacağız.



include_once 'POParser.php';
$GLOBALS['LANGUAGE_CODE'] = 'tr';
$GLOBALS['LOCALE_PATH'] = 'locale';
$GLOBALS['CACH_PATH'] = 'cach';
function encode_lang_key($str) {  
    return base64_encode(pack('H*',sha1($str)));
}
if(is_file(dirname(__FILE__).'/cache/lang_'.$GLOBALS['LANGUAGE_CODE'].'.cache')){
$content = file_get_contents(dirname(__FILE__).'/cache/lang_'.$GLOBALS['LANGUAGE_CODE'].'.cache');
$GLOBALS['LANG'] = unserialize($content);
}else {
$langFile = sprintf('%s/%s/LC_MESSAGES/messages.po',$GLOBALS['LOCALE_PATH'],$GLOBALS['LANGUAGE_CODE']);
$pp = new POParser();
$GLOBALS['LANG'] = array();
    $res = $pp->parse($langFile);
 
    foreach ($res[1] as $entry) {      
        if (isset($entry['msgid'])){
            $GLOBALS['LANG'][encode_lang_key($entry['msgid'])] = $entry;
        }    
    } file_put_contents(APPLICATION_PATH.'/cache/lang_'.$GLOBALS['LANGUAGE_CODE'].'.cache', serialize($GLOBALS['LANG']));
}
function my_gettext($message) {
$lang_key = encode_lang_key($message);
$retVal = $message;
if (isset($GLOBALS['LANG'][$lang_key])){
    $retVal = $GLOBALS['LANG'][$lang_key]['msgstr'];
    }
 
    return $retVal;
}


// Örnek kullanım

echo my_gettext("Merhaba Dünya");

Pazartesi, Temmuz 19, 2010

Ubuntu altında windows mbr formatlamak

öncelikle ms-sys paketini kurun

sudo apt-get install ms-sys



daha sonra aşağıdaki komutla mbr yi formatlayabilirsiniz.

sudo ms-sys -m /dev/sda

php ile TCMB döviz kuru alma xml den


class TCMB {
private $addres = 'http://www.tcmb.gov.tr/kurlar/today.xml';
private $cacheFile = 'cache/tcmbtoday';
                .................................
}



$tcmb = new TCMB();

print_r($tcmb->toTL('USD', 100)); // 100 USD yi TL ye çevirir
print_r($tcmb->fromTL('USD', 100)); // 100 TL yi USD ye çevirir


TCMB class ı nın son hali burda

http://code.google.com/p/hbasria/source/browse/trunk/php/tools/tcmb.php

Cuma, Haziran 18, 2010

Duvar Yazıları

********************************************

Bazı parazitler bağırsakta yaşar, bağırmasak da
********************************************

Kendimi öldürüp intihar süsü verecem.

********************************************

Merak etme, kısırlık kalıtsal değildir: oğluna geçmez...

********************************************

Eskiden kibirliydim; artık kusursuzum...

********************************************

Fakirlik kader değildir, sadece kalıtsaldır

********************************************

Bilmemek ayıp değil, Yeter ki çaktırma...

********************************************

DELİ GİBİ SEVDİM, MANYAK GİBİ EVLENDİM.

********************************************

Bunu yazan sinus, Okuyana kosinus...

********************************************

Ne kadar sallarsan salla, Dört yanlış bir doğruyu götürür..

********************************************

Dereceye girmek için çok çalıştı,
Ama hasta oldu derece ona girdi...

********************************************

Size yapılmasını istemediğiniz bir şeyi başkasına yapın.
Çok zevkli oluyor...

********************************************

Dış görünüşe önem vermem, röntgen filmi çektirip gelin

********************************************

Kafanı çevirip durma, aklından geçenleri okuyamıyorum.

********************************************

Ben ettim sen etme ! Bırak tuvalet temiz kalsın

********************************************

Trabzon'da satılan su şişelerinin altında ne yazar ?
Cevap : Buradan açılmaz

********************************************

Bu tüp bebek hatalı; hep gaz kaçırıyor...

********************************************

Kızda bir fizik var abi! Einstein yanında halt etmiş...

********************************************

Korkunun ecele faydası yoktur, sadece iç çamaşırları kirletir...

********************************************

İnsanların seni ezmesine izin verme;
Ehliyet al, sen onları ez...

********************************************

Bir erkek en çok sevgilisini, en iyi karısını, en uzun annesini severmiş

********************************************

Ruhunuzu satmayın! Kiralayın

********************************************

Ölüm korkusu sürekli değil mezarda biten geçici bir duygu

********************************************

Benim için hayatta 8 önemli sey vardır: Pamuk prenses ve yedi cüceler

********************************************

Hiişşt sen... Hey oradaki... Arkana bakmasana lan... Sana diyom...

********************************************

Dünya delikanlı olsaydı, yuvarlak olmazdı

********************************************

Kurtlardan teklif geldi. Sürüden ayrılıyorum

********************************************

Papağanımı konuşması için terörle mücadeleye verdim.
Sonuçtan memnunum.

********************************************

Sigara içen birini öpmek küllük yalamaktan farksızdır

********************************************

Gençler deneme-yamulma yöntemi ile yetişiyor

********************************************

Her türlü iyi niyet itina ile suistimal edilir

********************************************

"Bütün kadınlar güzeldir." lafı sürümden kazanmak isteyen erkeklerin uydurmasıdır

********************************************

Ayrılık içimde bir kor, her gün sobayı tutuşturuyorum.

********************************************

İnsan icat oldu. Ekoloji bozuldu

********************************************

Atalarımız zamanında Orta Asya'dan çıkıp da ters yöne gitselerdi, şimdi Japon olurduk

********************************************

Allah seni mutluluk yağmuru altında şemsiyesiz bıraksın

********************************************

Bakarsan bağ olur, bakmazsan göremezsin

********************************************

Şiddete karşı savaş açın! Şiddet yanlılarını kurşunlayın

********************************************

Dünya yuvarlak, ozon delik. Abi ne sapık bir gezegende yaşıyoruz be

********************************************

Süperman de uçuyor ama kimse ona kuşbeyinli muamelesi yapmşyor.

********************************************

Yazılıdan sıfır aldım ama önemli olan katılmaktı

********************************************

Herkes iyiliğimizi istiyor ama vermiyeceğiz işte

********************************************
Bilmemek ayıp değil yeterki çaktırma.

********************************************

Dünya delikanlı olsaydı yuvarlak olmazdı.

********************************************

Üniversite öğrencisinden okey, bilardo dersleri.

********************************************

Sanık! Ayağa kalk! ve çocuklu kadınlara yer ver.

********************************************

Bizi çekemediler halat koptu.

********************************************

Nefes alamıyorum. Atmosferi açın.

********************************************

Bedavaya sadece güneş doğar.

********************************************

Sana her şeyimi veririm diyemem. Çünkü her şeyim sensin.

********************************************

Gerçekler acıdır, baklava tatlıdır. O zaman baklava gerçek değildir.

********************************************

Sigara içme torununu gör. Sigara iç dedeni gör.

********************************************

İnsanları tanıdıkça hayvanları daha çok seviyorum.

********************************************

Boks spor ise savaş olimpiyattır.

********************************************

Hızlı yaşa genç öl. Cesedin yakışıklı olsun.

********************************************

Ey yükselen nesil ! Aşağı in lan.

********************************************

Ölürsem kabrime gelme... sıkışırız.

********************************************

Haydi, keselim şu ağacı yaşına bakalım.

********************************************

Tam düne alışırken bugün oldu.

********************************************