우분투에 넥서스 설치

1. 개요
우분투 16.04, Apache2, Tomcat7, JDK 1.8, Nexus nexus-2.13.0-01 버전을 기준으로 하여 설치

2. 넥서스 다운로드
톰캣과 연동하기 위해 war파일로 다운로드

wget http://www.sonatype.org/downloads/nexus-latest.war
mkdir nexus-2.13.0-01
mkdir sonatype-work
unzip nexus-latest.war -d nexus-2.13.0-01/

주의사항 : 퍼미션 문제가 발생한다면
WEB-INF/classes폴더에 nexus.properties파일을 열어보면 아래와 같이 되어있다.

nexus-work=${user.home}/sonatype-work/nexus

/usr/share/tomcat7 폴더밑으로
sonatype-work/nexus 라는 폴더 생성하고

chown -R tomcat7
chgrp -R tomcat7 로 부여하여 해결

3. Tomcat 설정
server.xml에 대한 설정

cd /etc/tomcat7
vi server.xml 로 아래 Host 추가


        
	

4. 가상호스트 등록
아래와 같이 파일을 만들어 가상호스트를 아파치에 등록한다.

cd /etc/apache2/sites-available
cp 000-default.conf repo.moramcnt.com.conf
vi repo.moramcnt.com.conf

	ServerAdmin admin@moramcnt.com
	DocumentRoot /home/moram/service/MoramWebSolution/nexus/nexus-2.13.0-01
	DirectoryIndex index.html

	ServerName repo.moramcnt.com
	
		Options FollowSymLinks
		AllowOverride None
		Order allow,deny
		Allow from all
		Require all granted
	

	LogLevel warn
	ErrorLog /var/log/apache2/error-repo.moramcnt.com.log
	CustomLog /var/log/apache2/access-repo.moramcnt.com.log combined

	JkMount /*.do ajp13_worker
	JkMount /*.jsp ajp13_worker
	JkMount /*.json ajp13_worker

	#----------------------------
	# nexus 설정
	#----------------------------
	JkMount /index.html ajp13_worker
	JkMount /service/* ajp13_worker
	JkMount /content/* ajp13_worker
	JkMount /static/* ajp13_worker
	#----------------------------

위 파일을 이용하여 가상호스트 등록

sudo a2ensite repo.moramcnt.com.conf

5. 서비스 재시작

sudo service tomcat7 restart
sudo service apache2 restart

6. 그 이외는 이전에 작성했던
http://blog.moramcnt.com/?p=630 를 참조

우분투 Apache2, Tomcat7 연동

1. 개요
우분투 16.04에 전자정부프레임워크(spring)로 만들어진 사이트를 올리기 위한 처리사항을 정리한것으로,
기본적인 톰캣, 아파치등의 설치는 생략하고 그 이후 작업인 설정을 위주로 하여 정리하였다.

2. 가상호스트
www.withpoem.com 라는 도메인을 Apache2에 가상호스트로 올리기 위해서
다음과 같이 한다.

cd /etc/apache2/sites-available
vi www.withpoem.com.conf

위와 같이 하게 되면 sites-enabled 폴더에 www.withpoem.com.conf가 만들어지게 된다.


	ServerAdmin admin@moramcnt.com
	DocumentRoot /home/moram/Service/PoemWebSolution/poem-web
	DirectoryIndex index.html index.jsp index.do
	ServerName www.withpoem.com

	
		Options FollowSymLinks
		AllowOverride None
		Order allow,deny
		Allow from all
		Require all granted
	

	Alias /upload /home/moram/Service/Data/PoemData/upload
	
		Options FollowSymLinks
		AllowOverride None
		Order allow,deny
		Allow from all
		Require all granted
	
	LogLevel warn
	ErrorLog /var/log/apache2/error-www.withpoem.com.log
	CustomLog /var/log/apache2/access-www.withpoem.com.log combined

	JkMount /*.do ajp13_worker
	JkMount /*.jsp ajp13_worker
	JkMount /*.json ajp13_worker

– 참고1 : Require all granted 을 안해주면 Forbidden You don’t have permission to access / on this server. 에러가 발생할수 있음
– 참고2 : 윈도우 서버의 가상디렉토리는 위에 있는 Alias를 통해 해결해야 한다.

위에서 작성한 가상호스트 파일을 이용하여 a2ensite를 이용하여 등록처리한다.


sudo a2ensite www.withpoem.com.conf

2. 톰캣 server.xml 등록
server.xml에 아래와 같이 Host를 등록한다.

cd /etc/tomcat7
vi server.xml

	
	

3. 서비스 재시작

sudo service tomcat7 restart
sudo service apache2 restart

4. 윈도우에서 리눅스로의 이관시 주의사항
혹시 log4j.xml 또는 log4j2.xml 에서 파일을 기록하는 부분이 있다면 아래와 같이 리눅스 기준으로 전환할 필요가 있다.


	
	
		
		
	
	


또한 globals.properties또는 context-properties.xml 등에도 디렉토리가 올바른지 확인해 볼필요가 있다.

aws ubuntu에 웹개발환경 구축하기

다음은 아마존 웹서비스 AWS(Amazon Web Services)에 전자정부 프레임워크로 된 프로젝트를 올려보는것 까지 하여 테스트한결과이다.

1. JDK 설치
1) Oracle Java(JDK)8을 설치하기 위해 webupd8team 레포지터리 추가

sudo add-apt-repository ppa:webupd8team/java

2) 업데이트

sudo apt-get update

3) 설치
여기에서는 JDK 8을 설치하기로 함.

sudo apt-get install oracle-java8-installer

4) JDK 환경 변수 추가
vi에디터로 profile파일에 JAVA_HOME, PATH등을 export해도 되지만,
아래와 같이 명령을 입력하면 자동으로 환경변수를 추가해 준다.

sudo apt-get install oracle-java8-set-default

5) 환경변수 확인

sudo su - root -c 'printenv'

2. 아파치(Apache) 설치
1) 설치

sudo apt-get install apache2

2) 서비스 시작

sudo service apache2 start

3) IP로 웹이 뜨는지 확인
안뜨면 AWS의 관리 콘솔의 Security Group(방화벽)에서 80포트를 오픈한다.

3. 톰캣(Tomcat) 설치

1) 설치

sudo apt-get install tomcat7

– 설치중 아래와 같이 JDK가 없다고 나온다면 JDK 8을 인식못한것이므로

Setting up libcommons-collections3-java (3.2.1-6) ...
Setting up libcommons-pool-java (1.6-2) ...
Setting up libcommons-dbcp-java (1.4-3ubuntu1) ...
Setting up libecj-java (3.9.0-1) ...
Setting up libgeronimo-jta-1.1-spec-java (1.1.1-3ubuntu1) ...
Setting up libservlet3.0-java (7.0.52-1ubuntu0.3) ...
Setting up libtomcat7-java (7.0.52-1ubuntu0.3) ...
Setting up tomcat7-common (7.0.52-1ubuntu0.3) ...
Setting up tomcat7 (7.0.52-1ubuntu0.3) ...

Creating config file /etc/default/tomcat7 with new version
Adding system user `tomcat7' (UID 106) ...
Adding new user `tomcat7' (UID 106) with group `tomcat7' ...
Not creating home directory `/usr/share/tomcat7'.

Creating config file /etc/logrotate.d/tomcat7 with new version
 * no JDK or JRE found - please set JAVA_HOME
invoke-rc.d: initscript tomcat7, action "start" failed.
Setting up authbind (2.1.1) ...
Processing triggers for ureadahead (0.100.0-16) ...

sudo vi /etc/init.d/tomcat7 로 파일을 열어

JDK_DIRS="/usr/lib/jvm/default-java ${OPENJDKS} /usr/lib/jvm/java-6-openjdk /usr/lib/jvm/java-6-sun /usr/lib/jvm/java-7-oracle"

아래와같이 /usr/lib/jvm/java-8-oracle 을 추가한다.

JDK_DIRS="/usr/lib/jvm/default-java ${OPENJDKS} /usr/lib/jvm/java-6-openjdk /usr/lib/jvm/java-6-sun /usr/lib/jvm/java-7-oracle /usr/lib/jvm/java-8-oracle"

2) 서비스 시작

sudo service tomcat7 start

3) 서비스 확인
http://접속아이피:8080/으로 뜨는지 확인, 이때도 마찬가지로 안뜬다면
AWS의 관리 콘솔의 Security Group(방화벽)에서 8080포트를 오픈했는지 확인해야 한다.

4. libapache2-mod-jk 설치
아파치와 톰캣 연동을 위한 mod-jk를 설치한다.
1) 설치

sudo apt-get install libapache2-mod-jk

2) 설정

sudo vi /etc/libapache2-mod-jk/workers.properties

아래 부분을 설치 경로에 맞게 수정

workers.tomcat_home=/usr/share/tomcat7
workers.java_home=/usr/lib/jvm/java-8-oracle

5. 톰캣 설정
1) server.xml 수정

sudo vi /etc/tomcat7/server.xml

AJP를 이용하기 위해 아래 주석 해제

    
    
    
    

6. AJP 모듈 활성화

sudo a2enmod proxy_ajp 
sudo service apache2 restart

7. 아파치 설정
000-default.conf 파일을 열어 수정한다.

 sudo vi /etc/apache2/sites-available/000-default.conf

하단에 아래와 같이 추가한다.

JkMount /* ajp13_worker

8. 서비스 재시작

sudo service tomcat7 restart
sudo service apache2 restart

apt-get(Advanced Packaging Tool) 명령어 정리

우분투의 패키지 관리 명령어인 apt-get(Advanced Packaging Tool)에 대한 명령어 정리

– 패키지 인덱스 정보 목록 업데이트

sudo apt-get update

– 설치된 패키지 업그레이드

sudo apt-get ungrade

– 패키지 설치

sudo apt-get install <패키지명>

– 패키지 제거(설정파일은 제외)

sudo apt-get remove <패키지명>

– 패키지 제거(설정파일 포함)

sudo apt-get --purge remove <패키지명>

– 패키지 제거(의존성이 있어 제거가 안될때 사용)

sudo apt-get --purge autoremove <패키지명>

– 패키지 재설치

sudo apt-get reinstall <패키지명>

– 패키지 검색

sudo apt-cache search <패키지명>

– 패키지 정보보기

sudo apt-cache show <패키지명>

유닉스 파일 시스템을 체크하여 SMS을 보내는 쉘 프로그램

아래는 간단히 유닉스 파일시스템을 읽어 Config.ini에 정해놓은 용량보다 크게되면
SMS를 전송하는 쉘스크립트이다.

#! /bin/ksh -f
MANPATH=/usr/man:/usr/share/man:/opt/SUNWspro/man

# Set up the oracle variables:
ORACLE_HOME=/rtd_orahome
ORACLE_SID=XXXX
ORACLE_TERM=vt100
ORAWEB_HOME=$ORACLE_HOME/ows/3.0
ORAWEB_SITE=web

ORA_NLS32=$ORACLE_HOME/ocommon/nls/admin/data
TNS_ADMIN=$ORACLE_HOME/network/admin
ORACLE_OWNER=AAAA
LANG=korean
NLS_LANG=American_America.KO16KSC5601

# Set up the search paths:
PATH=/opt/SUNWspro/bin:/usr/ccs/bin:/usr/bin:/usr/ucb:/etc:/usr/sbin:/usr/openwin/bin:$ORACLE_HOME/bin:$ORAWEB_HOME/bin:.
LD_LIBRARY_PATH=/opt/SUNWspro/lib:/usr/lib:/usr/ccs/lib:/usr/openwin/lib:/usr/ucblib:$ORACLE_HOME/lib
export PATH ORACLE_HOME ORACLE_SID ORACLE_TERM LANG LD_LIBRARY_PATH ORAWEB_HOME MANPATH ORA_NLS32 TNS_ADMIN ORACLE_OWNER
#=============================================================================================================

SMS_CLIENT=/rtd_home/monitor/bin/SmsSender 
CONFIG_FILE=/rtd_home/monitor/cfg/config.ini
HOST_NAME=`hostname`
#let intCnt=0 
grep -w "FILESYSTEM" $CONFIG_FILE | while read strCategory strFileSystemNm intDangerCapacity
do
	intCurCapacity=`df -k $strFileSystemNm |tail -1|awk '{print $5}' |cut -d % -f 1` 
	if (( intCurCapacity > intDangerCapacity ))
	then
 		intCurCapacity=`df -k $strFileSystemNm |tail -1|awk '{print $5}' |cut -d % -f 1`
		if (( intCurCapacity > intDangerCapacity )) 
		then
			grep -w "FILESYSTEM_NOTIFY_PHONE_NUMBER" $CONFIG_FILE | while read strCategory NOTIFY_PHONE_NUMBER
			do
				$SMS_CLIENT 'Moramcnt' $NOTIFY_PHONE_NUMBER 021234567 "$HOST_NAME Server['FILE SYSTEM $strFileSystemNm'] exceeded $intDangerCapacity%. Current : $intCurCapacity%"
				sleep 1
			done
			print `date '+%Y-%m-%d %T'` "$HOST_NAME :FILE SYSTEM $strFileSystemNm'이 $intDangerCapacity%를 넘었습니다. 현재 : $intCurCapacity%" >> /rtd_home/monitor/logs/check_filesystem_err.log
			#let intCnt=intCnt+1
		else
			print `date '+%Y-%m-%d %T'` "$HOST_NAME : File System 정상 $strFileSystemNm : $intCurCapacity%" >> /rtd_home/monitor/logs/check_filesystem.log
		fi
	else
		print `date '+%Y-%m-%d %T'` "$HOST_NAME : File System 정상 $strFileSystemNm : $intCurCapacity%" >> /rtd_home/monitor/logs/check_filesystem.log
	fi
done
exit 0

Config.ini파일의 내용은 다음과 같다.

[FILE_SYSTEM]
FILESYSTEM					/			90
FILESYSTEM					/tmp			90
FILESYSTEM					/rtd_orahome		90
FILESYSTEM					/rtd_home		92
FILESYSTEM					/rtd_data1		90
FILESYSTEM					/rtd_data2		90
FILESYSTEM					/rtd_data3		90
FILESYSTEM					/rtd_data4		90
FILESYSTEM					/rtd_data5		90
FILESYSTEM					/rtd_data6		90
FILESYSTEM					/rtd_data7		90
FILESYSTEM					/rtd_data8		90
FILESYSTEM					/rtd_data9		90
FILESYSTEM					/rtd_data10		90
FILESYSTEM					/backup			95

그리고, SMSSender프로그램은 이전글 “오라클 Alert Log에 에러 발생시 SMS로 전송하는 쉘 스크립트” 을 참고하면된다.

오라클 Alert Log에 에러 발생시 SMS로 전송하는 쉘 스크립트

아래는 장애발생시 오라클의 alert 로그에 “ORA-“와 같이 쌓이는것을 착안하여 만든 프로그램이다.

#! /bin/ksh
export ORACLE_HOME=/rtd_orahome
export ORACLE_SID=XXXXX
export ORACLE_OWNER=AAAAA
export ORAWEB_HOME=$ORACLE_HOME/ows/3.0
export ORAWEB_SITE=web
export LANG=korean
export NLS_LANG=American_America.KO16KSC5601
export ORA_NLS32=$ORACLE_HOME/ocommon/nls/admin/data
export PATH=$PATH:.:/opt/SUNWspro/bin:/usr/ccs/bin:/usr/bin:/usr/ucb:/etc:/usr/sbin:/usr/openwin/bin:$ORACLE_HOME/bin:$ORAWEB_HOME/bin:.
export LD_LIBRARY_PATH=/opt/SUNWspro/lib:/usr/lib:/usr/ccs/lib:/usr/openwin/lib:/usr/ucblib:$ORACLE_HOME/lib

SMS_CLIENT=/rtd_home/monitor/bin/SmsSender 
CONFIG_FILE=/rtd_home/monitor/cfg/config.ini
HOST_NAME=`hostname`

# 로그의 라인수 저장파일
LOG_CNT=/rtd_home/monitor/temp/alertlog_line_cnt.txt

touch $LOG_CNT
# 이전에 기록한 라인수를 읽는다
cat $LOG_CNT | read intPrevLineCnt

# 전체라인수 카운트
intTotLineCnt=$(cat /rtd_orahome/admin/RTDORA7/bdump/alert_RTDORA7.log | wc -l)

# Cat할 라인수 지정
let LoopCnt=intTotLineCnt-intPrevLineCnt 

cat /rtd_orahome/admin/RTDORA7/bdump/alert_RTDORA7.log  | tail -$LoopCnt | grep ORA- | while read ORAMSG
do
	grep -w "ORACLE_NOTIFY_PHONE_NUMBER" $CONFIG_FILE | while read TEMP NOTIFY_PHONE_NUMBER
	do
		$SMS_CLIENT 'Moramcnt' $NOTIFY_PHONE_NUMBER 021234567 "$HOST_NAME $ORAMSG"	
		sleep 1
	done
	print `date '+%Y-%m-%d %T'` "$HOST_NAME $ORAMSG" >> /rtd_home/monitor/logs/check_alertlog_err.log

done
rm -f $LOG_CNT
print $intTotLineCnt >> $LOG_CNT
exit 0

위의 쉘 프로그램은 Config.ini와 SMSSender라는 프로그램이 필요하다.
Config.ini의 파일의 내용은 다음과 같이 sms를 수신받을 대상이 기록되어 있다.

[ORACLE]
ORACLE_NOTIFY_PHONE_NUMBER		0101234567

또한 SMSSender는 오라클 Pro*C로 간단한게 구현되어 있다.


#include 
#include 
#include 
#include 


#define	TRUE		1
#define	FALSE		0
#define	CONSOLE_MODE	0

int Connection( char *, char *, char *);
int Commit( void);
int RollBack( void);
int Trim(char *);
int SendSMS( char *, char *, char *, char *);

int Connection( char *szUserId, char *szPasswd, char *szConnection)
{
EXEC SQL BEGIN DECLARE SECTION;
    VARCHAR vcConnection[21];
    VARCHAR vcUserId[21];
	VARCHAR vcPasswd[21];
EXEC SQL END DECLARE SECTION;

	strcpy( (char *)vcUserId.arr, szUserId);
	vcUserId.len	= strlen( szUserId);

	strcpy( (char *)vcPasswd.arr, szPasswd);
	vcPasswd.len	= strlen( szPasswd);

	/* If Connection String Is Not Empty */ 
	if (szConnection[ 0] != NULL)
	{
		strcpy( (char *)vcConnection.arr, szConnection);
		vcConnection.len	= strlen( szConnection);
	}
	else
	{
		vcConnection.arr[0] = '\0';
		vcConnection.len	= 0;
	}

	
	/* Connection */
	EXEC SQL CONNECT :vcUserId IDENTIFIED BY :vcPasswd USING :vcConnection;
	if( sqlca.sqlcode != 0)
	{
#ifdef CONSOLE_MODE
        printf("Oracle Connect Fail : %s\n", sqlca.sqlerrm.sqlerrmc);
#endif
		return FALSE;
	}

#ifdef CONSOLE_MODE
    printf("Oracle Connected.\n");
#endif
	return TRUE;
}


int Commit( void)
{

EXEC SQL COMMIT WORK RELEASE;

  	if (sqlca.sqlcode != 0)
	{
		/* ORA-1034 : ORACLE not available */
		if (sqlca.sqlcode == 1034) return FALSE;
#ifdef XCONSOLE_MODE
		printf("Oracle Commit Fail : %s\n", sqlca.sqlerrm.sqlerrmc);
#endif
		return FALSE;
    }
#ifdef CONSOLE_MODE
	printf("Oracle Commit Work Relese, Oracle DisConnected.\n");
#endif
    return TRUE;
}


int RollBack( void)
{
	EXEC SQL ROLLBACK WORK;
	if (sqlca.sqlcode != 0) 
	{
		/* ORA-1034 : ORACLE not available */
		if (sqlca.sqlcode==1034) return FALSE;
#ifdef CONSOLE_MODE
		printf("Oracle Rollback Fail : %s\n", sqlca.sqlerrm.sqlerrmc);
#endif
		return FALSE;
	}
	return TRUE;
}

int Trim(char *szText)
{
    int iCnt, iLength = strlen(szText);

    for (iCnt = iLength-1; iCnt >= 0; iCnt--)
	{
        if (szText[iCnt]==' ' || szText[iCnt]=='\n' || szText[iCnt]=='\r')
		{
            szText[iCnt] = '\0';
            iLength--;
        }
		else
			break;
    }
    return iLength;
}


/*==================================================================================
 * SMS 전송
 ===================================================================================*/
int SendSMS( char *szTranId, char *szTransPhone, char *szCallBackNo, char* szMessage)
{

EXEC SQL BEGIN	DECLARE	SECTION;
	VARCHAR		vcTranId[21];
	VARCHAR 	vcTransPhone[16];
	VARCHAR		vcTranCallBack[16];
	VARCHAR		vcMessage[256];
EXEC SQL END	DECLARE	SECTION;

	memset( &vcTranId,		0, sizeof(vcTransPhone));
	memset( &vcTransPhone,	0, sizeof(vcTransPhone));
	memset( &vcTranCallBack, 0, sizeof(vcTranCallBack));
	memset( &vcMessage,		0, sizeof(vcMessage));


	strncpy(vcTranId.arr, szTranId, 20);
	vcTranId.len	= Trim( (char *)vcTranId.arr);
	vcTranId.arr[ vcTranId.len] = '\0';


	strncpy(vcTransPhone.arr, szTransPhone, 15);
	vcTransPhone.len	= Trim( (char *)vcTransPhone.arr);
	vcTransPhone.arr[ vcTransPhone.len] = '\0';

	strncpy(vcTranCallBack.arr, szCallBackNo, 15);
	vcTranCallBack.len	= Trim( (char *)vcTranCallBack.arr);
	vcTranCallBack.arr[ vcTranCallBack.len] = '\0';

	strncpy(vcMessage.arr, szMessage, 255);
	vcMessage.len	= Trim( (char *)vcMessage.arr);
	vcMessage.arr[ vcMessage.len] = '\0';

#ifdef CONSOLE_MODE
	printf("SMS szTranId...%s|\n", vcTranId.arr);
	printf("SMS szTransPhone...%s\n", vcTransPhone.arr);
	printf("SMS szCallBackNo...%s\n", vcTranCallBack.arr);
	printf("SMS szMessage...%s\n", vcMessage.arr);
#endif	

EXEC SQL INSERT INTO
		em_tran(tran_pr, tran_id, tran_phone, tran_callback, tran_status, tran_date, tran_msg, tran_type)
		VALUES(EM_TRAN_PR.NEXTVAL, :vcTranId, :vcTransPhone, :vcTranCallBack, '1', SYSDATE, :vcMessage, '1');

	if (sqlca.sqlcode == 0)
	{
		if (!Commit())
		{	
			RollBack();
			return FALSE;
		}
#ifdef CONSOLE_MODE
    printf("SMS Sent...\n");
#endif	

		return TRUE;
	}
	else
		return FALSE;
}



int main(int argc, char* argv[])
{
	if( !Connection("오라클계정", "오라클패스워드", "오라클SID")) return -1;
	SendSMS( argv[ 1], argv[ 2], argv[ 3], argv[ 4]);
}





오라클 아카이브 로그 백업 및 이동 쉘 스크립트

오라클 아카이브로그 백업 및 이동
– find 명령에 -mtime은 일당인데 -mmin 같은 옵션이 없어 touch로 파일생성후
그 파일의 생성일과 비교하여 1시간 전 데이터를 검색 할수 있다.

#! /bin/ksh

ORACLE_ARCHIVE_SRC_DIR="/rtd_data10/ARCH"
ORACLE_ARCHIVE_DST_DIR="/backup/rtd/rtd_data10/ARCH"
ORACLE_ARCHIVE_PREFIX_NAME="archive"

#------------------------------------------------------
# 오래된 압출파일 삭제 주기(일단위)
#------------------------------------------------------
DEL_GZIP_FILE_INTERVAL="60"

#------------------------------------------------------
# KST-9는 시간 -8은 1시간전
#------------------------------------------------------
FIND_TIME=`TZ=KST-8; date +%Y%m%d%H%M`

TEMP_DIR=$ORACLE_ARCHIVE_SRC_DIR/$FIND_TIME

#------------------------------------------------------
# 임시폴더 생성
#------------------------------------------------------
mkdir -p $TEMP_DIR

#------------------------------------------------------
# 임시폴더에 생성일이 1시간전인 파일 생성
#------------------------------------------------------
touch -t $FIND_TIME  $TEMP_DIR/$FIND_TIME

#------------------------------------------------------
# 템프폴더로 이동
#------------------------------------------------------
find $ORACLE_ARCHIVE_SRC_DIR -name "$ORACLE_ARCHIVE_PREFIX_NAME*" ! -newer $TEMP_DIR/$FIND_TIME -exec mv {} $TEMP_DIR \;

#------------------------------------------------------
# 실제 로그저장소로 압축
#------------------------------------------------------
tar cf - $TEMP_DIR | gzip > $ORACLE_ARCHIVE_DST_DIR/$FIND_TIME.tar.gz

#------------------------------------------------------
# 템프폴더 삭제
#------------------------------------------------------
find $TEMP_DIR -exec rm -rf {} \;

#------------------------------------------------------
# 기존 압출파일 삭제, 현재 30일전 압축파일을 모두 삭제한다
#------------------------------------------------------
find $ORACLE_ARCHIVE_DST_DIR -name "*.tar.gz" -mtime +$DEL_GZIP_FILE_INTERVAL -exec rm -f {} \;
exit