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을 다른 변수명을 사용하면 해결이 된다.