Tomcat NT버전 JAVA_PATH강제로 잡기

Posted 2010/01/26 16:17 by 애플자라
D:\app\Tomcat5\Catalina.bat

SET JAVA_HOME=E:/amail/app/java14
SET JAVA_OPTS=%JAVA_OPTS% -Xmx512m

크리에이티브 커먼즈 라이선스
Creative Commons License

Tag : java, tomcat

find grep 파일명 찾기

Posted 2010/01/05 19:23 by 애플자라
find . -name "*.jsp" | xargs grep -n "smssend"

jsp파일중에 smssend가 들어가 있는 파일 찾기
크리에이티브 커먼즈 라이선스
Creative Commons License

Tag : find, grep

Apache,Tomcat mod_jk연동시 linsting 보이는 파일 처리

Posted 2009/12/08 11:32 by 애플자라

http://ApacheIP:80/web-inf/web.xml 파일 안보이기


1) 웹 서버 혹은 웹 어플리케이션 서버에서 디렉토리 인덱싱 기능을 비활성화 시킨다.

        [tomcat의 예제]

        <!--web.xml-->
           <init-param>
                <param-name>listings</param-name>
                <param-value>false</param-value>
           </init-param>

        [apache의 예제]

        <!--httpd.conf-->

#
# KeepAlive: Whether or not to allow persistent connections (more than
# one request per connection). Set to "Off" to deactivate.
#
KeepAlive Off

#2009.12.08 Namha
Options IncludesNoExec FollowSymLinks
#Options FollowSymLinks MultiViews
# The Options directive is both complicated and important.  Please see
# http://httpd.apache.org/docs/2.0/mod/core.html#options
# for more information.
#
#    Options FollowSymLinks

Alias /icons/ "D:/Amail/app/Apache2/icons/"

<Directory "D:/Amail/app/Apache2/icons">
    Options MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

<Directory "D:/Amail/ems52/market/ems/WEB-INF">
    Options MultiViews
    AllowOverride None
    Order allow,deny
    Deny from all
    Allow from 88.10.1
</Directory>

<Directory "D:/Amail/app/Apache2/manual">
#2009.12.08 Namha
#   Options Indexes
    AllowOverride None
    Order allow,deny
    Allow from all

    <Files *.html>
        SetHandler type-map
    </Files>

    SetEnvIf Request_URI ^/manual/(de|en|es|fr|ja|ko|ru)/ prefer-language=$1
    RedirectMatch 301 ^/manual(?:/(de|en|es|fr|ja|ko|ru)){2,}(/.*)?$ /manual/$1$2
</Directory>

#
# AddHandler allows you to map certain file extensions to "handlers":
# actions unrelated to filetype. These can be either built into the server
# or added with the Action directive (see below)
#
# To use CGI scripts outside of ScriptAliased directories:
# (You will also need to add "ExecCGI" to the "Options" directive.)
#
AddHandler cgi-script .cgi

<Directory "/usr/local/apache/htdocs"> 
#
#
# This may also be "None", "All", or any combination of "Indexes",
# "Includes", "FollowSymLinks", "ExecCGI", or "MultiViews".
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#

수전전    Options Indexes FollowSymLinks MultiViews
수정후    Options FollowSymLinks MultiViews

#
# This controls which options the .htaccess files in directories can
# override. Can also be "All", or any combination of "Options", "FileInfo",
# "AuthConfig", and "Limit"

</Directory>

     2) 웹 소스가 위치한 웹 디렉토리에서 임시/백업 파일 및 설치 파일의 존재여부를 조사하여 이를 삭제한다.

     3) 웹 서버나 웹 어플리케이션 서버 설치시 자동 생성되는 파일 중 외부에 정보를 노출 할 수 있는 메뉴얼 파일, 샘플등을 조사하여 이를 삭제한다.

크리에이티브 커먼즈 라이선스
Creative Commons License

Tag : apache, linsting, mod_jk, tomcat

HTML index 포워딩

Posted 2009/11/28 18:59 by 애플자라

<html>
<head>
<META HTTP-EQUIV="Refresh" Content="0; URL=http://www.amail.co.kr">
</head>
<body>
This page will forward to http://www.amail.co.kr in three seconds.<p>
Please update your links.
</body>
</html>
크리에이티브 커먼즈 라이선스
Creative Commons License

Tag : html, 포워딩

주민번호 OR 사업자등록번호 짤라서 ***붙이기

Posted 2009/11/11 00:40 by 애플자라

public class Test {

 public static final String getJumin(String str) {

  String str1 = str;

   if( str1 == null){
    return "Number is null";
   }else if(str1.length() == 10){
    return str1.substring(0, 3) + "-" + str1.substring(3, 5) + "-" + str1.substring(5, 6) +"****";
   }else if(str1.length() == 13){
    return str1.substring(0, 6) + "-" + str1.substring(6, 7)+ "******";
   }else{
    return "wrong number";
   }
  }
  public static void main(String [] args){
   //String jumin_num = getJumin("8211061151234");
   String jumin_num = getJumin("1168169356");
   System.out.println("주민 번호: "+jumin_num);
  }
}


크리에이티브 커먼즈 라이선스
Creative Commons License

Tag : 사업자등록번호, 주민번호

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />

만 넣어주면 강제적으로 IE7 호환모드로 나온답니다. 기존사이트가 ie8에서 망가져서 나온다던지 하는 분들은
윈도 7이 ie8 이 기본이라서 이젠 이거 필수적으로 넣어줘야겠네요.

추가적으로..
서버단의 HTTP Header수정이 가능하다면
"X-UA-Compatible"의 헤더값으로 "IE=EmulateIE7"하면 본문의 메타태그 없이 호환모드로 웹페이지가 렌더링됩니다.

또한 IIS7.0 혹은 IIS7.5, 그 이상의 IIS버젼에 대해서
ASP.NET의 web.config에 아래처럼 코드를 구성하여도 됩니다.

<?xml version="1.0" encoding="utf-8"?>
<configuration>
 <system.webServer> 
  <httpProtocol> 
   <customHeaders>   
    
<add name="X-UA-Compatible" value="IE=EmulateIE7">
   </customHeaders>
  </httpProtocol>
 </system.webServer>
</configuration>

영어긴하지만
아래의 페이지에서 자세히(? - 라고 믿고싶은) 나와 있습니다.

http://blogs.msdn.com/ie/archive/2008/06/10/introducing-ie-emulateie7.aspxhttp://blogs.msdn.com/ie/archive/2008/06/10/introducing-ie-emulateie7.aspx

참조 - http://www.miniwini.com/miniwinis/bbs/index.php?bid=share&mode=read&id=7971

크리에이티브 커먼즈 라이선스
Creative Commons License

Tag : IE7, IE8, 호환

[ORACLE] 구분자_LIST형_맵핑형_조합형쿼리

Posted 2009/11/04 18:10 by 애플자라

* TB_INST_INPUT테이블에 SUBS_VALUE 데이터가 |구분자로 값이 들어오는 경우

-- SUBS_VALUE 컬럼의 데이터를 | 구분자로 짤라 각각 매핍변수로 선언

SELECT SUB1,SUB2,SUB3,SUB4,SUB5,SUB6,SUB7,SUB8,SUB9,SUB10,SUB11,SUB12,SUB13,SUB14,
SUB15
    FROM(SELECT
            MAX(DECODE(rowno,1,aa)) SUB1
           ,MAX(DECODE(rowno,2,aa)) SUB2
           ,MAX(DECODE(rowno,3,aa)) SUB3
           ,MAX(DECODE(rowno,4,aa)) SUB4
           ,MAX(DECODE(rowno,5,aa)) SUB5
           ,MAX(DECODE(rowno,6,aa)) SUB6
           ,MAX(DECODE(rowno,7,aa)) SUB7
           ,MAX(DECODE(rowno,8,aa)) SUB8
           ,MAX(DECODE(rowno,9,aa)) SUB9
           ,MAX(DECODE(rowno,10,aa)) SUB10
           ,MAX(DECODE(rowno,11,aa)) SUB11
           ,MAX(DECODE(rowno,12,aa)) SUB12
           ,MAX(DECODE(rowno,13,aa)) SUB13
           ,MAX(DECODE(rowno,14,aa)) SUB14
           ,MAX(DECODE(rowno,15,aa)) SUB15
        FROM(
             SELECT SUBSTR( RCVDATA,
                    INSTR (RCVDATA, '|', 1, LEVEL) + 1,
                    INSTR (RCVDATA, '|', 1, LEVEL + 1) -
                    INSTR (RCVDATA, '|', 1, LEVEL) - 1 ) aa,
                    ROWNUM AS rowno
               FROM (SELECT '|' || SUBS_VALUE ||'|' RCVDATA
                           ,ROWNUM
                       FROM TB_INST_INPUT
                       --WHERE INSTID = '@{EMS_M_ID}'
                       )
                    CONNECT BY LEVEL<= LENGTH(RCVDATA) -
                    LENGTH(REPLACE(RCVDATA, '|')) - 1
        )
        WHERE ROWNUM <= '15'
    )
WHERE ROWNUM = 1


-- SUBS_VALUE 컬럼의 데이터를 | 구분자로 짤라 한개의 데이터로 조합


SELECT a1||a2||a3||a4||a5||a6||a7||a8||a9||a10||a11||a12||a13||a14  totaldata
    FROM(SELECT MAX(DECODE(rowno,1,aa)) a1
           ,MAX(DECODE(rowno,2,aa)) a2
           ,MAX(DECODE(rowno,3,aa)) a3
           ,MAX(DECODE(rowno,4,aa)) a4
           ,MAX(DECODE(rowno,5,aa)) a5
           ,MAX(DECODE(rowno,6,aa)) a6
           ,MAX(DECODE(rowno,7,aa)) a7
           ,MAX(DECODE(rowno,8,aa)) A8
           ,MAX(DECODE(rowno,9,aa)) a9
           ,MAX(DECODE(rowno,10,aa)) a10
           ,MAX(DECODE(rowno,11,aa)) a11
           ,MAX(DECODE(rowno,12,aa)) a12
           ,MAX(DECODE(rowno,13,aa)) a13
           ,MAX(DECODE(rowno,14,aa)) a14
        FROM(SELECT SUBSTR( RCVDATA,
                    INSTR (RCVDATA, '|', 1, LEVEL) + 1,
                    INSTR (RCVDATA, '|', 1, LEVEL + 1) -
                    INSTR (RCVDATA, '|', 1, LEVEL) - 1 ) aa
                    ,ROWNUM AS rowno
               FROM (SELECT '|' || SUBS_VALUE || '|' RCVDATA
                           ,ROWNUM
                       FROM TB_INST_INPUT)
                    CONNECT BY LEVEL<= LENGTH(RCVDATA) -
                    LENGTH(REPLACE(RCVDATA, '|')) - 1)
    WHERE ROWNUM <= '14'
    )
   
   
-- SUBS_VALUE 컬럼의 데이터를 | 구분자로 짤라 리스트 데이터로 조합   

SELECT SUBSTR( RCVDATA,
INSTR (RCVDATA, '|', 1, LEVEL) + 1,
INSTR (RCVDATA, '|', 1, LEVEL + 1) -
INSTR (RCVDATA, '|', 1, LEVEL) - 1 ) aa
FROM (SELECT '|' || SUBS_VALUE || '|' RCVDATA FROM TB_INST_INPUT)
CONNECT BY LEVEL<= LENGTH(RCVDATA) -
LENGTH(REPLACE(RCVDATA, '|')) - 1;

참조 - 이동준형 마음ㅋ

크리에이티브 커먼즈 라이선스
Creative Commons License

Tag : DECODE, instr, length, max, Oracle, Rownum, substr, 구분자

[Linux] 계정,그룹만들기

Posted 2009/10/05 19:53 by 애플자라
서버 접근후 /data4 폴더를 만들고 solution1 계정, solution1 그룹을 줘보자.

cd mkdir data4 // 폴더생성

vi /etc/passwd // 계정과 그룹이 있는지 검사

groupadd solution1 // 그룹생성

useradd -g solution1 -d /data4 solution1 // user에 지정폴더와 그룹을 준다

passwd solution1 // 패스워드 생성

su - solution1 //확인

[solution1@firststep data4]$ pwd
/data4
[solution1@firststep data4]$ ls -al
total 32
drwxr-xr-x    3 solution1 solution1     4096 Oct  5 14:52 .
drwxr-xr-x   26 root     root         4096 Oct  5 14:30 ..
-rw-------    1 solution1 solution1      124 Oct  5 14:53 .bash_history
-rw-r--r--    1 solution1 solution1       24 Oct  5 14:33 .bash_logout
-rw-r--r--    1 solution1 solution1      191 Oct  5 14:33 .bash_profile
-rw-r--r--    1 solution1 solution1      124 Oct  5 14:33 .bashrc
-rw-r--r--    1 solution1 solution1      120 Oct  5 14:33 .gtkrc
drwxr-xr-x    3 solution1 solution1     4096 Oct  5 14:33 .kde
크리에이티브 커먼즈 라이선스
Creative Commons License

Tag : Linux, 계정, 권한, 그룹, 폴더생성

[Unix,Linux] Crontab

Posted 2009/10/05 19:48 by 애플자라

root권한으로

crontab -e 등록&수정
crontab -l 확인

vi /var/log/cron 크론로그 확인


#!/bin/sh

#날짜 디렉토리 찾기
Year=`date +"%Y"`
Mon=`date +"%m"`
Day=`date +"%d"`


# 로그파일들을 당일분만 남겨놓고 나머지는 삭제한다.

#/usr/bin/find /data2/namha/ems51/auto/tmp/$Year/$Mon/. -name '??' -mtime +1 -exec /bin/rm  -rf {} \;
#/usr/bin/find /data2/namha/ems51/auto/$Year/$Mon/. -name '??' -cmin +720 -exec /bin/rm  -rf {} \;
/usr/bin/find /data2/namha/ems51/auto/agent_log/ -name '??' -mtime +7 -exec /bin/rm  -rf {} \;
/usr/bin/find /data2/namha/ems51/auto/tmp/ -name '??' -mtime +14 -exec /bin/rm  -rf {} \;
/usr/bin/find /data2/namha/ems51/auto/log/ -name 'send_*' -mtime +30 -exec /bin/rm  -rf {} \;
/usr/bin/find /data2/namha/ems51/auto/log_process/ -name 'back_*' -mtime +30 -exec /bin/rm  -rf {} \;
/usr/bin/find /data2/namha/ems51/auto/trace/ -name '??' -mtime +14 -exec /bin/rm  -rf {} \;
/usr/bin/find /data2/namha/ems51/jupiter/agent_log/ -name '??' -mtime +7 -exec /bin/rm  -rf {} \;
/usr/bin/find /data2/namha/ems51/jupiter/log/ -name 'send_*' -mtime +30 -exec /bin/rm  -rf {} \;
/usr/bin/find /data2/namha/ems51/jupiter/log_process/ -name 'back_*' -mtime +30 -exec /bin/rm  -rf {} \;
/usr/bin/find /data2/namha/ems51/jupiter/trace/$Year/$Mon/. -name '??' -mtime +14 -exec /bin/rm  -rf {} \;
/usr/bin/find /data2/namha/ems51/sms_mass/agent_log/ -name 'db_*' -mtime +7 -exec /bin/rm  -rf {} \;
/usr/bin/find /data2/namha/ems51/sms_mass/trace/ -name 'send_*' -mtime +14 -exec /bin/rm  -rf {} \;
/usr/bin/find /data2/namha/ems51/sms_auto/agent_log/ -name '??' -mtime +7 -exec /bin/rm  -rf {} \;
/usr/bin/find /data2/namha/ems51/sms_auto/trace/ -name '??' -mtime +14 -exec /bin/rm  -rf {} \;


fine    : 파일을 찾는다

/export/home/tester   : /export/home/tester 디렉토리 이하에서 찾는다.
-mtime +30 : 파일 변경된 날짜가 30일 이상인 파일을 찾는다
-print : 파일을 찾아서 화면에 보여준다.
-exec : -print에 의해 출력되는 파일을 뒤에 오는 명령어의 인수로 입력된다.
rm -f  : -exec에 의해 받은 인수파일을 삭제한다.
{} \; - exec끝을 의미한다.
전체적인 의미는 /export/home/tester 디렉토리에서 파일내용이 변경된지 30일이 지난 파일을 찾아서 삭제하는 명령입니다.
위 명령어를 crontab에 등록 시킨후 매일 한번씩 실행 시키면 될것 같습니다.
보다 자세한 내용은 man find를 이용해 보세요

일정 주기로 처리하는 배치 프로세스의 경우 시스템 crontab에 등록 하여 자동화 시킬 수 있다.


======== 아래것은 ========

* crontab 명령

$ crontab [-e | -l | -r]


-e: 등록된 crontab을 편집한다.
-l: 등록된 crontab명령을 출력한다.
-r: 등록된 crontab을 삭제한다.


 * crontab 편집

$ crontab -e


위 명령을 입력하면 vi 환경에서 crontab 편집이 된다

20 13 * * 7 /home/batch/script/backup.sh
0 6 1 3 * /home/batch/script/logdel.sh
0 0 * * * /home/batch/script/daybatch.sh
30 * * * * /home/batch/script/hourbatch.sh
0,5,10,15,20,25,30,35,40,45,50,55 * * * * /home/batch/script/checksys.sh

위 내용은 vi 환경에서 crontab 샘플이다.
구분자는 공백으로 앞에서 부터 분(0~59), 시(0~23), 일(1~31), 월(1~12), 주(1:월~7:일),  실행명령을 의미한다.  ","(컴마)를 구분자로 복수 시간을 지정할 수 있다.

backup.sh는 매주 일요일 13:20에 기상시간을 알리며 실행된다.
logdel.sh는 매년 3월 1일 06:00에 삼일절을 기념으로 실행된다.
daybatch.sh는 매일 00시 00분에 퇴근시간을 알리며 실행된다.
hourbatch.sh는 매시간 30분에 실행된다.
checksys.sh는 5분마다 실행된다.


* crontab 사용시 주의 사항

계정을 정해주지 않으면 root권한으로 실행된다.

crontab에 아래의 프로세스가 등록되어 있다고 가정하자.
0 * * * * /home/batch/bin/run_hourbatch

run_hourbatch는 오라클을 연동하는 Pro-C로 만들어져 있다고 가정하자.
이 프로세스는 1시간 간격으로 수행되는 배치 프로세스이다.

하지만, 이렇게 프로세스를 직접 실행을 하면 수행에 실패한다.
Error while trying to retrieve text for error ORA-12154
로그를 확인해 보면 위와 같은 메시지와 함께 DB 커넥션을 하지 못한다.

이는 crontab에 등록된 프로세스가 root권한으로 실행되면서 오라클 환경변수를 읽는데 실패했기 때문에 발생하는 것이다.


참조 - http://newtype.tistory.com/tag/crontab



크리에이티브 커먼즈 라이선스
Creative Commons License

Tag : crontab, Linux, UNIX

[ORACLE] 실수로 지운 데이터 살리기

Posted 2009/09/11 19:19 by 애플자라

예 kfm08ot1이라는 테이블의 bnk_cd ='04' 인 데이터를 실수로 삭제를 했다.

commit; 도 완료된 상태라면..

 

앞이 막막할것이다.

이럴땐 이렇게 데이터를 불러보자..

 

SELECT * FROM KFM08OT1
 as of timestamp ( systimestamp - interval '10' minute)
where bnk_cd = '04'
조회후  파일을 txt나 엑셀로 저장후..

다시 임포트 해야 합니다.

 

아래와같은 방법으로 해보니 된다....ㅋㅋ 엑셀로 임포트 작업안해도됨!!

INSERT INTO EMP (SELECT *
        FROM EMP
     AS OF TIMESTAMP ( SYSTIMESTAMP - INTERVAL '1' MINUTE))

출처 - http://okjsp.pe.kr/seq/99832
크리에이티브 커먼즈 라이선스
Creative Commons License

Tag : Oracle, 데이터 살리기

« PREV : 1 : 2 : 3 : 4 : 5 : ... 33 : NEXT »