#!/bin/sh
export LS_USER=`ps -ef|grep LISTENER|grep -v grep|awk -F ' ' '{print $1}'|uniq`
export LS_FILE=`su - $LS_USER -c "lsnrctl status"|grep -i "Listener Log File"|awk -F ' ' '{print $4}'`
##export PRC_NUM=`ps -ef|grep tns|grep $LS_USER|grep -v grep|awk -F ' ' '{print $9}'|wc -l`
echo $LS_USER
##echo $LS_FILE
##echo $PRC_NUM
##if [ ${PRC_NUM} == 3 ]; then
for LS_NAME in `ps -ef|grep tns|grep $LS_USER|grep -v grep|awk -F ' ' '{print $9}'` ;
do
if [ ${LS_NAME} == "ASMNET1LSNR_ASM" ]; then
export asm_log=`su - $LS_USER -c "lsnrctl status $LS_NAME"|grep -E 'Listener Log File'|awk -F ' ' '{print $4}'`
cd ${asm_log%/*}
pwd
find . -name "log*.xml" -type f -mtime +90 -exec rm {} \;
##find . -name "log*.xml" -type f -mtime +1 -exec ls {} \;
##可先将rm注释掉 用上面语句测试
cd ../trace
pwd
rm asmnet1lsnr_asm_20*
cp asmnet1lsnr_asm.log asmnet1lsnr_asm_`date +%Y%m%d`.log
echo /dev/null > asmnet1lsnr_asm.log
ls -lrt
elif [ ${LS_NAME} == "LISTENER_SCAN1" ]; then
export scan_log=`su - $LS_USER -c "lsnrctl status $LS_NAME"|grep -E 'Listener Log File'|awk -F ' ' '{print $4}'`
cd ${scan_log%/*}
pwd
find . -name "log*.xml" -type f -mtime +90 -exec rm {} \;
##find . -name "log*.xml" -type f -mtime +1 -exec ls {} \;
##可先将rm注释掉 用上面语句测试
cd ../trace
pwd
rm listener_scan1_20*
cp listener_scan1.log listener_scan1_`date +%Y%m%d`.log
echo /dev/null > listener_scan1.log
ls -lrt
elif [ ${LS_NAME} == "LISTENER" -a ${LS_FILE:0-7} == log.xml ]; then
cd `su - $LS_USER -c "lsnrctl show trc_directory $LS_NAME"|grep "parameter"|awk -F ' ' '{print $6}'`
pwd
rm listener_20*
cp listener.log listener_`date +%Y%m%d`.log
echo /dev/null > listener.log
ls -lrt
cd ${LS_FILE%/*}
pwd
find . -name "log*.xml" -type f -mtime +90 -exec rm {} \;
##find . -name "log*.xml" -type f -mtime +1 -exec ls {} \;
##可先将rm注释掉 用上面语句测试
elif [ ${LS_NAME} == "LISTENER" -a ${LS_FILE:0-12} == listener.log ]; then
cd ${LS_FILE%/*}
pwd
rm listener_20*
cp listener.log listener_`date +%Y%m%d`.log
echo /dev/null > listener.log
ls -lrt
else echo "listener not exists"
fi ;
done