Wednesday, August 12, 2009
ZIPLI DOSYA IÇERISINDEKI SATIR SAYISINI HESAPLAMA
ilk scriptimizde manuel olarak önce zipli dosyaları açıyoruz sonra bu açılmış dosyaların count'unu alıp tekrar zipliyoruz.
for i in `ls -lt /home/aliates/source_data | awk '{print $9}'`;
do
gunzip $i
isim=`ls *.DAT`
deger=`wc -l $isim`
echo $i";"$deger >> /home/aliates/data/source_data_zip.csv
gzip $i
done
ikinci yöntemde ise bu zipli olan dosyaları açmadan countunu almak için
for i in `ls -lt /d104/intercon/source_data/ |awk '{print $9}'`;
do
deger=`zcat {$i} | wc -l`
echo $i";"$deger >> /d101/data/intercon_sms.csv
done
Sqlldr ile atılan toplan kayıt miktarını görmek için aşağıdaki yöntem kullanılabilinir.
eğer zipli olan dosyalarınızı sqlldr ile yüklüyor iseni o zaman sqlldr'nin log sosyalarından yararlanabilirsiniz.
Orada kaç kayıt okuduğunu size gösterecektir.
for i in `ls *.log`;
do
sayi=`awk '/Total logical records read:/ {if (NR!=1) print $5}' ./$i`
echo $i"-------->"$sayi
done
bütün bunları excelde açabilmek için ";" ayracını kullanıp ".csv" uzantılı kaydederseniz excell'de görebilirsiniz.
Friday, July 31, 2009
ORACLE'DA INACTIVE SESSIONLARI KILL ETMEK
DECLARE
v_dyn_sql VARCHAR2(500);
BEGIN
v_dyn_sql := 'SELECT ''kill session ''|| s.SID || '','' || s.serial# || '' '' || '' immediate ;'' '
||' FROM v$session s, v$process p'
||' WHERE s.paddr = p.addr '
||' AND s.username IS NOT NULL '
||' AND s.username = ''bilgisayarimin makina adi'' '
||' AND s.osuser = ''isletim sistemimin adi'' '
||' AND s.last_call_et / 3600 > 1 '
||' AND s.status = ''INACTIVE'' '
||'ORDER BY logon_time';
dbms_output.Put_line(v_dyn_sql);
EXECUTE IMMEDIATE (v_dyn_sql);
END;
--UNIX üzerinden ORACLE'nin inactive session'larını kill etmek için aşağıdaki yönetemi uygulayabiliriz.
--UNIX'te çalışan bir işi kill etmek için gerekli olan script
--kill -9 "çalışan işin id'si"
--bu script'i üretmek için aşağıdaki select cümleciğini hazırlayalım.
set echo off
head off
veri off
pages 50000 lines 120
spool on oracle_kill_session.sh
SELECT 'kill -9 '
||p.spid
||' # '
||s.username
||' '
||s.program
FROM v$session s,
v$process p
WHERE s.paddr = p.addr
AND s.username IS NOT NULL
AND s.username = 'bilgisayarimin makina adi'
AND s.osuser = 'isletim sistemimin adi'
AND s.last_call_et / 3600 > 1 --son bir saattir sistemde olanlar
AND s.status = 'INACTIVE' --inactive duruma düsenler.
ORDER BY logon_time;
/
spool off
--şimdi kill scriptimizi hazırladık. Sıra bunu çalıştırmaya geldi.
--önce çalıştırabilir hale getiriyoruz oracle_kill_session.sh dosyasına execute edilebilme yetkisi verelim.
chmod 700 oracle_kill_session.sh
--burada 777 diyerek herez'e yetki vermek doğru olmayabilir. Buna dikkat edelim.
./oracle_kill_session.sh
--diyerek inactive sessionları kill ediyoruz.
--çok daha farklı kıstaslara göre kırılım yapabilirsiniz.
--bu kıstaslar aşaıdakililer olabilir.
--SID
--SERIAL#
--USER#
--USERNAME
--STATUS
--SERVER
--SCHEMA#
-- SCHEMANAME
-- OSUSER
-- PROCESS
-- MACHINE
-- TERMINAL
-- PROGRAM
-- TYPE
--PLSQL_OBJECT_ID
--MODULE
--LOGON_TIME
--LAST_CALL_ET
Thursday, July 23, 2009
UNIX'TE DOSYA PARÇALAMA
Oracle'den spool ile aldığımız yada şöyle diyelim bir şekilde tabloyu text (csv) dosyaya aktardık. Bunu excell ile açmak istiyoruz. excell 2003'de 65000 (int kadar) satır destekliyor. ee napacaz bizim dosyada var 230.000 satır. İşte yukarıdaki komut bize verilen dosyayı istenilen satır sayısında parçalıyor.
Friday, July 17, 2009
crontab da logların mail olarak gelmesini engelleme
log_ureten_script.sh >/dev/null
bunu yazarsak log üretmeyecektir.
UNIX'TE BACKUP ALMA
#!/usr/bin/bash
datetime=`date '+%y%m%d'`
source_location_1=/d101/data/original_files
source_location_2=/d102/backup/original_files
target_location_1=/d102/backup/original_files/folder_$datetime
target_location_2=/d103/backup/original_files/folder_yedek
old_file_move=`ls -rt /d102/backup/original_files/ |grep "folder"| head -1`
old_file_delete=`ls -rt /d103/backup/original_files/folder_yedek/ |grep "folder"| head -1`
size1=75
size2=63
#gelen LOG dosyalarını koyacağı klasor yok ise yaratılıyor.
if [ -d ${target_location_1} ]
then
echo "Hedef Dizin Mevcut ${target_location_1} "
else
mkdir ${target_location_1}
echo "Hedef Dizin Olusturuldu ${target_location_1} "
fi
#////////////////////////////////////////////////////////////////////////
#sıkıştırma işlemi yapılarak yer kazancı sağlanıyor
#burada zipleme işlemi yapılıyor.
echo "dosyalar zipleniyor."
for zipfile in ` ls ${source_location_1} | grep ".LOG$"`
do
gzip $zipfile
echo $zipfile
done
#////////////////////////////////////////////////////////////////////////
#zipli dosyaları bul ve aktar.
#zipli dosyaları oluşturdak sonra bunları ilgili gün için yaratılmış olan dizine taşır.
echo "d102 dizininde ilgili yere taşınıyor"
for tarih in `ls ${source_location_1} |grep ".LOG.gz$"| awk '{print substr($1,4,6)}'`
do
file_pattern="???$tarih*.LOG"
mv ${source_location_1}/${file_pattern}.gz ${source_location_2}/folder_${tarih}/
echo ${source_location_1}/${file_pattern}.gz ${source_location_2}/folder_${tarih}/
done
#////////////////////////////////////////////////////////////////////////
#d102 nin %60 i doldugunda d103 e aktar.
#en eski dosyayı taşıyor.
echo "d102 dizininden d103 dizinine taşınıyor"
while [ $size1 -lt `df | grep /d102 | cut -c 38,39` ];
do
mv ${source_location_2}/${old_file_move} ${target_location_2}
echo ${source_location_2}/${old_file_move} ${target_location_2}
done
#////////////////////////////////////////////////////////////////////////
#d103 %70 doldugunda en eski olanı siliyor.
echo "d103 dizininden siliniyor."
while [ $size2 -lt `df | grep /d103 | cut -c 38,39` ];
do
rm -R ${target_location_2}/${old_file_delete}
echo ${target_location_2}/${old_file_delete}
done
echo "işlemler bitti"
Monday, June 8, 2009
PUTTY İLE ADSL MODEME BAĞLANMAK
Adsl Modemin içerisinde kıstılanmış (birçok özelliği olmayan) linux işletim sistemi yüklüdür. Bu işletim sistemine putty kullaranak bağlanabilirsiniz. Bu işlemi yapmanzı için gerekli olan tek şey bir putty programidir. bunu nereden bulurum denemye gerek yok hemen linkini sizin ile paylaşayim.
http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe
Bu programı bilgisayarınıza yükledikten sonra artik windows ve Linux işletim sistemi arasında bir bağlantı sağlayabilirsiniz. Bir sonraki aşamada ise putty programının çaliştirilmasi ile erkana gelen pencereden modemin ip adresini girmeniz Genelde 192.168.2.1 şeklindedir. İnternet Explorerden Modeme bağlanırken kullandığınız ip adresini gireceksiniz. Sonra hemen alt tarafında Connection Type var oradanda TELNET i seçmeniz gerekiyor. Burada varsayalın olarak SSH gelmiştir.
open dedikten sonra artik modeme bağlanmanıza bir adim kaldi. user name olarak root yazıyoruz sonra modemin parolasını yazıyoruz. ve işte modemin içerisineyiz
ilk komut benden ls –l . dikkat ROOT olarak bağlandızın birşey değiştirmeyin Moden yalan olmasın. her ne akdar yazma yetkiniz olmasana root oldugunuz için bu yetkileri kendinize verebilirsiniz. Terkar söyluyorum içinden bişey silmeyin rm dan uzak durunuz.
UNIX başlangıç
Artik Unix ve Java ile ilgili yaptığım çalışmaları bana göre herkezin bilmesi gereken şeyleri burada paylaşmak istiyorum. İlk başta birçok şey temel olacaktır. bu konulara hakim olanlar bunlarda yazılmaz ki diyebilir ama benim blog tutmamdaki temel amaç yeni başlayanlar ve yaa şöyle birşey vardi ama hatirlamıyorum diyenler için elinin altında olması gerekenleri içeriyor. Daha öncede belirttiğim gibi bu benim kendi not defterim. Birçok şey alıntı oalbilir. Alıntı olanalrı belirtiyorum zaten.
UNIX kullanmaya yeni başlayanlar yada başlamaya niyeti olanlar buradan takip ederek ilk başta nelere bakmaları gerektiğini bulabilirler.
O zaman başlayalım linkleri vermeye. İlk linkim Unix kullanmaya niyeti olanların kesinlikle okuması gereken bol örnekli ve küçük ödevleri olan bir site
http://freeos.com/guides/lsst/index.html burayı bence sık kulllanılanlara ekleyin !!!
Unix de neleri bilmek gerekir derseniz
1- Temel komutları bilin dosya kopyalama, listeleme, haklar verme vs ...
2- Vi ediyorunu windows' daki notepad bunu iyi öğrenmenizi tavsiye ederim http://www.belgeler.org/lis/archive-tlkg-lis-7.2.html
3- shell script (.sh) konusuna hakim olun çok ama çok işinize yarayacak . Oracle kullanırken sizin işinizi o kadar kolaylaştıracak ki anlatamam. burada hazır sorguları kaydediyorsunuz. sonra sadece dosyayı çaliştir dediğinizde o veritabanına bağlanıyor işlemleri yapıyor.