유용한  Shell script

파일을 찾아서 변경하는 shell 
 
 
 
 if [ "${2}" = "" ]
then
 echo Input 2 Arguments !!!
 exit
fi

DOMAIN_HOME=${PWD}
DOMAIN_HOME=/weblogic/wls64/user_projects/domains/dcnpwas
echo "DOMAIN_HOME : ${DOMAIN_HOME}"
echo "AS-IS : ${1}"
echo "TO-BE : ${2}"
echo "Start Step 1"
find ./ -type f -name "*.sh" -exec perl -pi -e "s/${1}/${2}/g" {} \;
echo "Start Step 2"
find ./ -type f -name "*.xml" -exec perl -pi -e "s/${1}/${2}/g" {} \;
echo "Start Step 3"
find ./ -type f -name "*.properties" -exec perl -pi -e "s/${1}/${2}/g" {} \;
echo "Start Step 4"
find ./ -type f -name "*.py" -exec perl -pi -e "s/${1}/${2}/g" {} \;
echo "Done" 
 
 혹시 61번 서버에서 테스트한 소스를 4.2나 4.3dp 옮기시려면 
[2014-02-17 오후 5:49:42] 김태우님의 말:
scp -P 38 -rp * weblogic@172.19.4.2:/weblogic/wls64/user_projects/domains/bidwas1/project/web_kogas 
 
 예) server1 의 /data를 s01wasp2 의 /data로 복사 
양쪽 서버 간에 rsh 로그인이 되도록 설정후 실행 
s01wasp2서버는 rsh 설정이 되어있음 
 
gtar 명령어예제 
server1 에서 다음을 수행 
 
server1:[/] cd /data 
 
server1:[/data] gtar -cvf - * | (rsh s01wasp2 "cd /data ; gtar -xvf -" ) 
 
 
rsync 명령어예제 
server1 에서 다음을 수행 
rsync -artv --rsh=rsh /data s01wasp2:/ 
 
 
 
 조회한 파일리스트를 잘라내서 저장 - 전체 class 와 java 파일을 비교(diff)하기 위해서 사용함 
 
 
 
 find ./temp -name "*.java" | awk -F ".java" '{printf $1"\n"}' | awk -F/temp/src/ '{print $2}'
find ./webapps -name "*.class" | awk -F/webapps/WEB-INF/classes/ '{print $2}' | awk -F ".class" '{printf $1"\n"}' 
 
 
 
 jeus WAS 배포 - 전체 배포 
 
 
 
 #!/bin/sh

echo
echo '##### START DEPLOY #####'
echo

if [[ $# -eq 0 ]];then
 echo "ERROR 255: Must provide the following 1 system name parameters:"
 exit 255
fi

echo '#Actually system name = ' $1
echo

#### JAVA ENV ####
export JAVA_HOME=/usr/java7_64
export PATH=$JAVA_HOME/bin:$PATH:.

#### JEUS ENV ####
export JEUS_HOME=/sw/jeusadm/jeus7
export PATH="$JEUS_HOME/bin:$JEUS_HOME/lib/system:$JEUS_HOME/webserver/bin:${PATH}"
export JEUS_LOG_HOME=/swlog/jeus

echo
echo '1. Backup & Stop' 
export NOW=`date +%Y%m%d`
export OLDDAY=$((NOW -2)) 
export NOWTIME=`date +%H%m`
export NUMOFSERVER=`uname -n | cut -f2 -d"0"`
export SERVER=$1"_server"$NUMOFSERVER
export DOMAIN=lp$1"_domain"
export PORT

if [ $1 = "sis" ]
then
 PORT=10100
else 
 if [ $1 = "pis" ]
 then
 PORT=10200
 else
 if [ $1 = "scm" ]
 then
 PORT=10500
 else
 echo " ### ERROR SERVIER NOT EXIST only sis, pis, scm ###"
 exit 1
 
 fi
 fi
fi
echo ' > Deploy Server['$SERVER'], PORT['$PORT'], Domain['$DOMAIN'], Number of server NO['$NUMOFSERVER']' 
 
echo ' > Today = ' $NOW$NOWTIME
cd /app/ldsp/$1
find /app/ldsp/$1 -xdev | grep -v 'nas' > /app/ldsp/$1/flist
tar -cf /app/ldsp/backup/$1-$NOW$NOWTIME.tar -L /app/ldsp/$1/flist
echo ' > Backup file : ' $1-$NOW$NOWTIME.tar
rm /app/ldsp/$1/flist

echo
echo '2. Shutdown ' $DOMAIN 
jeusadmin -domain $DOMAIN -host 10.7.17.29:$PORT -f /sw/jeusadm/jeus7/bin/scripts/jeusEncode local-shutdown

echo '3. Delete 20 day ago ' 
find /app/ldsp/backup -mtime +20 -print | xargs rm -f

echo
echo '4. Delete web root '
echo ' > Delete ' $1
cd /app/ldsp/$1
ls /app/ldsp/$1 | grep -v nas | grep -v export | grep -v import | xargs rm -rf
echo ' > Clear check ' $1
ls /app/ldsp/$1

echo
echo '5. Copy WAR to ' $1
echo ' > Copy War to ' $1
cp /app/ldsp/publishing/emdv3.war /app/ldsp/$1

echo
echo '6. Decompress WAR'
echo ' > Decompress ' $1
cd /app/ldsp/$1
jar -xf /app/ldsp/$1/emdv3.war

echo
echo '7. Deploy Report'
echo ' > Deploy report ' $1 ' --> /app/ldsp/rpt/ReportingServer/mrd'
cd /app/ldsp/$1
cp -fR /app/ldsp/$1/report /app/ldsp/rpt/ReportingServer/mrd/

echo
echo '8. Deploy Configurations'
echo ' > Deploy ldsp.xml'
cp /app/ldsp/publishing/config/context-ldsp.xml /app/ldsp/$1/WEB-INF/classes/spring
echo ' > Deploy logback.xml'
cp /app/ldsp/publishing/config/logback.xml /app/ldsp/$1/WEB-INF/classes
echo ' > Deploy ldsp.properties'
cp /app/ldsp/publishing/config/resources/properties/ldsp.properties /app/ldsp/$1/WEB-INF/classes/properties

echo
echo '9. Startup ' $1
startDomainAdminServerNM -host 10.7.17.29 -port 7730 -domain $DOMAIN -server $SERVER -filename $JEUS_HOME/bin/scripts/jeusEncode

echo 
echo '##### FINISH DEPLOY #####' 
echo 
echo '10. Finish deploy'
echo 'Bye' 
 
 
 
 Jeus WAS 개별 배포 
 
 
 
 #!/bin/sh

echo
echo '##### START DEPLOY #####'
echo

if [[ $# -eq 0 ]];then
 echo "ERROR 255: Must provide the following 1 system name parameters:"
 exit 255
fi

echo '#Actually system name = ' $1
echo

#### JAVA ENV ####
export JAVA_HOME=/usr/java7_64
export PATH=$JAVA_HOME/bin:$PATH:.

#### JEUS ENV ####
export JEUS_HOME=/sw/jeusadm/jeus7
export PATH="$JEUS_HOME/bin:$JEUS_HOME/lib/system:$JEUS_HOME/webserver/bin:${PATH}"
export JEUS_LOG_HOME=/swlog/jeus

echo
echo '1. Backup & Stop' 
export NOW=`date +%Y%m%d`
export OLDDAY=$((NOW -2)) 
export NOWTIME=`date +%H%m`
export NUMOFSERVER=`uname -n | cut -f2 -d"0"`
export SERVER=$1"_server"$NUMOFSERVER
export DOMAIN=lp$1"_domain"
export PORT

if [ $1 = "sis" ]
then
 PORT=10100
else 
 if [ $1 = "pis" ]
 then
 PORT=10200
 else
 if [ $1 = "scm" ]
 then
 PORT=10500
 else
 echo " ### ERROR SERVIER NOT EXIST only sis, pis, scm ###"
 exit 1
 
 fi
 fi
fi
echo ' > Deploy Server['$SERVER'], PORT['$PORT'], Domain['$DOMAIN'], Number of server NO['$NUMOFSERVER']' 
 
echo ' > Today = ' $NOW$NOWTIME
cd /app/ldsp/$1
find /app/ldsp/$1 -xdev | grep -v 'nas' > /app/ldsp/$1/flist
tar -cf /app/ldsp/backup/$1-IND-$NOW$NOWTIME.tar -L /app/ldsp/$1/flist
echo ' > Backup file : ' $1-IND-$NOW$NOWTIME.tar
rm /app/ldsp/$1/flist

echo '3. Delete 20 day ago ' 
find /app/ldsp/backup -mtime +20 -print | xargs rm -f

echo
echo '3. Make temp folder for decompress : ' $1
mkdir /app/ldsp/publishing/temp-$1-$NOW$NOWTIME
ls -l /app/ldsp/publishing

echo
echo '4. Copy JAR to tmp for ' $1
echo ' > Copy JAR to tmp for ' $1
cp /app/ldsp/publishing/emdv3-ind-was.jar /app/ldsp/publishing/temp-$1-$NOW$NOWTIME

echo
echo '5. Decompress JAR'
echo ' > Decompress ' $1
cd /app/ldsp/publishing/temp-$1-$NOW$NOWTIME
jar -xf /app/ldsp/publishing/temp-$1-$NOW$NOWTIME/emdv3-ind-was.jar
ls -lR /app/ldsp/publishing/temp-$1-$NOW$NOWTIME
export TOTALCLASSFILES=`find /app/ldsp/publishing/temp-$1-$NOW$NOWTIME -name '*.class' | wc -l`
export TOTALXMLFILES=`find /app/ldsp/publishing/temp-$1-$NOW$NOWTIME -name '*.xml' | wc -l`
export TOTALMRDFILES=`find /app/ldsp/publishing/temp-$1-$NOW$NOWTIME -name '*.mrd' | wc -l`
export TOTALFILES=`expr $TOTALCLASSFILES + $TOTALXMLFILES + $TOTALMRDFILES`
echo ' Total classes=' $TOTALCLASSFILES ' , xml=' $TOTALXMLFILES ' , mrd=' $TOTALMRDFILES
echo ' Total files = ' $TOTALFILES

if [ $TOTALFILES = 0 ]
then
 echo ' !!!!! ### No file ' $1 ' ### !!!!!'
else
 echo
 echo '2. Shutdown ' $DOMAIN 
 jeusadmin -domain $DOMAIN -host 10.7.17.29:$PORT -f /sw/jeusadm/jeus7/bin/scripts/jeusEncode local-shutdown

 echo
 echo '7. Copy class, mrd, xml to ' $1
 cd /app/ldsp/publishing/temp-$1-$NOW$NOWTIME
 cp -fR /app/ldsp/publishing/temp-$1-$NOW$NOWTIME/java/WEB-INF/classes/com /app/ldsp/$1/WEB-INF/classes
 cp -fR /app/ldsp/publishing/temp-$1-$NOW$NOWTIME/mrd/report /app/ldsp/rpt/ReportingServer/mrd/
 cp -fR /app/ldsp/publishing/temp-$1-$NOW$NOWTIME/xml/WEB-INF/classes/sqlmapper /app/ldsp/$1/WEB-INF/classes
 
 echo ' > Deploy ldsp.properties'
 cp /app/ldsp/publishing/config/resources/properties/ldsp.properties /app/ldsp/$1/WEB-INF/classes/properties

 echo
 echo '8. Startup ' $1
 startDomainAdminServerNM -host 10.7.17.29 -port 7730 -domain $DOMAIN -server $SERVER -filename $JEUS_HOME/bin/scripts/jeusEncode
fi

echo 
echo '9 Clear delete files war & jar '
cd /app/ldsp/publishing/
rm -rf /app/ldsp/publishing/temp-$1-$NOW$NOWTIME

echo 
echo '##### FINISH DEPLOY #####' 
echo 
echo '10. Finish deploy'
echo 'Bye' 
 
 
 
 Webtob 전체 배포 
 
 
 
 #!/bin/sh

echo
echo '##### START DEPLOY #####'
echo

if [[ $# -eq 0 ]];then
 echo "ERROR 255: Must provide the following 1 system name parameters:"
 exit 255
fi

if [ $1 = "sis" ]
then
 echo '#Actually system name = ' $1
else 
 if [ $1 = "pis" ]
 then
 echo '#Actually system name = ' $1
 else
 if [ $1 = "scm" ]
 then
 echo '#Actually system name = ' $1
 else
 echo " ### ERROR SERVIER NOT EXIST only sis, pis, scm ###"
 exit 1
 fi
 fi
fi

echo '#Actually system name = ' $1
echo
echo
echo '1. Backup & Stop' 
export NOW=`date +%Y%m%d`
export OLDDAY=$((NOW -2)) 
export NOWTIME=`date +%H%m`

echo ' > Today = ' $NOW$NOWTIME
cd /app/ldsp/$1
find /app/ldsp/$1 -xdev | grep -v 'nas' > /app/ldsp/$1/flist
tar -cf /app/ldsp/backup/$1-$NOW$NOWTIME.tar -L /app/ldsp/$1/flist
echo ' > Backup file : ' $1-$NOW$NOWTIME.tar
rm /app/ldsp/$1/flist 

echo '2. Delete two day ago = ' $1-$OLDDAY*
rm -rf /app/ldsp/backup/$1-$OLDDAY*.tar

echo
echo '3. Delete web root '
echo ' > Delete ' $1
cd /app/ldsp/$1
ls /app/ldsp/$1 | grep -v nas | grep -v export | grep -v import | xargs rm -rf
echo ' > Clear check ' $1
ls /app/ldsp/$1

echo
echo '4. Copy JAR to ' $1
echo ' > Copy JAR to ' $1
cp /app/ldsp/publishing/emdv3-web.jar /app/ldsp/$1

echo
echo '5. Decompress JAR'
echo ' > Decompress ' $1
cd /app/ldsp/$1
jar -xf /app/ldsp/$1/emdv3-web.jar

echo
echo '6. Copy config files'
echo ' > Deploy editor hp_SE2M_AttachQuickPhoto.js'
cp /app/ldsp/publishing/config/webapp/EMDV3/editor/photo_uploader/plugin/hp_SE2M_AttachQuickPhoto.js /app/ldsp/$1/EMDV3/editor/photo_uploader/plugin
echo ' > Deploy editor attach_photo.js'
cp /app/ldsp/publishing/config/webapp/EMDV3/editor/photo_uploader/popup/attach_photo.js /app/ldsp/$1/EMDV3/editor/photo_uploader/popup
echo ' > Deploy editor_portal hp_SE2M_AttachQuickPhoto.js'
cp /app/ldsp/publishing/config/webapp/EMDV3/editor_portal/photo_uploader/plugin/hp_SE2M_AttachQuickPhoto.js /app/ldsp/$1/EMDV3/editor_portal/photo_uploader/plugin/
echo ' > Deploy editor_portal attach_photo.js'
cp /app/ldsp/publishing/config/webapp/EMDV3/editor_portal/photo_uploader/popup/attach_photo.js /app/ldsp/$1/EMDV3/editor_portal/photo_uploader/popup
echo ' > Deploy TopFrame.xfdl.js'
cp /app/ldsp/publishing/config/webapp/EMDV3/Frame/TopFrame.xfdl.js /app/ldsp/$1/EMDV3/Frame

echo 
echo '7. Clear delete files war & jar '
rm /app/ldsp/$1/emdv3-web.jar

echo
echo '##### FINISH DEPLOY #####' 
echo 
echo '8. Finish deploy'
echo 'Bye'
 
 
 
 
 Webtob 개별 배포 
 
 
 
 #!/bin/sh

echo
echo '##### START DEPLOY #####'
echo

if [[ $# -eq 0 ]];then
 echo "ERROR 255: Must provide the following 1 system name parameters:"
 exit 255
fi

if [ $1 = "sis" ]
then
 echo " ### Ind EMDVSIS ###"
else 
 if [ $1 = "pis" ]
 then
 echo " ### Ind EMDVPIS ###"
 else
 if [ $1 = "scm" ]
 then
 echo " ### Ind EMDVSCM ###"
 else
 echo " ### ERROR SERVIER NOT EXIST only sis, pis, scm ###"
 exit 1
 fi
 fi
fi

echo '#Actually system name = ' $1 ' Attention : JS file Only !!!!!'
echo
echo
echo '1. Backup & Stop' 
export NOW=`date +%Y%m%d`
export OLDDAY=$((NOW -2)) 
export NOWTIME=`date +%H%m`

echo ' > Today = ' $NOW$NOWTIME
cd /app/ldsp/$1
find /app/ldsp/$1 -xdev | grep -v 'nas' > /app/ldsp/$1/flist
tar -cf /app/ldsp/backup/$1-IND-$NOW$NOWTIME.tar -L /app/ldsp/$1/flist
echo ' > Backup file : ' $1-IND-$NOW$NOWTIME.tar
rm /app/ldsp/$1/flist

echo '2. Delete two day ago = ' $1-IND-$OLDDAY
rm -rf /app/ldsp/backup/$1-IND-$OLDDAY*.tar

echo
echo '3. Make temp folder for decompress : ' $1
mkdir /app/ldsp/publishing/temp-$1-$NOW$NOWTIME
ls -l /app/ldsp/publishing

echo
echo '4. Copy JAR to tmp for ' $1
echo ' > Copy JAR to tmp for ' $1
cp /app/ldsp/publishing/emdv3-ind-web.jar /app/ldsp/publishing/temp-$1-$NOW$NOWTIME

echo
echo '5. Decompress JAR'
echo ' > Decompress ' $1
cd /app/ldsp/publishing/temp-$1-$NOW$NOWTIME
jar -xf /app/ldsp/publishing/temp-$1-$NOW$NOWTIME/emdv3-ind-web.jar
ls -lR /app/ldsp/publishing/temp-$1-$NOW$NOWTIME/xfdl/EMDV3
find /app/ldsp/publishing/temp-$1-$NOW$NOWTIME/xfdl/EMDV3 -name '*.js' | wc -l | xargs printf "###### Total JS file Count = \"%s\" files \n\n"
export TOTALFILES=`find /app/ldsp/publishing/temp-$1-$NOW$NOWTIME/xfdl/EMDV3 -name '*.js' | wc -l`
if [ $TOTALFILES = 0 ]
then
 echo ' !!!!! ### No file ' $1 ' ### !!!!!'
else
 echo
 echo '6. Copy xfdl to ' $1
 cd /app/ldsp/publishing/temp-$1-$NOW$NOWTIME/xfdl
 cp -fR /app/ldsp/publishing/temp-$1-$NOW$NOWTIME/xfdl/EMDV3 /app/ldsp/$1

 echo
 echo '7. Copy config files'
 echo ' > Deploy editor hp_SE2M_AttachQuickPhoto.js'
 cp /app/ldsp/publishing/config/webapp/EMDV3/editor/photo_uploader/plugin/hp_SE2M_AttachQuickPhoto.js /app/ldsp/$1/EMDV3/editor/photo_uploader/plugin
 echo ' > Deploy editor attach_photo.js'
 cp /app/ldsp/publishing/config/webapp/EMDV3/editor/photo_uploader/popup/attach_photo.js /app/ldsp/$1/EMDV3/editor/photo_uploader/popup
 echo ' > Deploy editor_portal hp_SE2M_AttachQuickPhoto.js'
 cp /app/ldsp/publishing/config/webapp/EMDV3/editor_portal/photo_uploader/plugin/hp_SE2M_AttachQuickPhoto.js /app/ldsp/$1/EMDV3/editor_portal/photo_uploader/plugin/
 echo ' > Deploy editor_portal attach_photo.js'
 cp /app/ldsp/publishing/config/webapp/EMDV3/editor_portal/photo_uploader/popup/attach_photo.js /app/ldsp/$1/EMDV3/editor_portal/photo_uploader/popup
 echo ' > Deploy TopFrame.xfdl.js'
 cp /app/ldsp/publishing/config/webapp/EMDV3/Frame/TopFrame.xfdl.js /app/ldsp/$1/EMDV3/Frame
fi

echo 
echo '8 Clear delete files war & jar '
cd /app/ldsp/publishing
rm -rf /app/ldsp/publishing/temp-$1-$NOW$NOWTIME

echo
echo '##### FINISH DEPLOY #####' 
echo 
echo '9. Finish deploy'
echo 'Bye' 
 
 
 
 port check 
 
 
 
 #!/bin/bash

CHECKREMOTESERVERSLIST=checkServerPortList.txt
TIMEOUT=2

OLDIFS=$CHECKREMOTESERVERSLIST
IFS=,

while read -a line;
do
 r=$(timeout 2 bash -c 'exec 3<> /dev/tcp/'${line[0]}'/'${line[1]}';echo $?' 2>/dev/null)
 #l_TELNET=`echo "quit" | telnet ${line[0]} ${line[1]} | grep "Escape character is"`
 if [ "$r" = "0" ]
 then
 echo "Success !"
 else
 if [ "$r" = "1" ]
 then
 echo "Checked"
 else
 echo "Failed"
 fi
 fi
done <$CHECKREMOTESERVERSLIST
IFS=$OLDIFS 
 
 
 
 HomePlus 
 
 
 
 #!/bin/sh

# /data/scm/homeplus-club-admin/homeplus-club-admin-web
echo
echo '##### START DEPLOY #####'
echo

echo '##### Set Env #####'
##### JAVA #####
export JAVA_HOME=/app/java/java8
export PATH=$PATH:$JAVA_HOME/bin/
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib/tools.jar
export Finalbackupfiles=5
export DeleteDate=3
PATH=$PATH:$HOME/bin
export PATH
echo " > JAVA_HOME=" $JAVA_HOME
echo " > Final Backup File count=" $Finalbackupfiles
echo " > DeleteDate=" $DeleteDate "day before"
echo
echo '1. Backup & Stop' 
export NOW=`date +%Y%m%d`
export OLDDAY=$((NOW -$DeleteDate)) 
export NOWTIME=`date +%H%M`
echo ' > Today = ' $NOW$NOWTIME

cd /data/tmpsadm
find /data/tmpsadm -xdev | grep -v 'nas' > /data/tmpsadm/achiving.list
tar -cf /data/homeplus/backup/homeplus-club-admin/homeplus-club-admin-web/$NOW$NOWTIME.tar -T /data/tmpsadm/achiving.list
echo ' > Backup file : ' /data/homeplus/backup/homeplus-club-admin/homeplus-club-admin-web/$NOW$NOWTIME.tar
echo '2. Delete ' $DeleteDate ' day ago = ' $OLDDAY ', but must remain ' $Finalbackupfiles ' files on the backup folder'
Totalbackupfiles=`find /data/homeplus/backup/homeplus-club-admin/homeplus-club-admin-web/ -name "*.tar" | wc -l`
echo ' > Total backupfiles(all files) = ' $Totalbackupfiles
echo ' > Final backup files count = ' $Finalbackupfiles
Targetdeletebackupfiles=`expr $Totalbackupfiles - $Finalbackupfiles`
echo ' > Total backup files - Final backup files =' $Targetdeletebackupfiles
BackupAllFiles=(`find /data/homeplus/backup/homeplus-club-admin/homeplus-club-admin-web/ -name "*.tar" -mtime +$DeleteDate -printf "%f\n" | sort -n`)
cnt=1
echo ' > ' $DeleteDate ' day before delete target file list'
for i in "${BackupAllFiles[@]}"
do
 if [ $Targetdeletebackupfiles -ge $cnt ]
 then
 echo " " $i " , " $cnt " DELETEed !"
 else
 echo " " $i " , " $cnt " SKIPed !"
 fi
 let cnt=cnt+1
done

echo '3. Delete Web ROOT'
cd /data/tmpsadm
ls /data/tmpsadm | grep -v nas | grep -v export | grep -v somethingspecial | xargs rm -rf 
echo ' > Check Web ROOT = /data/tmpsadm'
echo ' > list ' `ls /data/tmpsadm`

echo '4. Copy tar to /data/tmpsadm'
echo ' > cp OOT-jar.tar.gz to /data/tmpsadm'
cp /data/scm/homeplus-club-admin/homeplus-club-admin-web/target/ROOT-jar.tar.gz /data/tmpsadm

echo '5. Decompress TAR.GZ'
echo ' > tar -zxvf /data/tmpsadm/ROOT-jar.tar.gz'
cd /data/tmpsadm
tar -zxf /data/tmpsadm/ROOT-jar.tar.gz -C /data/tmpsadm/ --strip-components=1

echo '6. Clear '
echo ' > Delete ROOT-jar.tar.gz and achiving.list in Web ROOT'
cd /data/tmpsadm
rm -rf /data/tmpsadm/ROOT-jar.tar.gz
rm -rf /data/tmpsadm/achiving.list
echo 

echo '##### FINISH DEPLOY #####'
echo 'Bye' 
 
 
 
 
 CategoryHomepage 
 
 Linux Core 수 확인 
 
 grep -c processor /proc/cpuinfo 코어 수 확인 
 
 Linux Memory 확인 
 
 cat /proc/meminfo | grep  MemTotal  메모리 확인 
 
 Tomcat instance 운용 shell 
 
 
 
 #!/bin/bash

#################################################

##### TOMCAT #####
INSTID=$2
ARGV=$3
INSTNAME=$1
JAVA_HOME=${JAVA_HOME}
CATALINA_HOME=/app/tomcat8/tomcat-engine
CATALINA_BASE=/app/tomcat8/instance/$INSTNAME
TOMCAT_USER=alan
TPATH=/app/tomcat8/tomcat-engine/bin/bootstrap.jar
TLOG=$CATALINA_BASE/logs
#LOGNAME=catalina.out

##### JAVA #####
### jvm option
JAVA_OPTS="$JAVA_OPTS -Dinstance_name=$INSTID"
JAVA_OPTS="$JAVA_OPTS -Dserver.type=prd"
JAVA_OPTS="$JAVA_OPTS -Dconnection.type=jndi"
JAVA_OPTS="$JAVA_OPTS -server"
JAVA_OPTS="$JAVA_OPTS -Dcomponent.name=$INSTNAME"
JAVA_OPTS="$JAVA_OPTS -Dlogs.dir=$TLOG"
#JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF-8"
JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=EUC-KR -Dfile.client.encoding=EUC-KR -Dclient.encoding.override=EUC-KR"
JAVA_OPTS="$JAVA_OPTS -Dinstance.no=$INSTNAME"
JAVA_OPTS="$JAVA_OPTS -Djava.security.egd=file:/dev/urandom"

### performance option
JAVA_OPTS="$JAVA_OPTS -Xmx4096m -Xms4096m"
#JAVA_OPTS="$JAVA_OPTS -XX:PermSize=256m -XX:MaxPermSize=512m"
#JAVA_OPTS="$JAVA_OPTS -XX:NewRatio=3 -XX:SurvivorRatio=2"

### behavior option
JAVA_OPTS="$JAVA_OPTS -XX:+UseConcMarkSweepGC -XX:+UseParNewGC"

### debugging option
JAVA_OPTS="$JAVA_OPTS -verbose:gc -XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps"
JAVA_OPTS="$JAVA_OPTS -XX:+TraceClassUnloading -XX:+TraceClassLoading"
JAVA_OPTS="$JAVA_OPTS -Xloggc:$TLOG/gc.log_$(date +%Y%m%d-%H%M%S)"
JAVA_OPTS="$JAVA_OPTS -XX:+HeapDumpOnOutOfMemoryError"
JAVA_OPTS="$JAVA_OPTS -XX:HeapDumpPath=$TLOG/java_pid_$(date +%Y%m%d-%H%M%S).hprof"

### external CLASSPATH ###
### APM properties
#JAVA_OPTS="$JAVA_OPTS -agentpath:/app/dynatrace/dynatrace-7.1/agent/lib64/libdtagent.so=name=[HOSTNAME]_[INSTNAME],server=10.10.27.27:9998"
#JAVA_OPTS="$JAVA_OPTS -javaagent:/app/scouter/agent.java/scouter.agent.jar"
#JAVA_OPTS="$JAVA_OPTS -Dscouter.config=/app/scouter/agent.java/conf/scouter_$INSTNAME.conf"

### RKM OPTION
#CLASSPATH="$CLASSPATH:/app/rkm/src/RKM_APP"
#CLASSPATH="$CLASSPATH:/app/rkm/src/RKM_APP/lib/commons-codec-1.10.jar"
#CLASSPATH="$CLASSPATH:/app/rkm/src/RKM_APP/lib/commons-lang-2.4.jar"
#CLASSPATH="$CLASSPATH:/app/rkm/src/RKM_APP/lib/commons-logging-1.1.jar"

export JAVA_HOME JAVA_OPTS CATALINA_HOME CATALINA_BASE CLASSPATH
export CATALINA_OPTS=${JMX_OPTS}
#################################################

case $ARGV in

start)
 runinst=$(ps -ef | grep java | grep -v grep | grep $INSTID | awk {'print $2 $16'})
 
 UNAME=`id -u -n`
 if [ e$UNAME != "e$TOMCAT_USER" ]
 then 
 echo "[ Use by only user Account [ $TOMCAT_USER ] Start Fail Tomcat Instance ]"
 exit;
 fi

 if [ -z "$runinst" ]; then
 echo " Starting Tomcat Instance [ $1 ] "
 echo $runinst
 mv $TLOG/catalina.$(date +%Y-%m-%d).out $TLOG/catalina.$(date +%Y-%m-%d_%H%M%S).out
 $CATALINA_HOME/bin/catalina.sh $3
 else
 echo " Already Running Tomcat Instance [ $1 ][ $INSTID ] !!! "
 ERROR=$?
 fi
 ;;

stop)
 $CATALINA_HOME/bin/catalina.sh $3
 ;;

status)
 instcount=$(ps -ef | grep java | grep -v grep | grep $TPATH | wc -l)
 echo " instance Running Count = "$instcount
 ps -ef | grep java | grep -v grep | grep $TPATH | awk '{printf(" Tomcat Instance = "$16"[ PID:"$3" ]\n", $1); }'
 echo -e $inststatus
 ;;

kill)
 ps -ef | grep $TPATH | grep -v grep | grep $INSTID | awk '{ printf(" Tomcat Instance = "$16" [ Process ID : %s ] Terminated.\n", $
2); }' ps -ef | grep $TPATH | grep -v grep | grep $INSTID | awk '{ printf("kill -9 %s\n", $3); }' > tmp.$$
 sh tmp.$$
 rm -f tmp.$$
 ;;

thread)
 threadPID=$(ps -ef | grep $TPATH | grep -v grep | grep $INSTID | awk {'print $3'})
 threadCount=$(ps uH $threadPID | wc -l )
 echo " Tomcat Instance ID "$INSTID" [ PID : "$threadPID" / Sub THREAD : "$threadCount" ]"
 ;;

log)
 tail -100f $TLOG/$INSTNAME/catalina.out
 ;;

*)
 echo "Invalid parameter [$ARGV]"
 echo "Usage) luncher.sh [instance name] [instance id] [ start|status|stop|kill|log|thread ]"
 echo "ex) luncher.sh inst1 inst11 start"
 echo "=============================================================="
 echo " Tomcat Instance List "
 echo "=============================================================="
 INSTLISTNUM=$(ls $CATALINA_BASE | wc -l )
 echo " Instance Count[ $INSTLISTNUM ] : " $(ls $CATALINA_BASE) 
 echo "=============================================================="

 ;;

esac

exit $ERROR 
 
 
 
 Backup Shell 
 
 
 
 0 2 * * * /home/hyunsu/BackUpCenter/backUpPicture.sh >> /home/hyunsu/BackUpCenter/backupPictures.log 
 #!/bin/sh

BackUpFiles=5
OrgDirectory=/home/hyunsu/Pictures
BackUpDirectory=/data/ext/WD4TB/backup/Pictures

FilesFound=$(find /home/hyunsu/Pictures/ -mtime -$BackUpFiles )

checkFileExist()
{
 filename=`echo $1 | cut -d'/' -f5-`
 echo ">> " $BackUpDirectory/$filename
 if [ -f $BackUpDirectory/$filename ]; then
 echo "EXIST"
 echo 
 else
 echo "NOT EXIST --> Copy " $1 " --> " $BackUpDirectory/$filename
 cp $1 $BackUpDirectory/$filename
 fi
}

checkDirectoryExist()
{
 filename=`echo $1 | cut -d'/' -f5-`
 echo ">> " $BackUpDirectory/$filename
 if [ -d $BackUpDirectory/$filename ]; then
 echo "EXIST"
 echo
 else
 echo "NOT EXIST --> Makedirectory " $BackUpDirectory/$filename
 mkdir $BackUpDirectory/$filename
 fi
}

for file in $FilesFound
do
 #echo "${counter}: ${file}"
 if [ -f "${file}" ]; then
 echo "${file} file."
 checkFileExist ${file}
 fi
 if [ -d "${file}" ]; then
 echo "${file} directory."
 checkDirectoryExist ${file}
 fi
done

 
 
 
 
 Crontab에 걸어서 실행 여부를 체크하고 실행하지 않았으면 실행 - ELK 적용 사례 
 
 
 
 */20 * * * * /app/checkELK.sh > /app/checkELK.log 
 #!/bin/sh

echo "\n\n"
echo "#########################################"
echo "########## CHECK ELK START ! ###########"
echo "#########################################"

cd /app/elasticsearch-7.4.1/
elasticsearchcheck=`ps -ef | grep elasticsearch | awk '{print ($2)}' | wc -l`
if [ $elasticsearchcheck -gt 1 ]
then
 echo "Already Elasticsearch started !"
else
 echo "Start ElasticSearch !"
 /app/elasticsearch-7.4.1/startup.sh
fi

cd /app/kibana-7.4.1-linux-x86_64/
kibanacheck=`ps -ef | grep kibana | awk '{print ($2)}' | wc -l`
if [ $kibanacheck -gt 1 ]
then
 echo "Already Kibana started !"
else
 echo "Start Kibana !"
 /app/kibana-7.4.1-linux-x86_64/startup.sh
fi

cd /app/logstash-7.4.1/
logstashcheck=`ps -ef | grep logstash | awk '{print ($2)}' | wc -l`
if [ $logstashcheck -gt 1 ]
then
 echo "Already Logstash started !"
else
 echo "Start Logstash !"
 /app/logstash-7.4.1/startup.sh
fi

cd /app/
echo "#########################################"
echo "############ CHECK ELK END ! ############"
echo "#########################################"
echo "\n\n"