19 Nisan 2013 Cuma

Linuxda Find Komutu kullanımı


Linuxda find komutu dosya ya da dizin arama işleminde kullanılır.
Bir dosya ya da dizin bulma:
# find . -name TEMP -print
ya da
# find . -name TEMP -exec echo {} \;

Bu dizin ağacındaki kaynak dosyaları bul ve sil:
# find . -name “core” -exec rm -f {} \;

“junk” dizinleri bul ve içerikleriyle beraber sil:
# find . -name “junk” -exec rm -rf {} \;

Tekrarlanan grep’i kullanarak bir dosyada örnek bul (görmezlikten gelme durumu):
# find . -type f | xargs grep -i MYPATTERN

7 gün içerisinde düzenlenmiş dosyaları bul:
# find . -mtime -7 -type f

Belirli bir kullanıcı tarafından sahiplenilmiş dosyaları bul:
# find . -user user1

Tüm yazılabilir dizinleri bul ve listele:
# find . -perm -0777 -type d -ls
ya da
# find . -type d -perm 777 -print

Tüm yazılabilir dosyaları bul ve listele:
# find . -perm -0777 -type f -ls
ya da
#find . -type f -perm 777 -print

Büyük dosya boyutlarını bul ve listele:
# find . -type f -size +1000 -ls
ya da
# find . -type f -size +1000 -print

Yolda kaç tane dizin olduğunu bul (Mevcut dizini de sayar.):
# find . -type d -exec basename {} \; | wc -l 53

Yolda kaç tane dosya olduğunu bul:
# find . -type f -exec basename {} \; | wc -l 120

Tüm pipe dosyalarını bul ve izinlerini yazdırılabilir olarak değiştir:
# find . -name “pipe*” -exec chmod 666 {} \;

7 gün önce düzenlenen dosyaları bul ve arşivle:
# find . -type f -mtime 7 | xargs tar -cvf `date ‘+%d%m%Y’_archive.tar`

7 günden çok daha önce düzenlenen dosyaları bul ve arşivle:
# find . -type f -mtime +7 | xargs tar -cvf `date ‘+%d%m%Y’_archive.tar`

7 gün içinde düzenlenen dosyaları bul ve arşivle:
# find . -type f -mtime -7 | xargs tar -cvf `date ‘+%d%m%Y’_archive.tar`

7 ile 14 gün arasında düzenlenen dosyaları bul ve arşivle:
# find . -type f -mtime +7 -mtime -14 | xargs tar -cvf `date ‘+%d%m%Y’_archive.tar`

İki farklı dizinde “test” string’ini içeren dosyaları bul ve listele:
# find dizin1 dizin2 -name “*test*” -type f -ls

İki farklı dizinde “test” string’ini içeren dosyaları bul ve say:
# find dizin1 dizin2 -name “*test*” -type f -ls | wc -l 12

CompareFile’dan daha yeni olan dosya ve dizinleri bul:
# find . -newer CompareFile -print

CompareFile’dan daha eski olan dosya ve dizinleri bul:
# find . ! -newer CompareFile -print

Dosya ve dizinleri bul fakat belirli bir dizini dikkatle inceleme:
# find . -name RAID -prune -o -print

Mevcut dizindeki tüm dosyaları bul:
# find * -type f -print -o -type d -prune

Bir inode bul ve sil:
# find . -inum 968746 -exec rm -i {} \;

11 Nisan 2013 Perşembe

Linux da Bash_Profile düzenlemek


Kullanıcıların tümü, oturum açtığında ilk olarak  /etc/profile dosyasında bulunan komutlar çalışır. Daha sonra her kullanıcının home dizininde bulunan .bash_profile dosyası çalışır. Bu dosyalar genelde özel kernel değişkenlerinin atanmasında kullanılır. Örneğin .bash_profile dosyasında özel değişkenlerden PATH ile ilgili tanımlamalar, ALIAS tanımlamaları eklenebilir ve güncellenebilir.
ALIAS tanımlama ile ilgili bir örnek yapalım;

1-).bash_profile açılır
>vi /home/oracle/.bash_profile


2-)bash_profile aşağıdaki gibi açılıp istenilen alias veya tanım bilgisi girilir ve kaydedilip çıkılır

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi
# Oracle Settings
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR

ORACLE_BASE=/oracle; export ORACLE_BASE
GRID_HOME=/oracle/11.2.0/grid; export GRID_HOME
DB_HOME=$ORACLE_BASE/product/11.2.0/db_1; export DB_HOME
ORACLE_HOME=$DB_HOME; export ORACLE_HOME
ORACLE_TERM=xterm; export ORACLE_TERM
BASE_PATH=/usr/sbin:$PATH; export BASE_PATH
PATH=$ORACLE_HOME/bin:$BASE_PATH; export PATH

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH

if [ $USER = "oracle" ]; then
  if [ $SHELL = "/bin/ksh" ]; then
    ulimit -p 16384
    ulimit -n 65536
  else
    ulimit -u 16384 -n 65536
  fi
fi
alias grid='. /home/oracle/grid_env'
alias db='. /home/oracle/db_env'
alias mas="export ORACLE_SID=MASCA"
alias mas2="export ORACLE_SID=MASCA"
alias sql="sqlplus / as sysdba"
alias alert_mas="tail -100f /oracle/product/11.2.0/db_1/log/diag/rdbms/masca/MASCA/trace/alert_MASCA.log"
alias alert_mas2="tail -100f /oracle/product/11.2.0/db_1/log/diag/rdbms/masca2/MASCA2/trace/alert_MASCA2.log"
alias golog="cd ${ORACLE_BASE}/admin/LBRDB/bdump"
alias gotns="cd ${ORACLE_HOME}/network/admin"


3-)sonra bu .bash_profile çalıştırılarak devreye alınır
 >. .bash_profile
  

4-) ekrana alert_mas veya alert_mas2 yazdığmızda, tanımda da belirttiğimiz gibi, alert log dosyalarının son 100 satırını ekrana çağırıyoruz.

5 Nisan 2013 Cuma

Oracle 11g de Alert ve Listener log lokasyonlarını bulmak

Merhaba arkadaşlar,
Oracle 11g sürümünde Alert ve listener log lokasyonları değişmiş ve bulmak biraz zahmetli.
Bu lokasyonları, aşağıdaki yöntemleri kullanarak kolayca tespit edebilirsiniz.



LISTENER LOG TESPIT
$adrci
adrci>show homes
ADR Homes:
diag/tnslsnr/orcl11/listener
adrci> set home diag/tnslsnr/masca/listener
adrci> show tracefile
diag/tnslsnr/masca/listener/trace/listener.log
adrci> show trace listener.log


LISTENER LOG LOKASYON
/oracle/diag/tnslsnr/oracle_server01/listener/trace/listener.log




ALERT LOG TESPIT
SQL>show parameter background
background_dump_dest => alert_log'un bulunduğu yer.
Birden fazla db var ise hepsi kendi dizinindedir.

 
ALERT LOG  LOKASYON
/oracle/product/11.2.0/db_1/log/diag/rdbms/masca/MASCA/trace/alert_MASCA.log
/oracle/product/11.2.0/db_1/log/diag/rdbms/masca2/MASCA2/trace/alert_MASCA2.log