2012-08-29

CentOS](리눅스) 네트워크 설정

출처 : http://blog.bagesoft.com/696
CentOS(리눅스) 네트워크 설정
/etc/sysconfig/network
/etc/host.conf
/etc/hosts
/etc/resolv.conf
/etc/sysconfig/network-scripts/ifcfg-*
/etc/sysconfig/network-scripts/route-*
/etc/services
/etc/protocols

/etc/sysconfig/network

로컬 시스템의 호스트 네임을 포함하여 네트워크의 사용 유무를 선택. 호스트 네임을 변경하고자 할 경우에는 /etc/hosts 파일을 함께 수정.

[root@localhost ~]# cat /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=localhost.localdomain
[root@localhost ~]#
NETWORKING : 네크워크의 사용 유무 결정, HOSTNAME : 호스트 네임 정의
주의할 점은 /etc/sysconfig/network에서 정의한 호스트네임은 /etc/hosts에도 정의되어야 함.

/etc/host.conf
네트워크에 연결되어 있는 호스트를 찾고자 할 경우 /etc/hosts 파일을 참고할지 네임서버에 질의를 할지의 순서를 결정. 기본적으로 /etc/hosts 파일을 먼저 검색하도록 설정되어 있음.
 [root@localhost ~]# cat /etc/host.conf
order hosts,bind
 [root@localhost ~]#
/etc/hosts
네트워크에 연결되어 있는 시스템들에 대한 IPv4 주소와 호스트 네임을 정의하고 있음.
 [root@localhost ~]# cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1  localhost.localdomain localhost
::1  localhost6.localdomain6 localhost6
 [root@localhost ~]#
IP 주소
호스트 네임
별칭
 127.0.0.1
localhost.localdomain
localhost
/etc/hosts 파일은 IP주소, 호스트 네임, 별칭으로 구성되어 있음.

/etc/resolv.conf
네임서버를 사용하도록 클라이언트 시스템을 설정할 경우에는 먼저 어느 네임서버를 사용할지, 그리고 어떻게 사용할지를 지정해 줌. domain, search, nameserver 지시자를 사용할 수 있음.
domain e-zis.co.kr
domain 지시자는 기본적으로 확인할 로컬 도메인 이름을 resolver에게 지시함. 위와 같이 지정하면 ping www라고 실행시, resolver은 www뒤에 e-zis.co.kr을 추가하여 www.e-zis.co.kr에 ping을 시도함.
search e-zis.co.kr lyzzang.co.kr rockplace.co.kr
search 지시자를 사용하여 도메인들을 목록을 지정할 수도 있음. 위의 예에서 보면 ping www실행시 resolver는 3개의 도메인을 순서대로 찾으려고 시도하게 됨.
nameserver 127.0.0.1
nameserver 192.168.100.201
nameserver 168.126.63.1
로컬 시스템이 사용할 네임서버를 nameserver 지시자를 이용하여 지정해 줌.
=======================
http://www.jopenbusiness.com/tc/oss/entry/CentOS-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EC%84%A4%EC%A0%95

CentOS Network 설정

CentOS에 있는 네트워크 카드명을 확인 한다.

  • ifconfig -a : lo, eth0, eth1 등의 이름을 확인할 수 있다.
  • /etc/sysconfig/network-scripts/ifcfg-eth0 에 네트워크 카드를 위한 설정이 저장 된다.
          #--- eth0 네트워크 카드에 고정 IP 설정시

          DEVICE=eth0

          BOOTPROTO=none

          HWADDR=00:24:1D:71:21:5C

          ONBOOT=yes

          NETMASK=255.255.255.0

          IPADDR=203.261.27.22

          GATEWAY=203.261.27.1

          TYPE=Ethernet

          USERCTL=no

          IPV6INIT=no

          PEERDNS=yes

          

          #--- eth0 네트워크 카드에 DHCP 설정시

          DEVICE=eth0

          BOOTPROTO=dhcp

          HWADDR=00:24:1D:71:21:5C

          ONBOOT=yes
          

  • /etc/sysconfig/network
          NETWORKING=yes

          NETWORKING_IPV6=no

          HOSTNAME=localhost.localdomain   #--- 호스트명과 도메인명 지정

          # HOSTNAME=localhost

          # DOMAINNAME=localdomain
          

  • /etc/hosts #--- 호스트명 지정
          127.0.0.1               localhost.localdomain localhost
          

  • /etc/resolv.conf #--- DNS를 위한 네임서버를 지정 한다.
          search

          nameserver 164.124.101.2  #--- 데이콤에서 사용하는 nameserver IP

          nameserver 168.126.63.1   #--- 코넷에서 사용하는 nameserver IP
          

  • /etc/host.conf
          #--- 호스트명 찾는 우선 순위 지정, hosts. /etc/hosts, bind. DNS 서버

          order hosts,bind   #--- /etc/hosts 파일에서 찾고 없을 경우 DNS 서버에서 찾는다.
          

  • Network 설정 GUI 명령어
          system-config-network
          

  • Network 설정이 마무리 되면 network 서비스를 재기동 한다.
          service  network  restart
          
*** 참고 문헌 ***
오픈소스 비즈니스 컨설팅 - Network

Linux] root password 분실시 방법

Linux root password 분실시 방법



부트 메니져의 종류에 따라.


1.LILO 일 경우...

리눅스 부팅시.. Ctrl+X
1) 'LILO boot:' 라고 나타날때 'linux single'라고 입력하여 단일 사용자 모드로 부팅
합니다.

2) '/etc/' 디렉토리의 'passwd'파일을 편집해 주면 됩니다.
#vi /etc/passwd
...
root:R#tr443VEW43^@bd:0:0:root/root:/bin/bash
...

위와 같이 되어 있는 부분의 두번째':'콜론 사이에 있는 것이 암호이므로
아래와 같이 삭제하여 저장 하시면 됩니다.

root::0:0:root/root:/bin/bash

3) 'shadow' 라는 패스워드 방식을 사용할경우에는 '/etc/shadow'라는 파일을 편집해
주면 됩니다.
#vi /etc/shadow
root:$2$tbRTB$43enb5546nRRNNS46B5REB^%&N:10788:0:99999:7:-1:-1:134538844

위의 것을 아래처럼 변경해 저장합니다.
root::10788:0:99999:7:-1:-1:134538844

4)이렇게 편집한후 재부팅후 패스워드 없이 root로 로그인 할수 있습니다..

로그인 후 'passwd'명령으로 패스워드를 재지정 하면 됩니다...


※싱글모드에서.. 'passwd'명령어로. 설정 하셔도 됩니다...ㅋㅋㅋ^^


2. Grub 일경우....

1) grub(부트로더)의 멀티 부팅 선택 화면에서 Linux 에 커서를 옮긴 후 E 키를 누르면

root (hd0,1)
kernel /boot/vmlinuz-2.2.17-3mz root=/dev/hda2 vga=769

위의 두라인이 나타나는데 Kernel로 시작되는 라인에 커서를 옮긴후 다시 E 키를 누르면
grub edit> Kernel /boot/vmlinuz-2.2.17-3mz root=/dev/had2 vga=769 라인 끝에 커서가
깜빡이며, 입력모드로 바뀝니다.

라인끝의 vga=769 에서 한칸 띄우고, single 을 입력후

(예) kernel /boot/vmlinuz-2.2.17-3mz root=/dev/hda2 vga=769 single

엔터 키를 누르면 그 이전 화면으로 돌아가는데 그 상태에서 B 키를 누르면 싱글로 부팅이
됩니다.

2) 비밀번호 변경

싱글로 부팅 후 passwd 를 치면 새로운 패스워드를 입력하라고 하는데 사용할 새로운
패스워드를 입력후 다시 한번 확인 입력을 한 후 사용하면 됩니다.

(예)$ passwd
New UNIX password: (사용할 새로운 패스워드 입력)
Retype new UNIX password: ( 사용할 새로운 패스워드를 다시한번 입력)

3) 비밀번호를 변경했지만 로긴이 계속 안될 경우.

비밀번호를 정확히 변경했는데도 로긴이 안될 경우는
vi /etc/passwd 을 열어 root:x:0:0:root:/root:/bin/bash 의 root 다음의 첫번째 : :
사이의 x 부분을 삭제후 저장하세여.

만약, shadow 파일이 있다면
vi /etc/shadow 부분을 열어 위와 같은 방법으로 해주시고 저장을 하면 됩니다

centos]CentOS 5.0에 subversion/svn 설치


출처 : http://tykim.wordpress.com/2007/06/04/centos-50%ec%97%90-subversionsvn-%ec%84%a4%ec%b9%98/

 

CentOS 5.0에 subversion/svn 설치

Filed under: System GuruIT — Peter Kim @
CentOS (RHEL 5.0)에 Subversion 1.4.3의 설치 Know-How를 공유한다.
대표적인 형상관리 서버로 CVS/CVSNT, Subversion등이 있다.
우선 순서는
  1) Subversion 설치
  2) Repository 생성
  3) Daemon 설정
  4) Client 사용
  5) 활용
으로 설명하려 한다.
1. 설치
    yum으로 의외로 쉽게 설치된다.
    #yum install subversion
    기본적으로 이렇게 설치하면 File System으로 관리할 수 있는 기본 패키지가 설치된다.
    Subversion으로 repository관리는 두가지로 File System 및 Berkeley DB를 선택 사용할 수 있다.
    Berkely DB를 사용하기 위해서는 http://www.oracle.com/technology/software/products/berkeley-db/db/index.html
에 서 설치하고 쓸 수 있는데.. 이곳저곳에서 관리 파일 용량이 많아지면 문제가 있다는 report가 있어 안전하고 
직관적(실제 물리적 foder/file구조로 관리할 수 있게끔 file system 방식으로만 쓰고자 한다.
2. Repository 생성
   1) Repository 생성
      우선 Root Repository를 생성해야 한다. (이유: 3.1) 참조)
      #mkdir /data1/svn
      #cd /data1/svn
      #svnadmin create –fs-type fsfs project
      이렇게하면 /data1/svn에 project directory 및 기본적으로 하위 디렉토리들이 만들어 진다.
      인증/보안을 위한 몇가지 옵션을 설정해 주어야 한다.
   2) 기본적인 환경 설정
       #vi /data1/svn/project/conf/svnserve.conf
            [general]
            anon-access = none
            auth-access = write
            password-db = passwd
            기본적으로 anonymous access 불가, 인증 성공한 사람만 write권한, 인증방식은 passwd 파일 방식


       #vi /data1/svn/project/conf/passwd

       [users]
        userid1=password1
        userid2=password2
       접속을 허용할 userid 및 password를 기재해주면 된다.


3. Daemon 설정
   기 제작한 project repository에 대한 file-system으로의 생성, 인증, password의 본적은 환경 설정은 마쳤고, 
   이제 subversion daemon을 실행하기 위한  시스템 환경 설정이 남았다.
   1) 환경 설정
       #vi /etc/rc.d/init.d/subversion 을 열어 17 줄의 SYSCONFIG 내용을 확인한다.
       SYSCONFIG=”/etc/sysconfig/subversion”
       #vi /etc/sysconfig/subversion
         OPTIONS=”–threads –root /data1/svn”
         이렇게 하여 svn의 root repository directory를 설정해 준다.
   2) 시스템 가동
        #/etc/rc.d/init.d/subversion start
       이렇게 하면 subversion이 daemon으로 동작하게 된다.
       환경 변수를 바꾸고 subversion을 restart해야한다면
        #/etc/rc.d/init.d/subversion restart
   3) Booting시 자동 실행
        #vi /etc/inittab
        우선 서버의 실행 Level을 확인해야 하는데  /etc/inittab의 18번째 줄 내용을 확인한다.
        id:5:initdefault:
        본 id와 initdefault사이의 값인 5값을 확인한다. (X11로 booting한다는 의미)
        #cd /etc/rc5.d
        #vi S99local
         /etc/rc.d/init.d/subversion start &  <== 데몬서비스로 실행.
        적당한 줄에 상기 내용을 추가한다.

4. Client 사용
    - http://blog.empas.com/mcchae/19118563 에 워낙 잘 설명이 되어 있어서 pass
5. 활용
    - 전체적으로 subversion으로 여러 사람의 협업을 통해 소스 형상 관리 및 Binary 관리등을 관리해야 하고, 
      프로젝트별 권한, Backup 및 Restore, 관리자 통계(오늘 어떤 파일/내용이 수정되었고, 누가 올렸고.. 등등) 
      여러가지  Tunning작업을 해야한다.
    - IT Project에서는 trac을 많이 쓰고 있고, 비슷한 형태로 http://oss.segetech.com/bugzilla-svn-wiki.html을 
      참고해도 될 것 같다.


centos]CentOS 4.4에서 Java설치하기



CentOS 4.4에서 Java설치하기

1.
Sun의 Downloads페이지에서 플랫폼에 맞는 파일(self-extracting file)을 다운로드받는다.
2.
jpackage-utils과 rpm-build패키지를 설치한다.
3.
jpackage-nonfree repository에서 java-1.5.0-sun패키지를 다운로드받는다.(yumdownloader 이용)
4.
다운받은 파일들을 /usr/src/redhat/SOURCES/ 로 옮기고, 패키지를 빌드한다.
setarch i586 rpmbuild –rebuild java-1.5.0-sun*
(플랫폼은 알아서 변경해주는 센스)
5.
설치한다.
만약 libXp 라이브러리가 없다는 에러가 발생하면 xorg-x11-deprecated-libs 패키지를 설치해준다.
ODBC관련 에러가 뜨면 unixODBC-devel 패키지를 설치해준다.
끝.
SUN에서 제공하는 RPM을 이용해도 되지만, 그 경우 패키지 업그레이드시 사라질 수도 있다고 한다.
믿거나 말거나. 속는셈치고 믿어보고 이렇게 설치했다. java-1.5.0-sun-compat 라는 패키지도
있던데 JPackage Java compatibility package for Sun’s JDK 라고 주석이 붙어있는걸 보니
SUN의 패키지를 설치하고 이걸 설치해도 될 것 같기는 함.

crontab 사용법







Crontab
cron등록하는 방법 순서대로 하면 됩니다.
1.whereis php 명령어로 php가 있는 곳의 위치를 확인한다.
2.crontab -e 명령어로 작업을 추가한다.
예)*/5 * * * * /usr/bin/php -q /var/www/html/test.php
5분마다 php를 이용해서 해당 위치의 파일을 실행시키는 거다.
3.test.php의 소스안에서는 include파일같은것은 실제 경로를 써준다.
4./etc/rc.d/init.d/crond restart
5.crontab -l 명령어로 제대로 등록이 되었는지 살펴본다.
6.tail /var/log/cron 명령어로 5분마다 제대로 실행이 되었는지 로그를 검사한다.

___________________________________________________________________________________________
 1. cron이란 :
   일정시간 마다 시스템에서 자동으로 실행 시키는 데몬입니다.
 2. cron 데몬의 실행과 종료
   실행 : /etc/rc.d/init.d/crond start
   종료 : /etc/rc.d/init.d/crond stop
 3. crond 설정
  크론(cron)의 설정은 /etc/crontab에서 합니다.
  옵션
  -e : 설정된 파일을 새롭게 편집
  -d : 등록된 내용을 삭제
  -l  : 현재 등록된 내용을 본다
  4. crontab 파일 형식
 ----------    ----------  ---------------------------------------------------
  필  드                 의  미           범  위
 ----------    ----------  ---------------------------------------------------
 첫 번째                      분              0-59
 두 번째                      시              0-23
 세 번째                      일              0-31
 네 번째                      월              1-12
 다섯 번째                  요일             0-7 (0 또는 7=일요일, 1=월, 2=화, ...)
 여섯 번째                명령어             실행할 명령을 한줄로 쓴다.
 ----------    ----------  ---------------------------------------------------
 
 - 모든 엔트리 필드는 공백으로 구분된다.
 - 한 줄당 하나의 명령 (두줄로 나눠서 표시할 수 없음)
 - # 으로 시작하는 줄은 실행하지 않는다.
 - '*'표시는 해당 필드의 모든 시간을 의미한다. - 3,5,7와 같이 콤마(,)로 구분하여 여러 시간대를 지정할 수 있다.
 - 2-10와 같이 하이픈(-)으로 시간 범위도 지정할 수 있다.
 - 2-10/3와 같이 하이픈(-)으로 시간 범위를 슬래쉬(/)로 시간 간격을 지정할 수 있다(2~10시까지 3시간 간격으로. 즉, 3, 6, 9시를 의미함).
crontab이란 예약된 작업을 실행하는 파일이다.
위치 :
/etc/crontab

옵션 :
crontab test1.sh(test1작업을 예약)
crontab -l (현재 걸려 있는 작업 목록 표시)
crontab -r (작업목록을 비움)
crontab -e (새로운 작업 입력,수정,삭제)
그럼 이제 등록할 파일에 대해 알아보자. 일반적으로 shell프로그래밍 한 파일을 넣으면 된다.
형식 :
[분] [시] [일] [월] [요일] [실행명령] [>|>>출력지정]
*/30 * * * * /usr/local/apache/htdocs2/start_cms2.sh > /dev/null
또는
30 * * * * /usr/local/apache/htdocs2/start_cms2.sh
(매 시간 30분마다 작업을 수행하고 결과는 출력하지 않는다)

45 */3 * * 1-5 /usr/local/apache/htdocs2/tart_cms.sh > /dev/console
(월~금요일 매 3시간 45분에 작업을 수행하고 결과는 화면에 출력한다)

* * * 3-5 * /usr/local/apache/htdocs2/tart_cms.sh >> /usr/local/apache/htdocs2/cms.log
(3월~5월까지 매시간 매분에 작업을 수행하고 결과는 cms.log파일에 추가한다)
여기서 주의할 점은 예약된 명령이 하나만 받아들여 지는데 이때문에 명령을 직접 넣지 않고 shell programming을 해주는 것이다.친구의 조언에 따르면 명령 && 명령 && 명령 이런 식도 먹힌다고 한다.

cron 사용법
linux]#vi /etc/crontab
분 시 날짜 달 요일 권한 command 형식으로 입력해줌...
ex) 05 * * * * root /home/html/update.php   -> 매시 5분에 update.php문 실행
ex) 05 15 * * * root /home/html/update.php   -> 매일 오후 3시 5분에 update.php문 실행
update.php
#!/usr/bin/php -q   (이건 리눅스에서 whereis php 해서 나오는 경로를 적어준다.) 
<?
 $conn=mysql_connect("localhost","user","password");
 mysql_select_db("edumeca",$conn);
 mysql_query("update tablename set updatefield=updatefield+1");
?>
update.php 의 실행권한을 준다.
linux]#chmod +x /root/home/html/update.php
이렇게 하면 지정한 시간에 php파일 실행...
php파일이 실행되었는지 볼려면

linux]#vi /var/log/cron

2012-08-23

Java] Syntax error on token "enum", invalid Expression

참조 URL ::: http://sunkyu.tistory.com/71690


enum 이라는 변수를 자바에서 선언을 하면 아래와 같은 에러가 뜨는 경우가 있다.
   -- Syntax error on token "enum", invalid Expression

이는 JDK 1.5 이상을 쓰면 생기는 에러.

enum이라는 변수명 자체가 JDK 1.5이상부터는 예약어로 등록이 되어 있어 생기는 문제.

따라서, 이를 해결하려면 enum을 다른 변수명을 사용하면 해결이 된다.

2012-08-22

centos]CentOS 4.4에서 Java설치하기





CentOS 4.4에서 Java설치하기

1. Sun의 Downloads페이지에서 플랫폼에 맞는 파일(self-extracting file)을 다운로드받는다.
2. jpackage-utils과 rpm-build패키지를 설치한다.
3. jpackage-nonfree repository에서 java-1.5.0-sun패키지를 다운로드받는다.(yumdownloader 이용)
4. 다운받은 파일들을 /usr/src/redhat/SOURCES/ 로 옮기고, 패키지를 빌드한다.
   setarch i586 rpmbuild –rebuild java-1.5.0-sun*
   (플랫폼은 알아서 변경해주는 센스)
5. 설치한다.
   만약 libXp 라이브러리가 없다는 에러가 발생하면 xorg-x11-deprecated-libs 패키지를 설치해준다.
   ODBC관련 에러가 뜨면 unixODBC-devel 패키지를 설치해준다.

끝.

SUN에서 제공하는 RPM을 이용해도 되지만, 그 경우 패키지 업그레이드시 사라질 수도 있다고 한다.
믿거나 말거나. 속는셈치고 믿어보고 이렇게 설치했다. java-1.5.0-sun-compat 라는 패키지도
있던데 JPackage Java compatibility package for Sun’s JDK 라고 주석이 붙어있는걸 보니
SUN의 패키지를 설치하고 이걸 설치해도 될 것 같기는 함.

출처:
http://fedoranews.org/mediawiki/index.php/JPackage_Java_for_FC4
http://www.fedorafaq.org/#java

centos] centos 5.0 설치하기

 출처 : http://www.howtoforge.com/perfect_setup_centos5.0

CentOS]centos45_oracle10gr2설치하기


이 문서는 http://supike.spaces.live.com/blog/cns!502FB505094D1443!377.entry 와 http://tykim.wordpress.com/2007/04/11/red-hat-rhel4에-oralcle-10g-r2-설치-intsall-howto 사이트를 참조하여 재구성 하였으며, 전체적으로는 http://tykim.wordpress.com/2007/04/11/red-hat-rhel4에-oralcle-10g-r2-설치-intsall-howto를 기반으로 하였 고, 단지 1가지 측면의 설치 방법을 다루고 있다. 
=============================================================================================
CentOS 4.5 에 Oralcle 10g R2 설치, Intsall HOWTO
Filed under: Syste m Guru — Peter Kim @ 수정 : journae
CentOS4.5(RedHat REHL4 clone) 에서 10g를 설치 가이드 자료가 많지 않아 기록차원으로 남긴다. 
0.개요   
1) 시스템 요구 사항 검증   
2) 디렉토리 생성   
3) 오라클 그룹 및 사용자 계정 생성   
4) Linux 커널 매개변수 설정   
5) Oracle계정 Shell Limit 설정   
6) Oracle 계정 환경 변수   
7) Oracle 설치   
Oracle 사용 
0. 전제 조건 OS 는 쉽게 구할 수 있는 Centos 4.5 를 사용했다. 처음에 Centos 5.0 으로 설치를 시도 했으나 gcc, glibc 등의 버전이 맞지 않아 4.5로 downgrade 한 후 다시 설치를 진행했다.
참고로, centos 설치도 GUI를 지원하는 관계로 설치가 예전보다 훨씬 편하다. 아직 윈도우 보다는 불편(?)하지만^^ 
1. 시스템 요구사항 검증
1) Kernel 버전 확인 하여 Kernel버전 및 Architecture(i386, x86_64등)을 확인    # uname -a
2) 설치 필요 패키지를 확인    
* gcc-3.4.3-9.EL4    
* make-3.80-5    
* binutils- 2.15.92.0.2-10.EL4     
* openmotif-2.1.30-11    
* setarch-1.6-1    
* compat-db-4.1.25-9
    - # rpm -q <패키지명> (ex:rpm -q binutils)으로 설치 여부 및 버전확인하여 최근 상위 본으로 설치한다.       특히 binutils는 최신본으로 설치할 것 (binutils를 상기 버전으로하면 중간에 skip가능한 오류가 하나 나옴)    
- 패키지의 설치는 RHN의 up2date 혹은 CentOS의 yum을 통해서 update하거나,      RPM repository 서비스 site를 이용하여 해당 RPM을 받아 직접 설치한다.    
- ex) yum install gcc … (package name)
- 참고로 yum을 사용해 본 결과 상당히 편함을 느꼈다. 
2. 오라클 그룹 및 사용자 계정 생성Oralce의 운영을 위해 필요한 계정/그룹을 설치한다. —————————————————————————————-
# /usr/sbi n/groupadd oracle
# /usr/sbin/groupadd dba
# /usr/sbin/useradd -m -g oracle -G dba oracle
# passwd oracle
—————————————————————————————-
3. 디렉토리 생성Oracle 10g (10.2.0.1.0) 설치에 필요한 디렉토리 및 권한을 설정한다. ————————————————————————————— -
# mkdir -p /u 01/app/oracle         (Oralce 프로그램 설치 폴더)
# mkdir -p /u02/ oradata      (Oracle 데이터 설치 폴더)
# chown -R oracle:oracle / u01/app/oracle / u02 / oradata
# chmod -R 775 / u01/app/oracle / u02 /oradata
—————————————————————————————-
4. Linux 커널 매개변수 설정Oracle 운영에 필요한 커널 매개변수를 아래와 같이 설정한다.—————————————————————————————-
# cat >> /etc/sysctl.conf <  > kernel.shmall = 2097152  > kernel.shmmax = 2147483648  > kernel.shmmni = 4096  > kernel.sem = 250 32000 100 128  > fs.file-max = 65536  > net.ipv4.ip_local_port_range = 1024 65000  > EOF# /sbin/sysctl -p—————————————————————————————-
아래와 같이 상기 커널 파라메터가 적용되었는지 확인 한다. 
—————————————————————————————-
# /sbin/sysctl -a | grep shmkernel.shmmni = 4096kernel.shmall = 2097152kernel.shmmax = 2147483648kernel.shm-use-bigpages = 0
# /sbi n/sysctl -a | grep semkernel.sem = 250        32000   100     128
# /sbin/sysctl -a | grep file-maxfs.file-max = 65536
# /sbin/sysctl -a | grep ip_local_port_rangenet.ipv4.ip_local_port_range = 1024     65000—————————————————————————————-
5. Oracle계정 Shell Limit 설정Oracle 계정의 shell limit을 아래와 같이 설정한다.
—————————————————————————————-
cat >> /etc/security/limits.conf
cat >> /etc/pam.d/login
6. Oracle 계정 환경 변수Bourn/Korn 쉘의 경우 ~oracle/.bash_profile 파일에 대해서 아래 내용을 추가 하도록 한다.
—————————————————————————————-
export ORACLE_BASE=/disk01/app/oracle                              
export ORACLE_SID=                     
* Note : SID를 orcl로 미리 설정하였음.
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0.1.0/db_1   
* Note : 설치 폴더를 미리 설정하였음.
export PATH=$PATH:$ORACLE_HOME/binexport LD_LIBRARY_PATH=$ORACLE_HOME/lib—————————————————————————————-
7. 시스템 Rebooting & Check Version 시스템을 Reboot 한다.
# vi etc/redhat-release (파일의 내용을 redhat-4 확인 / CentOS일 경우 인식못함으로 변경) 
위의 파일의 내용을 아래와 같이 변경하여 사용한다.
Red Hat Enterprise Linux As release 3 (Taroon) ”
8. Oracle 설치1) Oracle 해당 버전 download     
a. “http://otn.oracle.com/software/products/database/oracle10g/index.html” 에서         RHEL 4AS 64bit를 위해 x86-64bit인 “Oracle Database 10g Release 2 (10.2.0.1.0) for Linux x86-64″를 다운로드 받는다.        (받는 위치는 / u01/app/oracle 에 저장한다.)     
b. “unzip -d 10201_database_linux_x86_64.cpio.gz”하여 unzip을 해주고     
c. “cpio -idmv < 10201_database_linux_x86_64.cpio”를 통해서 묶음을 풀어준다.       (이러면 압축은 /u 01/app/oracle/database 에 풀린다)
** 실제 파일은 10201_database_linux32.zip 파일이 다운된다. 이 파일을 푸는 방법은 unzip 10201_database_linux32.zip 하면 현재 폴더에 database 밑에 쭈~욱 풀리게 된다.
2) oracle 계정으로 login 및 설치 명령
————————————————————————————— 
-$ cd /u 01/app/oracle/database$ ./runInstaller이때부터는 GUI 형태이므로 설명 생략 설치폴더는 / u01/app/oracle/product/10.2.0.1.0/db_1 으로 기재 
—————————————————————————————-
(RHEL4 운영체제에서 binutils, gcc, openmotif에대한 점검작업이 실패한 경우에는 경고 메시지를 무시하고 다음 단계로 진행할 것. )
9. Oracle 사용 확인 
1) Oracle Enterprise Manager 10g Database Control    
설치 후 안내화면에 데이터베이스 컨트롤 URL이 나오면 기록해 놓았다가 접속    
- http://ipaddress:port/em     
- User Name: SYS    
- Password: <설치과정에서 입력한 패스워드>    
- Connect As: SYSDBA
2) 데이터베이스 시작 및 중단
—————————————————————————————-
$ sqlplusSQL> shutdown immediate * Oracle instance 종료 
SQL> startup                           
* Oracle instance 시작 
—————————————————————————————-

CentOS]CentOS 일반 사용자 추가 방법



사용자 추가 작업
# useradd 추가할 사용자 id

# passwd 추가할 사용자 id
  비밀번호 입력

CentOS] CentOS 에서 한글 깨지는 문제 해결 방법

CentOS 4.2에서 한글 깨지는 문제 해결방법 입니다.
# /etc/sysconfig/i18n 파일에서
LANG="ko_KR.UTF-8"  =====> LANG="ko_KR.eucKR" 로 바꾸시면 됩니다.(없으면 추가)

Java]스프링프레임워크 링크 모음



ibatis 에서 log4j 사용하기 :  http://v.daum.net/link/1728439

스케줄러를 이용한 메일 발송 : http://v.daum.net/link/2980934



SpringFramework + iBatis 연동시 주의점 및 참조 예제 :  http://lvsin.tistory.com/89

iBATIS에 있는 startBatch(), executeBatch() 메소드로 삽질후기 : http://mudchobo.tomeii.com/tt/category/아이바티스(iBATIS)



 
Spring+ibatis 를 이용한 미니 방명록 작성하기 : http://blog.daum.net/oraclejava/15192535

JAVA] 스프링에서 ajax 사용하기




스프링에서 Ajax 사용 하기 (Use JsonLib) by ultteky

출처 : http://beyondj2ee.blogspot.com/2009/08/ajax-use-jsonlib.html

몇년전만 해도 Ajax 사용은 몇몇 프로젝트에서만 사용했지만
최근에는 Ajax가 점점 필수 사항인 듯 합니다.
하지만 스프링에서 Ajax 지원에 대해서는 다소 미미한 편입니다.
제가 SimpleFormController에서 ajax를 적용한적이 있는데
좀 고생을 한기억이 있었습니다.그때 springsource에서
본 내용을 보면 아무리 스프링이 자유롭다지만 어느정도 J2EE에
대한 스펙을 생각하고 있고 그런 의미에서 Ajax는 아직 스펙이라
말하기가 어렵다고 합니다.
물론 그렇다고 스프링에서 Ajax를 전혀 지원하지 않는냐
그렇지는 않습니다. 서브 프로젝트 중애서 Spring WebFlow 2.0에서
"Spring JavaScript"를 번들을 제공 합니다.
개인적으로 스프링을 좋아하는 저로써는 "Spring Javascript"는
권하고 싶지 않습니다.
이유인즉 첫째 내부적으로 특정 라이브러리 (Dojo)를 사용합니다.
Dojo의 무거움은 경험하신분들은 아실겁니다.
(차라리 jQuery로 했으면..)
둘째로 DWR처럼 강한 결한 형태는 유지보수와 UI 변경을
복잡하게 합니다.
여러 이유가 있겠지만 크게 두가지네요
제 개인적인 Ajax 모델은 일단 클라이언트(Html)와
서버(Spring)가 느슨 결합이 되어야 하고 UI변경시
수정이 최소화 해야 한다고 생각합니다.
UI라이브러리는 기존에 훌륭한 (Extjs,jQuery,YahooUI..)중
플젝에 적합한 라이브러리를 사용하고 서버단은
AbstractView를 상속 받아서 Ajax 전용 뷰를 만들어서
서로간의 간섭이 없도록 구성해야 한다고
생각합니다.

여기서는 스프링에서 ajax를 처리 하기 위한 서버 설정을
설명 드리며 클라이언트 코드는 Json 패킷으로 대체
하는걸로 하겠습니다.
  • JsonLib 다운 받기
서버에서 클라이언트로 리턴할 오브젝트를 Json형태로 변환 하거나 또는 그반대로
Json 데이터를 해당 오브젝트로 변환하는 라이브러리가 필요 합니다. 그중에서
Json-lib를 사용 합니다 .
(해당 사이트에 접속하면 다양한 json 라이브러리를 다운 받을 수 있습니다. ).
여기서 최신 버전으로 다운로드를 받습니다.
다운로드 후 이클립스 프로젝트에
라이브러리를 추가 합니다.
웹 사이트 : http://json-lib.sourceforge.net/
다운로드 : http://sourceforge.net/projects/json-lib/files/
사용법은 해당 사이트를 참고 하시면 됩니다.
  • 스프링 전용 JsonView 다운 받기
아래의 사이트로 접속 후 화면 맨 하단을 보면 "json-lib-ext-spring" 가 있습니다.
거기서 최신 버전의 라이브러리를 다운로드 후 이클립스 프로젝트에
추가 합니다.
다운로드 : http://sourceforge.net/projects/json-lib/files/
  • JsonView 스프링 빈 설정
아래와 같이 JsonView를 빈으로 설정 합니다.
           <bean id="jsonView" class="net.sf.json.spring.web.servlet.view.JsonView"/>
          
ViewResolver 설정

JsonView를 인식 하기 위해서 "BeanNameViewResolver"를 설정 합니다.
WebApplication에서는 여러 Resolver가 존재 할수 있기 때문에
우선 순위를 "0"으로 설정해서 최우선으로 설정 합니다.
            <bean id="beanNameResolver"

           class="org.springframework.web.servlet.view.BeanNameViewResolver"

           p:order="0" />
          

  • Controller Code
아래의 코드를 보면 매우 평범합니다. 어떤한 라이브러리 참조도
없이 평소처럼 코딩 하면 됩니다. 모든 ajax 처리는 JsonView가
처리 함으로써 단지 JsonView가 선언된 스프링 빈 id를
ModelAndView의 "setViewName" 메서드에 선언만
하면 됩니다.
           

           public final ModelAndView handlerRequest(final HttpServletRequest request,

           final HttpServletResponse response) throws Exception {

           ModelAndView modelAndView = new ModelAndView();

           

           DummyMember dummyMember1 = new DummyMember();

           dummyMember1.setId("xxxxxxx");

           

           DummyMember dummyMember2 = new DummyMember();

           dummyMember2.setId("yyyyyy");

           

           List list = new ArrayList();

           list.add(dummyMember1);

           list.add(dummyMember2);

           

           Map resultMap = new HashMap();

           resultMap.put("result1", list);

           resultMap.put("result2", dummyMember1);

           

           modelAndView.addAllObjects(resultMap);

           modelAndView.setViewName("jsonView");

           return modelAndView;

           }
          

※ 샘플 도메인
           public class DummyMember {

           private String id;

           

           public String getId() {

           return id;

           }

           

           public void setId(String id) {

           this.id = id;

           }

           }
          
  • 결과 JSON 패킷
           {"result2":{"id":"xxxxxxx"},"result1":[{"id":"xxxxxxx"},{"id":"yyyyyy"}]}
          

customizing이 필요하면 JsonView 클래스를 상속 받은 후에 "renderMergedOutputModel"
메서드를 override 하시거 아니면 직접 다운로드 사이트에서
소스를 받은 후에 수정 후 적용 하시면 됩니다.