2018년 9월 17일 월요일

리눅스 파일 또는 폴더만 선택해서 권한 속성 변경하기


리눅스 사용시 권한 속성을 변경 하는 경우 파일과 폴더의 속성을 다르게 설정해야 하는 경우가 생깁니다.

이런 경우 사용 find 명령을 통해서 검색 결과에 명령을 실행하도록 해주면 됩니다.

파일만 권한 속성 변경 하기
find ./ -type f -exec chmod 640 {} \;

폴더만 권한 속성 변경 하기
find ./ -type d -exec chmod 750 {} \;

2018년 9월 11일 화요일

Spring 어플리케이션을 톰캣에 배포 하였을때 schedule 이 중복 실행 되는 현상

톰캣에 Spring 어플리케이션을 배포해서 서비스 하는 경우 schedule 이 중복되어 실행 되는 현상이 발생하는 경우가 있습니다.

이런 경우는 보통 어플리케이션이 이중으로 로딩되어 발생하는 현상입니다.

tomcat 의  server.xml 설정시에 Host 설정에 appBase 속성을  설정하고 배포한 어플리케이션을  appBase 폴더 아래에 위치 시켜서 Context 설정을 하게 되면 Tomcat 이 어플리케이션을 이중으로 로딩하게 됩니다.

아래와 같이 server.xml 을 설정 하게 되면  배포한 appTest 어플리케이션이
Host의 appbase 설정에 따라서 /appTest 로 배포 하고
또 context  설정에 따라서 /로 배포 하게 되어 이중으로 로딩하는 문제가 발생 하게 됩니다.

    <Host name="localhost"  appBase="/home/user/tomcat/webapps" unpackWARs="true" autoDeploy="false" >
        <Context path="/appTest" docBase=“app1" reloadable="true" />
    </Host>

이런 경우 소스를 appbase 아래가 아닌 다른곳에 설치 하거나 host 속성에 기동시에 appbase 아래의 어플리케이션을 배포 하지 않도록 아래 처럼 deployOnStartup 을 false로 설정을 해주면 됩니다.

    <Host name="localhost"  appBase="/home/user/tomcat/webapps" unpackWARs="true" autoDeploy="false" deployOnStartup="false">
        <Context path="/appTest" docBase=“app1" reloadable="true" />
    </Host>