{ "editor.suggestSelection": "first", "vsintellicode.modify.editor.suggestSelection": "automaticallyOverrodeDefaultValue", "workbench.colorTheme": "Material Theme Darker High Contrast", "workbench.iconTheme": "eq-material-theme-icons", "editor.formatOnSave": true, "javascript.preferences.quoteStyle": "single", "typescript.preferences.quoteStyle": "single", "editor.tabSize": 2, "liveServer.settings.donotVerifyTags": true, "liveServer.settings.donotShowInfoMsg": true, "security.workspace.trust.untrustedFiles": "open", "files.exclude": { "**/.git": false }, "git.autofetch": true, "terminal.integrated.defaultProfile.windows": "Git Bash", "terminal.integrated.automationShell.linux": "", "terminal.integrated.automationShell.windows": "", "terminal.integrated.profiles.windows": { "PowerShell": { "source": "PowerShell", "icon": "terminal-powershell" }, "Command Prompt": { "path": [ "${env:windir}\\Sysnative\\cmd.exe", "${env:windir}\\System32\\cmd.exe" ], "args": [], "icon": "terminal-cmd" }, "Git Bash": { "source": "Git Bash" } } }
http://temp.repia.com/dhan/openapiclient-0.0.1-SNAPSHOT.jar.gz
TB_ORGAN CREATE CACHED TABLE "PUBLIC"."TB_ORGAN"( "OFCFS_CODE" VARCHAR(16), "OFCPS_NM" VARCHAR(100), "DEPT_CODE" VARCHAR(16), "DEPT_NM" VARCHAR(100), "USER_NM" VARCHAR(100), "OFFM_TELNO" VARCHAR(32), "EMAIL" VARCHAR(100), "JOB_DC" CLOB, "ORDR" NUMBER );
java -Dlogback.configurationFile=resources/logback.xml -cp .:./resources/ -jar openapiclient-0.0.1-SNAPSHOT.jar HRD ORGAN refresh
#----------------------------------------------------------------------- # api.properties : 시스템 #----------------------------------------------------------------------- # 1. key = value 구조입니다. # 2. key값은 공백문자를 포함불가, value값은 공백문자를 가능 # 3. key값으로 한글을 사용불가, value값은 한글사용이 가능 # 4. 줄을 바꿀 필요가 있으면 '\'를 라인의 끝에 추가(만약 '\'문자를 사용해야 하는 경우는 '\\'를 사용) # 5. Windows에서의 디렉토리 표시 : '\\' or '/' ('\' 사용하면 안됨) # 6. Unix에서의 디렉토리 표시 : '/' # 7. 주석문 처리는 #사용 # 8. value값 뒤에 스페이스가 존재하는 경우 서블릿에서 참조할때는 에러발생할 수 있으므로 trim()하거나 마지막 공백없이 properties 값을 설정할것 #----------------------------------------------------------------------- database.type=h2 database.driver=org.h2.Driver database.jdbcurl=jdbc:h2:tcp://127.0.0.1:9092/~/rsa41 database.user=sa database.password=fpvldk!@# ORGAN.table=TB_ORGAN
logback.xml <?xml version="1.0" encoding="UTF-8"?> <!-- [Layout] %m : 로그내용이 출력 %p : trace > debug > info > warn > error 등의 priority 출력 %r : 어플리케이션이 시작되어 로깅이벤트가 발생하는 시점까지의 경과시간을 밀리세컨드로 출력 %c : 예) 카테고리가 a.b.c 처럼 되어있다면 %c{2}는 b.c가 출력됩니다. %n : 플랫폼 종속적인 개행문자가 출력된다. \r\n 또는 \n 일것이다 %d : 로깅이벤트가 일어나 날짜 출력 ( 프로그램의 실행속도를 느리게 한다.) 예) %d{HH:mm:ss} 또는 %d{dd MMMM yyyy HH:mm:ss} %C : 호출자의 클래스명 출력 예) 클래스구조가 org.apache.xyz.SomeClass 처럼 되어있다면 %C{2}는 xyz.SomeClass 가 출력됩니다 %M : 로깅이 발생한 method 이름을 나타냅니다. %F : 로깅이 발생한 프로그램 파일명을 나타냅니다. %l : 로깅이 발생한 caller의 정보를 나타냅니다 %L : 로깅이 발생한 caller의 라인수를 나타냅니다 %x : 로깅이 발생한 thread와 관련된 NDC(nested diagnostic context)를 출력합니다. %X : 로깅이 발생한 thread와 관련된 MDC(mapped diagnostic context)를 출력합니다. %% : % 표시를 출력하기 위해 사용한다. %t : 로그이벤트가 발생된 쓰레드의 이름을 출력합니다 --> <configuration scan="true" scanPeriod="30 seconds"> <appender name="ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender"> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- rollover daily --> <fileNamePattern>logs/openapiclient-%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <!-- or whenever the file size reaches 100MB --> <maxFileSize>100MB</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> </rollingPolicy> <encoder> <pattern>%d{HH:mm:ss.SSS} %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <layout class="ch.qos.logback.classic.PatternLayout"> <Pattern>%d{HH:mm:ss.SSS} [%-5level] - %msg%n</Pattern> </layout> </appender> <!-- Loggers --> <logger name="org.apache.catalina" level="ERROR"> </logger> <logger name="org.apache.commons" level="ERROR"> </logger> <logger name="org.springframework" level="DEBUG" > </logger> <logger name="java.sql" level="DEBUG"> </logger> <logger name="org.mybatis.spring" level="DEBUG"> </logger> <root level="ERROR"> <appender-ref ref="ROLLING"/> <appender-ref ref="STDOUT" /> </root> </configuration>
rssStatus.sh #!/bin/sh trim() { echo $1; } RSS_ROOT="/app/search/RSA" echo ""; EXE_NAME="전자사전 관리데몬" EXE_FILE="DIC_MGR" PID_FILE="${RSS_ROOT}/logs/dic_mgr.pid" if [ -f ${PID_FILE} ] then echo -n ""; #echo "${PID_FILE} exist!" else echo "${PID_FILE} not exist!" fi PID=$(trim `cat $PID_FILE`) RUN_PID=$(ps ax |grep ${EXE_FILE} |grep -v grep|awk '{print $1}') if [ ${PID} -eq ${RUN_PID} ] then echo " * ${EXE_NAME}(${EXE_FILE}:${PID})"; else echo " * ${EXE_NAME}(${EXE_FILE}:Dead)"; fi EXE_NAME="전자사전" EXE_FILE="DicSvr" PID_FILE="${RSS_ROOT}/logs/dic.pid" if [ -f ${PID_FILE} ] then echo -n ""; #echo "${PID_FILE} exist!" else echo "${PID_FILE} not exist!" fi PID=$(trim `cat $PID_FILE`) RUN_PID=$(ps ax |grep ${EXE_FILE} |grep -v grep|awk '{print $1}') if [ ${PID} -eq ${RUN_PID} ] then echo " * ${EXE_NAME}(${EXE_FILE}:${PID})"; else echo " * ${EXE_NAME}(${EXE_FILE}:Dead)"; fi EXE_NAME="질의어 처리기 관리데몬" EXE_FILE="QP_MGR" PID_FILE="${RSS_ROOT}/logs/qp_mgr.pid" if [ -f ${PID_FILE} ] then echo -n ""; #echo "${PID_FILE} exist!" else echo "${PID_FILE} not exist!" fi PID=$(trim `cat $PID_FILE`) RUN_PID=$(ps ax |grep ${EXE_FILE} |grep -v grep|awk '{print $1}') if [ ${PID} -eq ${RUN_PID} ] then echo " * ${EXE_NAME}(${EXE_FILE}:${PID})"; else echo " * ${EXE_NAME}(${EXE_FILE}:Dead)"; fi EXE_NAME="질의어 처리기" EXE_FILE="QuerySvr" PID_FILE="${RSS_ROOT}/logs/1.pid" if [ -f ${PID_FILE} ] then echo -n ""; #echo "${PID_FILE} exist!" else echo "${PID_FILE} not exist!" fi PID=$(trim `cat $PID_FILE`) RUN_PID=$(ps ax |grep ${EXE_FILE} |grep -v grep|awk '{print $1}') if [ ${PID} -eq ${RUN_PID} ] then echo " * ${EXE_NAME}(${EXE_FILE}:${PID})"; else echo " * ${EXE_NAME}(${EXE_FILE}:Dead)"; fi EXE_NAME="스케줄러" EXE_FILE="RSS_DAEMON" PID_FILE="${RSS_ROOT}/logs/rssd.pid" if [ -f ${PID_FILE} ] then echo -n ""; #echo "${PID_FILE} exist!" else echo "${PID_FILE} not exist!" fi PID=$(trim `cat $PID_FILE`) RUN_PID=$(ps ax |grep ${EXE_FILE} |grep -v grep|awk '{print $1}') if [ ${PID} -eq ${RUN_PID} ] then echo " * ${EXE_NAME}(${EXE_FILE}:${PID})"; else echo " * ${EXE_NAME}(${EXE_FILE}:Dead)"; fi EXE_NAME="관리자 서비스" EXE_FILE="rssAdmMgr" PID_FILE="${RSS_ROOT}/logs/rssAdmMgr.pid" if [ -f ${PID_FILE} ] then echo -n ""; #echo "${PID_FILE} exist!" else echo "${PID_FILE} not exist!" fi PID=$(trim `cat $PID_FILE`) RUN_PID=$(ps ax |grep ${EXE_FILE} |grep -v grep|awk '{print $1}') if [ ${PID} -eq ${RUN_PID} ] then echo " * ${EXE_NAME}(${EXE_FILE}:${PID})"; else echo " * ${EXE_NAME}(${EXE_FILE}:Dead)"; fi EXE_NAME="부가기능 서비스" EXE_FILE="org.h2.tools.Server" PID_FILE="${RSS_ROOT}/logs/db.pid" RUN_PID=$(ps ax |grep ${EXE_FILE} |grep -v grep|awk '{print $1}') #echo ${RUN_PID} if [ "" != "${RUN_PID}" ] then echo " * ${EXE_NAME}(${EXE_FILE}:${RUN_PID})"; else echo " * ${EXE_NAME}(${EXE_FILE}:Dead)"; fi EXE_NAME="검색어 자동완성" EXE_FILE="AutoCompleteServer.jar" PID_FILE="${RSS_ROOT}/logs/AutoComplete.pid" RUN_PID=$(ps ax |grep ${EXE_FILE} |grep -v grep|awk '{print $1}') #echo ${RUN_PID} if [ "" != "${RUN_PID}" ] then echo " * ${EXE_NAME}(${EXE_FILE}:${RUN_PID})"; else echo " * ${EXE_NAME}(${EXE_FILE}:Dead)"; fi echo -e "\n\n";
backup_daily.sh #!/bin/sh datetime=$(date +%Y%m%d) datetimeAgo=`date +%Y%m%d --date '30 days ago'` echo "cd /app/search/RSA/bin" cd /app/search/RSA/bin echo "./RssConfBackup /app/search/RSA" ./RssConfBackup /app/search/RSA 1>/dev/null echo "cd /app/search/RSA/backup/$datetime" cd /app/search/RSA/backup/$datetime #echo "mysqldump -u search -psearch12#$ AD > AD_$datetime.sql" #mysqldump -u search -psearch12#$ AD > AD_$datetime.sql echo "cd .." cd .. echo "tar cvf ./hrd176_$datetime.tar.gz ./$datetime" tar cfz ./hrd176_$datetime.tar.gz ./$datetime #echo "cp -f ./hrd176_$datetime.tar.gz /data/backup" #cp -f ./hrd176_$datetime.tar.gz /data/backup/ #echo "rm -rf ./hrd176_$datetime" #rm -rf ./$datetime echo "rm -rf ./hrd176_$datetimeAgo.tar.gz" rm -rf ./hrd176_$datetimeAgo.tar.gz #echo "rm -rf /data/backup/hrd176_$datetimeAgo.tar.gz" #rm -rf /data/backup/hrd176_$datetimeAgo.tar.gz #echo "cp -f /app/search/RSA/bin/html/js/* /data/bin/html/js" #cp -f /app/search/RSA/bin/html/js/* /data/bin/html/js echo "cp -Rf /app/search/RSA/conf/* /data/conf" #cp -Rf /app/search/RSA/conf/* /data/conf #echo "cp -f /app/search/RSA/logs/front/search_log/logAnal.out /data/logs/front/search_log" #cp -f /app/search/RSA/logs/front/search_log/logAnal.out /data/logs/front/search_log #echo "cp -f /app/search/RSA/logs/front/statistics_log/favor* /data/logs/front/statistics_log" #cp -f /app/search/RSA/logs/front/statistics_log/favor* /data/logs/front/statistics_log
backup_lmonthly.sh #!/bin/sh datetime=$(date +%Y%m%d) datemonthAgo=`date +%Y%m --date '150 days ago'` datemonth=$(date +%Y%m) echo "cd /app/search/RSA/backup" cd /app/search/RSA/backup echo "cp hrd176_$datetime.tar.gz hrd176_$datemonth.tar.gz" cp hrd176_$datetime.tar.gz hrd176_$datemonth.tar.gz 1>/dev/null 2>/dev/null echo "rm -rf hrd176_$datemonthAgo.tar.gz" rm -rf hrd176_$datetimeAgo.tar.gz
crontab 내용 # Recommend Dictionary update 0 5 * * * /app/search/RSA/bin/acsctl.sh restart # Real-time favorite keyword 0 * * * * /app/search/RSA/bin/realRank.sh # # backup script #30 6 * * * /app/search/RSA/bin/backup_ldaily.sh 0 9 * * 7 /app/search/RSA/bin/apispider/apiSpider.sh 0 7 1 * * /app/search/RSA/bin/backup_lmonthly.sh