OS/LINUX2007. 7. 3. 22:07
반응형
레드햇 계열 리눅스는 패키지의 설치와 관리에 있어서 rpm를 사용 합니다. ( 한컴리눅스 / 와우리눅스 모두 레드햇 계열 입니다.)

일단 리눅스를 설치해 놨는데, 보안이나 기타 이유로 패키지를 안쓰거나, 제거 하거나, 또 새로운 패키지를 설치하거나 버젼업된 패키지를 설치 해야 할때 싶은데 어떻게 해야하는지 모른다면 레드햇계열 리눅스의 사용은 미궁에 빠져 버리게 됩니다. 따라서 패키지의 설치와 관리를 하는 rpm 명령어의 숙지와 사용은 레드햇 계열에서는 필수라고 할수 있습니다.

rpm 명령어는 어떤 패키지를 설치하고, 어떤 패키지에 어떤 프로그램들이 들어있나 확인을 하고, 시스템 프로램들이 어떤 구조로 되어 있는가 추적하고 최적화 하는 방법을 알 수 있게 해 줍니다.

# rpm 명령어와 함께 # find 명령어,  # ps -aux | grep , # file 명령어를 이용해서 시스템 전체의 설치된 패키지를 조회하고 관리를 할 수 있습니다. ( # 은 리눅스 쉘(root) 프롬프트 입니다.  // **. 은 주석처리로 설명 부분 입니다. )
=========================================================================================
1. rpm 설치하기
1) 설치하기
-U 옵션   : 기존의 것을 삭제하고 업그레이드하며 아무 메시지도 보여주지 않습니다.
-Uv 옵션  : 기존의 것을 삭제하고 업그레이드하며 패키지 이름을 보여 줍니다.
-Uvh 옵션 : 기존의 것을 삭제하고 업그레이드하며 그 설치 진행과 과정 # 표시로 자세히 보여줍니다.
// **. 보통 (ivh 보다) -Uvh 옵션을 쓰면 됩니다.
// **. 설치할경우 패키지파일전체 이름을 주고, 삭제/조회는 rpm 버젼 번호까지만 주면 됩니다.
    mrtg 패키지전체 이름 :  mrtg-2.9.17.i386.rpm  // **. i386 은 386 CPU 호환 버젼을 말합니다.
    mrtg 패키지 버젼     :  mrtg-2.9.17

예)
# rpm -U  mrtg-2.9.17.i386.rpm
# rpm -Uv mrtg-2.9.17.i386.rpm
# rpm -Uvh mrtg-2.9.17.i386.rpm

부가 옵션들
--nodeps : 의존성관계에 있는 다른 패키지가 설치되어 있지 않다해도 강제 설치 합니다.
--force : 버전을 무시하고 강제로 설치 합니다. ( rpm 버전을 강제로 다운 그레이드 할때 사용합니다. )
예)
# rpm -Uvh mrtg-2.9.17.i386.rpm --nodeps

-- force --nodeps 사용시 다른 패키지에 문제가 없는가를 주의 해야 합니다.
# rpm -Uvh mrtg-2.9.17.i386.rpm  --force --nodeps

2) -i 옵션 : 기존의 것을 삭제하고 처음 설치합니다.
예) # rpm -i mrtg-2.9.17.i386.rpm

=========================================================================================
2. rpm 지우기
-evv 옵션 : 아래와 같이 삭제를 하는 동안에 상세한 설명을 보여줍니다.
예)
# rpm -evv mrtg-2.9.17

부가 옵션들
--test  : 실제로 삭제를 하지 않고 잘지워지는가 테스트만 해보는 옵션 입니다.
--nodeps : 의존성에 관여하지 않고 지우는 옵션입니다. // **. 의존성 있는 패키지가 안돌아 갈 수 있습니다. 주의를 요하는 옵션 입니다.
-- allmatches 옵션  : rpm 이 아래와 같이 중복으로 설치 되어 있을 경우 해결 방법
# rpm -qa | grep tux  // **. 중복으로 설치 되었 습니다.
tux-2.1.0-2
tux-2.1.0-2

# rpm -e tux  // **. 삭제가 안됩니다.
error: "tux" specifies multiple packages
# rpm -e tux --allmatches  // **. --allmatches 옵션으로 지웁니다.

--noscript 옵션 : rpm 이 스크립트 에러 인하여 지워지지 않을 경우조 지웁니다.  
# rpm -e canna --noscripts  // **. --noscripts 옵션으로 지웁니다.


=========================================================================================
rpm 조회하기 부분은 옵션이 가장 많고, 가장 많이 사용 하는 부분 입니다.

3. rpm 조회하기
1) -qa 옵션 조회
-qa           : 설치 되어 있는 모든 패키지를 알아 봅니다. // **. 좌악 올라 갑니다.
-qa | grep    : 질의한 패키지가 설치 되어 있는지 알아본다 //  **. 가장 많이 사용 합니다.
-qa | grep -i : 질의한 패키지를 찾을 때 대소문자를 구분하지 않고 물어 봅니다. // **. 대소문자 구별 안하고 찾아주므로 이 옵션 사용이 편합니다. 대부분 패키지는 소문자 이기는 하지만 가끔은 대문자가 있습니다.
-qa | wc -l   : 현재 설치 되어 있는 총패키지 수

예 )
# rpm -qa  // **. 시스템에 설치된 모든 패키지를 보여 줍니다.
# rpm -qa | grep canna  // **.canna란 이름의 패키지가 설치 되어 있는지 알아 봅니다.
# rpm -qa | grep -i canna  // **. 대 소문자를 구별하지 않고 알아 봅니다.
# rpm -qa | wc -l  // **. 시스템에 설치된 총 패키지 수를 알아 봅니다. 보통 몇백 단위 입니다.

2) rpm에 대한 다른 조회
-qf : 화일로 패키지 알아내기. 설치 되어 있는 화일이 어느 패키지에 속해 있는지 알아봅니다.
-qi : 패키지 정보 알아보기. 패키지에 대한 설명을 보여줍니다.
-ql : 패키지 목록 알아 봅니다.
-qc :  /etc/ 밑에 설치 되는 설정 화일만 알아 본니다.

예)
# rpm -qf /bin/ls     // **. ls 란 명령어가 어느 패키지에 속해 있는지 알아 봅니다.  
# rpm -qf $(which 특정프로그램이름) // **. 경로를 잘 모를 경우 사용 합니다.
   ex) rpm -qf $(which ls)
# rpm -qi setup      // **. setup 이란 패키지가 어떤 패키지 인가 알아 봅니다.
# rpm -ql setup  
# rpm -qc setup

=========================================================================================
4. -q 의 부가 옵션들
1) -q --requires  : 패키지가 필요한 모듈 (의존성)
예) # rpm -q --requires setup  // **. dump 라는 패키지가 설치되기전에 먼저 설치가 선행되어야 하는 패키지들 입니다. 없으면 설치가 안됩니다.

2) -q --whatrequires : 의존성 걸린 패키지 알아내기
예) # rpm -q  --whatrequires  xmms // **. xmms에 의존하는 패키지를 보여 줍니다. 함부로 지우면 의존설 걸린 패키지들은 안돌가는 사태가 발생할 수 있습니다.

3) -q --whatprovides module-info  : 모듈이 설치 되어 있는 패키지 알아 봅니다.
예) # rpm -q --whatprovides module-info

4) -q --scripts : 패키지가 설치 되기전 또는 설치 된후에 실행되는 스크립트를 알아 봅니다.
5) -q --queryformat : 패키지의 정보를 알아볼때 문자열을 출력해준다.

5. 기타 확장 옵션들
1) -qlv          : 패키지 목록 자세한 정보를 알아 봅니다.
예 ) # rpm -qlv setup

2) -ql --dump   :  패키지 덤프 화일을 봅니다.
3) -qcf          : 화일과 관련된 설정 화일을 알아봅니다. .
4) -qdf       : 패키지와 관련된 문서 화일을 보는 옵션 입니다.  // **. 패키지 괸련한 문서는 대부분 /usr/share/doc 아래에 있습니다.
예) # rpm -qdf /sbin/dump

5) -qpil : 원하는 패키지로 부터 패키지 정보와 설치되는 곳의 정보를 알아 봅니다.
  // **. qi옵션과 ql 옵션의 합침형 입니다.
예) # rpm -qpil mrtg-2.9.17.i386.rpm

6) --querytags : 문자열 출력시에 사용되는 태그 값을 알아 본다.
예) # rpm --querytags
HEADERIMAGE
HEADERSIGNATURES
HEADERIMMUTABLE
.
7) # rpm -qlp  // **. RPM 으로 설치 안되었을때 검색 합니다.
반응형

'OS > LINUX' 카테고리의 다른 글

SELinux 에 대하여  (0) 2007.07.23
[linux] 리눅스의 각종 데몬들  (0) 2007.07.21
C쉘 설정파일(.cshrc)  (0) 2007.04.12
Xmanager 접속을 위한 리눅스 설정하기  (0) 2007.03.09
crontab 명령  (0) 2007.02.15
Posted by [PineTree]
OS/LINUX2007. 4. 12. 18:57
반응형

음... 2001년 어느 토요일 오후.

퇴근 안하고 앉아서,

서버의 .cshrc 를 열어서 각 명령어들이 무슨 역할을 하는지 찾아보았다.

아마도, 뭔지도 모르고 사용하는 것이 맘이 안좋아서 그랬던 듯 싶다.

 

C쉘에 해당되는 이야기이다.

리눅스 서버설정을 위해 사용했던 파일내용이다.

----------------------------------------------------------------------------------------

umask 022

#user, group, other 4:읽기방지, 2:쓰기방지, 1:실행방지
#새로 만들어지는 파일은 -rwxr-xr-x 로 만들어지게 됩니다.

stty erase ^H                     #erase 키를 mapping 합니다. ( ctrl + v h)
stty cs8 -istrip -parenb       #한글입력설정

set host=`hostname`           # '' 는 문자열이고, ` ` 는 안의 명령어를 실행시킨다. hostname 이라는 명령을 실행시켜서 host 에 값을 입력했다.
set history=40                   # history 를 볼때, 40 건씩 보겠다.
set noclobber                   # 덮어쓰기 방지
set filec                           # ESC 를 누르면, 파일명 자동완성기능
set autolist                       # 파일명 자동완성기능

set prompt="[`whoami`@`hostname -s`:${cwd}]"

unset autologout               #자동로그아웃을 방지합니다.

set -o vi                          # 명령라인에서 vi 처럼 기존 사용했던 명령어를 j, k  키를 사용해서 위 아래로 이동한다.

 

alias setprompt 'set prompt="[`whoami`@`hostname -s`:${cwd}]"'
alias cd 'chdir \!* && setprompt'
alias ls '/bin/ls -aF'         # file, directory를 구분 표기
alias cd.. 'cd ..'
alias cp 'cp -i'
alias l 'ls -al | more'
alias dir 'ls -alCF \!* |more'
alias rm 'rm -i'                 # 삭제여부를 질문한다
alias h history

if (! $?prompt) goto cshrc_end

 

setprompt

----------------------------------------------------------------------------------------

* history  명령어

Expression Use

!!

마지막 명령의 반복수행

!n

history 버퍼에서 n번째 명령어 수행

!-n

history 버퍼에서 마지막명령에서 n번째 명령어 수행

!text

버퍼의 명령어들중에서 text로 시작하는 최근의 명령어 수행

!?text

버퍼의 명령어들중에서 text를 포함하는 최근의 명령어 수행

!:n

마지막 명령어의 n번째 단어 수행

!$

마지막 명령어의 마지막 단어 수행

!*

마지막 명령어의 모든 변수들 수행

^old^new

앞선 명령어의 oldnew로 대체하고 수행

반응형

'OS > LINUX' 카테고리의 다른 글

[linux] 리눅스의 각종 데몬들  (0) 2007.07.21
LINUX RPM 관련 명령어  (0) 2007.07.03
Xmanager 접속을 위한 리눅스 설정하기  (0) 2007.03.09
crontab 명령  (0) 2007.02.15
LINUX usb 인식해서 사용하기  (0) 2007.02.10
Posted by [PineTree]
OS/SOLARIS2007. 3. 29. 01:04
반응형
요약

썬 마이크로시스템즈의 솔라리스 점프스타트(JumpStart) 기술은 솔라리스 운영체재와 다른 연관 소프트웨어들을 여러개의 네트워크 노드들에 자동으로 설치하는데 사용 되는 기술 입니다.

x86/x64 플랫폼의 솔라리스10 에서 점프스타트 소프트웨어는 SPARC 플랫폼의 솔라리스10 에서와 기본적으로 동일합니다. 그러나 정확한 작업을 위해서는 몇가지 미세한 차이에 대해 언급할 필요가 있습니다.

이 글은 썬의 x86/x64 머신에서 솔라리스10을 위한 점프스타트 서버를 설정하는데 필요한 단계들과 설명들을 제공하고 2 개 혹은 그 이상의 클라이언트를 위한 점프스타트 구성도 직접 해 봅니다.

범용의 참고서로써 썬의 온라인 문서인 Using Custom JumpStart 를 참고하시기 바랍니다.


소개

이 글은 x86/x64 플랫폼의 솔라리스10 을 이용해서 점프스타트 서버를 생성하는 단계별 과정을 제공하고 있습니다. 솔라리스10은 서버와 점프스타트 설치 서버에서 모두 동일한 버전을 사용하고 있습니다. AMD 옵테론과 인텔 프로세서 기반의 머신들이 서버와 클라이언트로 사용되었고 각각에 어떠한 프로세서 타입들이 사용되도록 사용되었고 클라이언트들은 각각 어떠한 프로세서 타입이 사용 되도록 선호도를 주지 않았습니다.

아래와 같은 작업을 하는 명령어들이 제공 됩니다:

  • 점프스타트 설치 서버 생성하기
  • 클라이언트 설정 파일 생성하기
  • 설치, 설정 디렉토리들을 공유하기
  • 클라이언트 tftpboot 파일 생성하기
  • DHCP 서버 설정 및 실행하기
  • 간섭이 필요 없는 점프스타트 설치 시작하기

Pre-boot Execution Environment (PXE) 가 네트워크를 통해 부팅 되기위해 활성화 되어 있어야 합니다. 몇몇 클라이언트들에서 PXE는 BIOS에서 활성화될 필요가 있습니다.

클라이언트 부트 파일을 생성할때의 버그는 마지막 정리작업 섹션에 기재했습니다.


솔라리스 점프스타트 과정

두개의 클라이언트에 x86/x64 플랫폼의 솔라리스10을 설치하기 위해서 점프스타트 설치 서버를 설정하는 명령들이 아래에 나와 있습니다.

이 연습 과정에서 점프스타트 서버의 노드 이름은 stinger2 이고 IP 주소는 172.16.64.194 니다. 기본 라우터의 IP 주소는 172.16.64.1 입니다. 점프스타트 서버가 위치하고 있는 네트워크 주소는 172.16.64.0 입니다.

만약 필요하다면 솔라리스10을 다운로드 받으실 수 있습니다.

1. 점프 스타트 설치 서버 생성하기

a. 서버에 설치 디렉토리를 생성합니다

# mkdir -p /export/install

b. x86/64 플랫폼의 솔라리스10 DVD를 서버의 DVD 플레이어에 집어 넣습니다. DVD의 Solaris_10/Tools 디렉토리로 이동하여 setup_install_server 커맨드를 실행시킴으로써 인스톨 서버를 생성합니다. 솔라리스 소프트웨어는 새롭게 생덩된 디렉토리로 복사 됩니다. 절대 경로명을 매개변수로 지정해 줍니다.

# cd /cdrom/cdrom0/Solaris_10/Tools
  # ./setup_install_server /export/install
  Verifying target directory...
  Calculating the required disk space for the Solaris_10 product
  \|/-\|/-
  Calculating space required for the installation boot image
  \|/-\|/-
  Copying the CD image to disk...
  \|/-\|/-
  Copying Install Boot Image hierarchy...
  \|/-\|/-
  Copying /boot x86 netboot hierarchy...
  \|/-\|/-
  Install Server setup complete
  #

c. install 디렉토리가 제대로 생성이 됐는지 확인합니다.

  # du -sk /export/install

  3083278 /export/install

d. DVD를 DVD 플레이어에서 꺼냅니다.

  # cd /;eject

클라이언트 설정 파일 생성하기

클라이언트 설정 파일들은 일반적인 점프스타트 설치를 제어하는데 사용됩니다.

a. 파일들이 위치할 설정 디렉토리를 생성합니다.

  # mkdir /export/config

b. sysidcfg 파일을 생성합니다:

제일 처음 생성할 파일은 sysidcfg 파일 입니다. 이 파일은 반드시 올바른 정보로 올바르게 포맷되어져 있어야 합니다. 그렇지 않을 경우 파일은 무시 되고 간섭이 필요 없는 점프스타트 설치는 종료 됩니다. 후에 설치 과정은 표준 솔라리스 설치 방식으로 전환됩니다.

점프스타트 클라이언트는 OS 설치를 시작하기 전에 sysidcfg 파일을 찾습니다. 이 파일은 반드시 "sysidcfg" 라는 이름을 가져야 합니다. 그러므로 만약 복수개 버젼의 파일을 가지고 있어야 한다면 각 sysidcfg 파일은 반드시 분리된 디렉토리에 존재해야 합니다. 각 클라이언트는 그들의 고유 sysidcfg 파일을 가질 수 있습니다. 혹은 복수개의 클라이언트가 동일한 sysidcfg 파일을 사용할 수도 있습니다. sysidcfg 파일은 add_install_client 커맨드를 통해서 클라이언트에 지정 됩니다. 다음은 두개의 sysidcfg 파일 생성을 보여 줍니다:

  # cd /export/config
  # mkdir sysidcfg1
  # cd sysidcfg1
  # vi sysidcfg

  system_locale=en_US.ISO8859-1
  timezone=US/Pacific
  timeserver=localhost
  terminal=vt100
  name_service=NONE
  security_policy=NONE
  root_password=<encrypted from /etc/shadow>
  network_interface=bge0 {hostname=client1
                          netmask=255.255.255.0
                          protocol_ipv6=no
                          default_route=172.16.64.1}

  :wq

  # cd ../
  # mkdir sysidcfg2
  # cd sysidcfg2
  # vi sysidcfg

  system_locale=en_US.ISO8859-1
  timezone=US/Pacific
  timeserver=localhost
  terminal=vt100
  name_service=NONE
  security_policy=NONE
  root_password=<encrypted from /etc/shadow>
  network_interface=bge0 {hostname=client2
                          netmask=255.255.255.0
                          protocol_ipv6=no
                          default_route=172.16.64.1}

  :wq

c. rules 파일 생성하기:

다음으로 생성해야할 파일은 rules 파일입니다. 이것은 텍스트 파일로써 솔라리스가 설치될 각 클라이언트 혹은 클라이언트 그룹을 위한 규칙을 포함하고 있습니다. rules 파일의 각 클라이언트 혹은 클라이언트의 그룹에 어떠한 begin, profile, 그리고 finish 파일을 사용해야 할지 알려 줍니다.

오직 하나의 rules 파일 만이 존재 합니다. 이것은 몇개의 유일한 설정들이 존재하느냐에 따라서 여러개의 라인을 가질 수 있습니다. 아래에는 두개의 분리된 클라이언트 정보를 포함하고 있는 rules 파일의 내용 입니다:

  # cd /export/config
  # vi rules

  hostname client1 begin1 profile1 finish1
  hostname client2 begin2 profile2 finish2

  :wq

rules 파일은 체크 스크립트가 rules.ok 파일을 만들때 사용됩니다 일반적인 점프스타트 설치를 위해서는 rules.ok 파일의 성공적인 생성이 필요합니다.

d. begin 파일 생성하기:

begin 파일은 유저가 정의한 Bourne 쉘 스크립트로써 클라이언트 상에서의 작업을 수행하는데 사용 됩니다. 일반적인 작업은 파생된 프로파일을 생성하고 업그레이드 전에 파일을 백업하는 것을 포함합니다.

원하다면 복수개의 begin 파일을 사용할 수 있습니다. 다음은 두개의 begin 파일을 생성한 예제입니다:

  # cd /export/config
  # vi begin1

  #!/bin/sh
  echo "Begin Script for JumpStart client1..."

  :wq

  # vi begin2

  #!/bin/sh
  echo "Begin Script for JumpStart client2..."

  :wq

  # chmod 755 begin*

클라리언트에서의 설치 동안 begin 파일의 출력은 /tmp/begin.log 에 쓰여 집니다. 설치가 완료 되면 로그 파일은 /var/sadm/system/logs/begin.log 위치에서 찾을 수 있습니다.

Solaris 10 Installation GuideCustom JumpStart Environment Variables 섹션에 begin 스크립트에서 사용할 수 있는 변수들을 설명하고 있습니다.

e. finish 파일 생성하기:

finish 파일은 유저가 정의한 Bourne 쉘 스크립트로써 솔라리스의 설치가 끝난 다음에 클라이언트 상에서의 작업을 수행하는데 사용 됩니다. 이 스크립트는 일반적으로 추가적인 파일, 패키지 혹은 패치의 설치, 루트 환경 커스터마이즈, 추가 소프트웨어 설치 같은 작업을 하는데 사용 됩니다.

원하다면 복수개의 finish 파일을 사용할 수 있습니다. 다음은 두개의finish파일을 생성한 예제입니다:

  # cd /export/config
  # vi finish1

  #!/bin/sh
  echo "Finish Script for JumpStart client1..."
  echo "Get rid of the nfs prompt during the initial boot"
  touch /a/etc/.NFS4inst_state.domain

  :wq

  # vi finish2

  #!/bin/sh
  echo "Finish Script for JumpStart client2..."
  echo "Get rid of the nfs prompt during the initial boot"
  touch /a/etc/.NFS4inst_state.domain

  :wq

  # chmod 755 finish*

솔라리스 설치 프로그램은 클라인터 파일 시스템을 /a 에 마운트 시킵니다. finish 스크립트는 /a 를 존중하여 파일의 추가 변경 혹은 삭제를 하는데 사용 됩니다. 이러한 파일 시스템은 초기 시스템 재부팅시 까지 /a 에 마운팅 되어 남아 있게 됩니다.

점프스타트 디렉토리 /export/installSI_CONFIG_DIR 변수에 지정된 디렉토리에 마운트 됩니다. 디렉토리는 기본적으로 /tmp/install_config 로 지정 됩니다. 파일들은 점프스타트 디렉토리에서 클라이언트로 finish 스크립트에서 실행되는 명령을 통해 가능합니다. 설치된 시스템에 추가될 파일들은 점프스타트 디렉토리에 위치하게 되고 그 다음에 클라이언트에 의해 접근이 가능합니다.

finish 스크립트의 다음의 라인은 설치된 클라이언트의 파일 시스템에 파일을 복사 합니다:

  cp /tmp/install_config/<file_name> /a/<path_name>/

f. profile 파일 생성하기:

profile 파일은 텍스트 파일로 솔라리스 클라리언트에 어떻게 설치될지 지정합니다.

복수개의 profile 파일이 생성될 수 있습니다. 여러개의 클라이언트들이 동일한 profile 파일을 사용할 수 있습니다. 혹은 각 클라이언트들은 고유의 profile 파일을 가질 수도 있습니다. 다음은 두개의 profile 파일 생성을 보여 줍니다:

  # cd /export/config
  # vi profile1

  # install_type MUST be first
  install_type      initial_install

  # start with the minimal required number of packages
  cluster           SUNWCXall
  cluster           SUNWCapache delete
  cluster           SUNWCpcmc   delete
  cluster           SUNWCpcmcx  delete
  cluster           SUNWCthai   delete
  cluster           SUNWClp     delete
  cluster           SUNWCnis    delete
  cluster           SUNWCppp    delete

  # format the entire disk for Solaris
  fdisk   all   solaris all

  # define how the disk is partitioned
  partitioning      explicit
  filesys           rootdisk.s0 6144  /
  filesys           rootdisk.s1 1024  swap
  filesys           rootdisk.s7 free  /state/partition1

  # install systems as standalone
  system_type standalone

  # specify patches to install
  patch 119281-06 nfs 172.16.64.194:/export/patches

  # specify packages to install
  package SPROcc add nfs 172.16.64.194:/export/packages

  :wq

  # vi profile2

  # install_type MUST be first
  install_type      initial_install

  # start with the minimal required number of packages
  cluster           SUNWCXall
  cluster           SUNWCapache delete
  cluster           SUNWCpcmc   delete
  cluster           SUNWCpcmcx  delete
  cluster           SUNWCthai   delete
  cluster           SUNWClp     delete
  cluster           SUNWCnis    delete
  cluster           SUNWCppp    delete

  # format the entire disk for Solaris
  fdisk   all   solaris all

  # define how the disk is partitioned
  partitioning      explicit
  filesys           rootdisk.s0 6144  /
  filesys           rootdisk.s1 4096  swap
  filesys           rootdisk.s7 free  /state/partition1

  # install systems as standalone
  system_type standalone

  # specify patches to install
  patch 119281-06 nfs 172.16.64.194:/export/patches

  # specify packages to install
  package SPROcc add nfs 172.16.64.194:/export/packages

  :wq

g. check 스크립트 생성하기:

check 스크립트는 rulesprofile 파일들이 올바르게 설정되었는지 확인할때 사용 됩니다. 첫째로 check 스크립트를 아래와 같이 로컬 디렉토리 /export/config 에 복사 합니다:

  # cd /export/config
  # cp /export/install/Solaris_10/Misc/jumpstart_sample/check .

h. check 스크립트 실행하기:

  # ./check
  Validating rules...
  Validating profile profile1...
  Validating profile profile2...
  The custom JumpStart configuration is ok.

어떠한 오류도 발견되지 않았다면 rules.ok 파일이 생성됩니다. 이 파일은 rules 파일과 동일합니다. 그러나 커멘트와 빈줄은 모두 제거 됩니다. check 스크립트는 다음과 같은 커멘트를 rules.ok 파일의 끝에 추가 시킵니다:

  # version=2 checksum=<num>

3. 설치와 설정 디렉토리 공유하기

a. dfstab 을 수정하여 점프스타트 디렉토리들을 공유 시킵니다.

b. /etc/dfs/dfstab 파일을 수정합니다:

  # vi /etc/dfs/dfstab

  #       Place share(1M) commands here for automatic execution
  #       on entering init state 3.
  #
  #       Issue the command 'svcadm enable network/nfs/server' to
  #       run the NFS daemon processes and the share commands, after
  #       adding the very first entry to this file.
  #
  #       share [-F fstype] [ -o options] [-d "<text>"] <pathname>
  #       [resource]
  #       for example,
  #       share  -F nfs  -o rw=engineering  -d "home dirs"  /export/home2

  share -F nfs -o ro,anon=0 /export/install
  share -F nfs -o ro,anon=0 /export/config
  share -F nfs -o ro,anon=0 /export/patches
  share -F nfs -o ro,anon=0 /export/packages

  :wq

c. NFS 서버를 시작시킵니다.

  # /etc/init.d/nfs.server start

d. 디렉토리들을 공유합니다.

  # shareall
  # share
  -               /export/install   ro,anon=0   ""
  -               /export/config   ro,anon=0   ""
  -               /export/patches   ro,anon=0   ""
  -               /export/packages   ro,anon=0   ""

e. 파일 공유를 확인합니다.

  # showmount -e localhost
  export list for localhost:
  /export/install  (everyone)
  /export/config   (everyone)
  /export/patches  (everyone)
  /export/packages (everyone)

4. 클라이언트 tftpboot 파일 생성하기

a. add_install_client 스크립트를 각 클라이언트 마다 실행시킵니다.

b. add_install_client 스크립트 저장 위치로 이동합니다:

  # cd /export/install/Solaris_10/Tools

c. add_install_client 스크립트를 점프스타트 설치를 진행할 네트워크 상의 각 클라이언트에서 실행합니다. -e 변수는 클라이언트의 MAC 어드레스이고 -p 변수는 클아이언트에 의해 이용될 sysidcfg 파일의 디렉토리 이름을 보여 줍니다. 아래에는 두 분리된 클라이언트 들에서 add_install_client 를 실행하는 것을 보여 줍니다:

  # ./add_install_client \
      -d \
      -e 00:0a:e4:37:16:4d \
      -s 172.16.64.194:/export/install \
      -c 172.16.64.194:/export/config \
      -p 172.16.64.194:/export/config/sysidcfg1 i86pc

  enabling tftp in /etc/inetd.conf
  Converting /etc/inetd.conf
  enabling network/tftp/udp6 service
  copying boot file to /tftpboot/pxegrub.I86PC.Solaris_10-1

  If not already configured, enable PXE boot by creating
  a macro named 01000AE429C1FD with:
    Boot server IP (BootSrvA) : 172.16.64.194
    Boot file      (BootFile) : 01000AE429C1FD

  # ./add_install_client \
      -d \
      -e 00:0a:e4:2a:33:f8 \
      -s 172.16.64.194:/export/install \
      -c 172.16.64.194:/export/config \
      -p 172.16.64.194:/export/config/sysidcfg2 i86pc

  enabling tftp in /etc/inetd.conf
  Converting /etc/inetd.conf
  enabling network/tftp/udp6 service
  copying boot file to /tftpboot/pxegrub.I86PC.Solaris_10-1

  If not already configured, enable PXE boot by creating
  a macro named 01000AE42A33F8 with:
    Boot server IP (BootSrvA) : 172.16.64.194
    Boot file      (BootFile) : 01000AE42A33F8

부트 서버 IP 와 부트 파일 값들은 후에 dhcpmgr 가 실행중인 동안에 매크로가 생성될때 사용됩니다.

5. DHCP 서버를 설정하고 실행시키기

a. dhcpmgr 를 실행시키기:

  # /usr/sadm/admin/bin/dhcpmgr
  Java Accessibility Bridge for GNOME loaded.

첫번째 스크린이 나타 남:
(확대 해서 보려면 이미지를 클릭하세요)

b. "Configure as a DHCP Server" 선택후 OK 를 클릭.

DHCP 설정 마법사가 나타납니다:

c. "Text Files" 선택 후 Next 클릭.

d. 저장 경로를 확인한 후 Next 클릭.

e. 네임서비스를 선택 한 후에 Next 를 클릭.

f. 임대 정보를 확인한 후에 Next 를 클릭.

g. DNS 도메인 정보를 확인 한 후 Next 를 클릭.

h. 네트워크 정보를 확인한 후 Next 를 클릭.

i. 네트워크 타입과 라우팅 옵션을 선택한 후 Next 를 클릭.

j. NIS 도메인 정보를 확인한 후에 Next 를 클릭.

k. NIS+ 도메인 정보를 확인한 후 Next 를 클릭.

l. 설정값을 다시 확인 한 후에 Finish 를 클릭.

DHCP 메니저가 나타나고 주소 마법사를 시작하도록 요구 받습니다:

m. Yes 를 클릭.

주소 마법사가 나타납니다:

n. IP 주소의 숫자를 입력한 후에 Next 를 클릭.

o. 서버 정보를 확인한 후에 Next 를 클릭.

p. IP 주소를 확인한 후에 Next 를 클릭.

q. 클라이언트 설정 정보를 확인한 후에 Next 를 클릭.

r. 임대(lease) 타입을 선택한 후 Next 를 클릭.

s. 설정을 확인한 후에 Finish 를 클릭.

dhcpmgr 아직 실행중인 상태에서 BootFileBootSrvA 매크로를 생성합니다. Create Macro 폼에 접근하기 위해 일단 DHCP Manager 폼에 Macros 탭을 선택합니다. 그 다음에 상단 메뉴에서 Edit->Create 을 선택합니다.

Create Macro 폼이 나타납니다:

t. 첫번째 클라이언트를 위해 add_install_client 를 실행함으로써 얻어 졌던 이름을 Name 필드에 적어 넣음으로써 매크로의 BootFile 부분을 생성함. 이 이름은 Option Value 필드에서 또한 사용 됩니다. 정보를 입력한 후에 Add 를 클릭함.

u. Opntion Value 필드에 점프스타트 서버의 네트워크 IP 주소를 적음으로써 매크로의 BootSrvA 부분을 생성함. 정보를 입력한 후에 Add 를 클릭함. 그리고나서 OK 를 클릭해서 첫번째 매크로의 생성을 완료함.

v. 두번째 매크로에 동일한 과정을 반복.

x. Add 를 클릭.

y. Add 를 클릭한 다음 OK 를 클릭함.

z. 두번째 매크로를 생성한 다음 DHCP 메니저 윈도우의 File->Exit 을 선택하여 dhcpmgr 유틸리티를 종료 시킴.

마지막 정리 작업

여러분이 add_install_client 스크립트를 실행시켰을때 스크립트는 a menu.lst<filename> 파일을 각 클라이언트 를 위해 생성하였습니다.

/tftpboot/menu.lst<BootFile: Name> 파일 생성의 버그로 인해, 여러분은 반드시 다음의 부분들을 kernel/unix 의 4번째 줄에 추가시켜야 합니다:

- install dhcp

그런후에 파일의 내용을 아래의 내용에서:

default=0
timeout=30
title Solaris_10 Jumpstart
    kernel /I86PC.Solaris_10-1/multiboot kernel/unix -B \
install_config=172.16.64.194:/export/config, \
sysid_config=172.16.64.194:/export/config/sysidcfg1, \
install_media=172.16.64.194:/export/install, \
install_boot=172.16.64.194:/export/install/boot
    module /I86PC.Solaris_10-1/x86.miniroot

아래의 내용으로 바꿉니다:

default=0
timeout=4
title Solaris_10 Jumpstart
    kernel /I86PC.Solaris_10-1/multiboot kernel/unix - install dhcp -B \
install_config=172.16.64.194:/export/config, \
sysid_config=172.16.64.194:/export/config/sysidcfg1, \
install_media=172.16.64.194:/export/install, \
install_boot=172.16.64.194:/export/install/boot
    module /I86PC.Solaris_10-1/x86.miniroot

간섭이 필요 없는 점프스타트 설치 수행하기

    클라이언트를 부팅시킵니다.

    프롬프트가 나타난 후에 F12 를 클라이언트의 키보드로 입력합니다.

    Network Boot Request....
    
    CLIENT MAC ADDR: 00 0A E4 2A 33 F8  GUID: 11223344 556 7788 99AA \
                                              BBCCDDEEFF00
    
    DHCP....\|/-\|/-
    

    만약 모든 셋팅이 정상적이라면 설치는 완료될 것입니다. 만약 문제가 발생한다면 인스톨러는 종료 되고 쉘로 떨어질 것입니다. 에러의 원인은 install_log 파일에 기록됩니다.


설치 후 작업

다음의 파일들이 점프스타트의 설치 로그파일들입니다.:

  /var/sadm/system/logs/install_log
                        begin_log
                        finish_log
                        sysidtool.log

저자에 관하여

Craig Winter 와 Dale Layfield 는 썬의 마켓 개발 엔지니이렁팀의 staff 엔지니어들 입니다.

반응형

'OS > SOLARIS' 카테고리의 다른 글

IPMP에 대하여  (0) 2007.07.19
SVM(솔라리스 볼륨메니져) - 미러링  (0) 2007.07.19
솔라리스 dvd 파일합치기  (0) 2006.11.01
솔라리스 백업관련  (0) 2006.10.09
시스템 디스크 교체 후 E3500 부팅 절차  (0) 2006.08.07
Posted by [PineTree]
OS/Shell Script2007. 3. 28. 19:00
반응형
1. /bin/sh

prog > /dev/null 2>&1             <-- ok
prog > /dev/null 2>/dev/null      <-- ok
prog >& /dev/null                 <-- ok


2. /bin/csh

prog > /dev/null 2>&1             <-- fail
Ambiguous output redirect.

prog > /dev/null 2>/dev/null      <-- fail
Ambiguous output redirect.

prog >& /dev/null                 <-- ok, recommend


3. FreeBSD /etc/crontab
SHELL=/bin/sh

prog >& /dev/null                 <-- fail, bad FD
prog &> /dev/null                 <-- not good, is bg
prog > /dev/null 2>&1             <-- ok


*참고) /bin/bash
prog &> /dev/null                 <-- not good
prog >& /dev/null                 <-- ok
반응형

'OS > Shell Script' 카테고리의 다른 글

쉘 반복 스크립트  (0) 2010.04.28
sed , awk 사용법  (0) 2009.04.15
Posted by [PineTree]
OS/LINUX2007. 3. 9. 19:03
반응형
Xmanager 접속을 위한 리눅스 설정하기 2006-11-14 10:01:48

Windows 등에서 리눅스 시스템으로 원격 접속이 가능한 프로그램 중 대표적인 것으로 Xmanager가 있다. 이 Xmanager는 Windows를 사용하다가 리눅스를 접하는 사용자라면 누구나 한번쯤은 사용해 보았을 법한 프로그램이기도 하다.

그러나 이 Xmanager를 사용하기 위해서는, 접속하고자 하는 리눅스 시스템에서 일부 설정을 수정해야 한다. 리눅스에서는 기본적으로 Xmanager와 같은 XDMCP 기능을 사용하는 프로그램의 접속을 막도록 설정이 되어 있기 때문인데, 리눅스의 X윈도우 환경이 Gnome 인지, KDE 인지에 따라서도 설정하는 부분이 약간씩은 다르다.

오늘은 이 Xmanager 접속을 허용하기 위한 설정법에 대해 Gnome과 KDE로 구분하여 알아보도록 하자.

 

 
Gnome에서의 설정

1. 리눅스 시스템의 런레벨(Run-Level)이 "5"인지 확인한다.

 

여기서 런레벨이라는 것은 부팅시 어떠한 모드로 부팅될 것인가를 말하는 것으로, 그래픽 모드는 "5"번, 텍스트 모드는 "3"번이다.

Xmanager는 GUI(그래픽 유저 인터페이스)를 지원하므로 접속하고자 하는 리눅스 시스템의 사용모드도 그래픽모드(Run-Level 5)로 되어 있어야 한다.

리눅스 설치시 대부분 그래픽 모드로 설치를 하므로 크게 문제될 부분은 아니지만, 서버로 사용하는 시스템에 있어 텍스트 모드로 설치하는 경우도 있으므로 이 부분에 대해 간단히 확인하고 넘어가도록 하자.

런레벨은 /etc/inittab 파일에서 쉽게 확인이 가능하다.

#
# inittab       This file describes how the INIT process should set up
#               the system in a certain run-level.
#
# Author:       Miquel van Smoorenburg, <miquels@drinkel.nl.mugnet.org>
#               Modified for RHS Linux by Marc Ewing and Donnie Barnes
#

# Default runlevel. The runlevels used by RHS are:
#   0 - halt (Do NOT set initdefault to this)
#   1 - Single user mode
#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)
#   3 - Full multiuser mode
#   4 - unused
#   5 - X11
#   6 - reboot (Do NOT set initdefault to this)
#
id:5:initdefault:

# System initialization.
si::sysinit:/etc/rc.d/rc.sysinit

 

위에서 보듯이 "id" 뒷 부분의 값이 "3"인지 "5"인지에 따라 모드가 바뀌므로, 그래픽모드로 사용하고자 한다면 이 숫자를 "5"로 변경하자.

 

 

2. XDMCP 접속 허용 (custom.conf)

 

앞에서도 말했듯이 Xmanager는 XDMCP 방식을 사용하여 리눅스 시스템에 접속을 하게 된다. 그러므로 리눅스 시스템에서는 이 XDMCP 기능이 접속할 수 있도록 허용하는 설정을 해주어야 하는데, Gnome에서는 gdm (Gnome Display Manager)을 사용하므로 아래의 경로에 있는 gdm 설정파일에서 수정한다.

 

# vi /etc/gdm/custom.conf          # 한글과컴퓨터 리눅스 데스크톱 3.0 (오픈에디션 3.0)의 경우

# vi /etc/X11/gdm/custom.conf    # 한글과컴퓨터 리눅스 데스크톱 2.0 (오픈에디션 2.0)의 경우

 

※ 타 리눅스를 사용하는 경우, 설정 파일의 경로가 다를 수 있으므로 이럴땐 하단에 명시한 Xmanager 제작사에 가서 확인해 보도록 한다.

 

...

[security]

DisallowTCP=false

AllowRemoteRoot=true

 

[xdmcp]

Enable=1

...

 

custom.conf 파일의 [security] 섹션 아래에 DisallowTCP 값을 false로 선언하고, [xdmcp] 섹션 아래에 Enable 값을 1로 설정한다.

만약 root 관리자로의 원격 접속을 희망한다면, AllowRemoteRoot의 값을 true로 선언하는 것을 추가하면 된다.

 

 

3. X윈도우 재시작

 

위 와 같이 설정을 마쳤다면, X윈도우를 재시작해야 한다. 변경된 설정으로 X윈도우가 가동되어야 외부에서의 접속이 가능하므로 반드시 X윈도우를 재시작하기 바란다. 로그아웃만 해서는 안된다. init 3 명령과 init 5 명령으로 런레벨 자체를 변경하는 것이 좋다.

(또는 이런 과정들이 복잡하다 생각되면 그냥 재부팅을 해도 된다. ^^)

그리고 Windows에 설치된 Xmanager를 사용하여 접속을 시도해보자. 잘 되는가?

 

 

KDE에서의 설정

KDE 에서도 Gnome의 경우와 같이 XDMCP 관련 설정파일을 수정함으로써 해결할 수 있지만, Gnome 보다 수정해야할 항목이 조금 더 많다고 볼 수 있다. 그리고 한글과컴퓨터 리눅스의 기본 로그인 매니저가 gdm (Gnome Display Manager)으로 되어 있기 때문에, 이를 kdm (KDE Display Manager)으로 바꾸거나, 또는 Gnome과 KDE 양쪽에서의 XDMCP 수정을 모두 해주어야 하는 불편함이 있다.

일단 하나하나 알아보도록 하자.

 

1. 리눅스 시스템의 런레벨(Run-Level)이 "5"인지 확인한다.

이는 앞에서 본 내용과 동일하다. 런레벨 확인이 우선이겠다.

 

 

2. XDMCP 접속 허용 (1) (xdm-config)

KDE의 기본 로그인 매니저인 kdm (KDE Display Manager)의 설정파일은 아래에 있다.

# vi /etc/X11/xdm/xdm-config

 

...

!DisplayManager.requestPort:     0

설정파일의 제일 하단을 보면,

DisplayManager.requestPort:    0

이라고 설정되어 있는데 이 라인의 앞쪽에 느낌표(!)을 넣어 주석처리를 한다.

 

 

3. XDMCP 접속 허용 (2) (Xaccess)

다음으로 아래 경로에 있는 Xaccess 파일을 열어...

#* #any host can get a login window

위와 같이 되어있는 라인 앞쪽의 주석(#)을 해제한다.

 

# vi /etc/X11/xdm/Xaccess

 

...

* #any host can get a login window

...

 

 

4. XDMCP 접속 허용 (3) (kdmrc)

다음으로 kdmrc 파일을 열어 [Xdmcp] 섹션의 Enable 값을 true로 변경한다.
# vi /etc/X11/xdm/kdmrc

 

...

[Xdmcp]
Enable=true

...

 

 

5. 로그인 매니저 변경 (또는 gdm 설정)

이 것으로 설정파일들은 수정이 완료되었다. 하지만 앞에서 언급하였듯이 한글과컴퓨터 리눅스 데스크톱(또는 오픈에디션)은 기본 로그인 매니저가 gdm (Gnome Display Manager)로 되어 있으므로 아래의 2가지 방법중 한가지 방법을 더 처리해 주어야 한다.

 

① 앞서 다룬 gdm 설정도 같이 수행한다.

② 로그인 매니저를 gdm에서 kdm으로 변경한다. (변경 방법은 아래 Tip 참조)

 

 

6. X윈도우 재시작

 

위와 같이 설정을 마쳤다면, X윈도우를 재시작해야 한다. 변경된 설정으로 X윈도우가 가동되어야 외부에서의 접속이 가능하므로 반드시 X윈도우를 재시작하기 바란다.  로그아웃만 해서는 안된다. init 3 명령과 init 5 명령으로 런레벨 자체를 변경하는 것이 좋다.

(또는 이런 과정들이 복잡하다 생각되면 그냥 재부팅을 해도 된다. ^^)

그리고 Windows에 설치된 Xmanager를 사용하여 접속을 시도해보자. 잘 되는가?

 

Tip! Tip! Tip!

로그인 매니저 변경방법 (gdm --> kdm)

 

# vi /etc/sysconfig/desktop

 

DESKTOP="GNOME"                      # 기본 로그인 세션
DISPLAYMANAGER="KDE"           # 기본 로그인 매니저

 

/etc/sysconfig/desktop 파일을 열어서 ...

DISPLAYMANAGER의 값을 KDE로 수정한다. (해당 항목이 없다면 위의 예를 보고 직접 추가하자.)

 

※ 참고로, DESKTOP 항목은 기본으로 구동되는 세션을 말하는 것으로 ID와 패스워드를 넣었을때 어느 X윈도우로 로그인할 것인지를 설정하는 것이다.

 

※ 이상의 설명은 "한글과컴퓨터 리눅스 데스크톱" (또는 오픈에디션)을 기준으로 설명하였다. 다른 리눅스를 사용하거나 Xmanager 프로그램에 대한 좀 더 자세한 설명을 원한다면 Xmanager 홈페이지를 방문해보기 바란다.

http://www.netsarang.co.kr/

 

(위 URL에서 Xmanager의 30일 평가판 제품도 받아서 사용해 볼 수 있다.)

반응형

'OS > LINUX' 카테고리의 다른 글

LINUX RPM 관련 명령어  (0) 2007.07.03
C쉘 설정파일(.cshrc)  (0) 2007.04.12
crontab 명령  (0) 2007.02.15
LINUX usb 인식해서 사용하기  (0) 2007.02.10
호스트네임 변경  (0) 2006.10.11
Posted by [PineTree]
OS/LINUX2007. 2. 15. 08:15
반응형

crontab 명령
목적
cron 작업을 제출, 편집, 나열 또는 제거합니다.

구문
crontab [ -e | -l | -r | -v | File ]


설명
crontab 명령은 cron 작업을 제출, 편집, 나열 또는 제거합니다. cron 작업은 cron 디먼이 정기적으로 계획된 간격으로 수행하는 명령입니다. cron 작업을 제출하려면, crontab 명령을 -e 플래그와 함께 지정하십시오. crontab 명령은 편집 세션을 호출하여 crontab 파일을 작성할 수 있게 합니다. 이 파일에 각 cron 작업에 대한 항목을 작성합니다. 각 항목은 cron 디먼에 맞는 양식이어야 합니다. 항목 작성에 대한 내용은 crontab 파일 항목 형식을 .

사용자가 항목 작성을 마치고 파일을 종료할 때, crontab 명령이 그것을 /var/spool/cron/crontabs 디렉토리에 복사한 후, 사용자의 현재 사용자 이름에 대해 명명된 파일에 배치합니다. 사용자 이름을 갖는 파일이 crontabs 디렉토리에 이미 존재하는 경우, crontab 명령은 기존 파일위에 겹쳐씁니다.

다른 방법으로, File 매개변수를 지정하여 crontab 파일을 작성할 수 있습니다. 파일이 존재할 경우, 그 파일은 cron 디먼이 예상하는 형식이어야 합니다. 파일이 없을 경우, crontab 명령이 편집기를 호출합니다. EDITOR 환경 변수가 있을 경우, 명령은 지정하는 편집기를 호출합니다. 그 외에는 crontab 명령이 vi 편집기를 사용합니다.

crontab 파일의 내용을 나열하려면, crontab 명령에 -l 명령을 지정하십시오. 기존 파일을 제거하려면, -r 플래그를 사용하십시오.

cron 디먼
cron 디먼은 crontab 파일 항목에 따라 명령을 수행합니다. 사용자가 cron 작업의 출력을 표준 출력 또는 오류로 재지정하지 않는 한, cron 디먼은 사용자에게 모든 명령 출력 또는 오류를 메일로 전송합니다. crontab 파일에서 cron 작업을 잘못 지정하면, cron 디먼은 작업을 수행하지 않습니다.

cron 디먼은 cron 디먼이 초기설정될 때만 crontab 파일을 시험합니다. crontab 명령을 사용하여 crontab 파일에 변경을 수행할 때, 변경을 나타내는 메세지가 cron 디먼으로 전송됩니다. 이것으로 새로운 또는 변경된 파일에 대해 정기적으로 계획된 간격으로 오버헤드를 점검하지 않아도 됩니다.

crontab 명령 사용에 대한 제어
/var/adm/cron/cron.allow 및 /var/adm/cron/cron.deny 파일은 crontab 명령을 사용할 수 있는 사용자를 제어합니다. 루트 사용자는 이 파일을 작성, 편집 또는 삭제할 수 있습니다. 이 파일의 항목은 한 행에 이름이 한 개 있는 사용자 로그인 이름입니다. 사용자의 로그인 ID가 둘 이상의 로그인 이름과 연관되는 경우, crontab 명령은 사용자가 실제로 사용 중인 로그인 이름과 상관없이 /etc/passwd 파일에 있는 첫번째 로그인 이름을 사용합니다.

다음은 cron.allow 파일의 한 예입니다.

root
nick
dee
sarah
cron.allow 파일이 있을 경우, 로그인 이름이 여기에 나타나는 사용자들만이 crontab 명령을 사용할 수 있습니다. 루트 사용자의 로그 이름이 cron.allow 파일에 반드시 나타나야 합니다. 시스템 관리자는 사용자의 로그인 이름을 cron.deny 파일에 나열하여 그 사용자가 crontab 명령을 사용할 수 없게 할 수 있습니다. cron.deny 파일만이 존재하는 경우, 파일에 나타나지 않는 모든 사용자가 crontab 명령을 사용할 수 있습니다.

다음 중 하나에 해당되는 경우, crontab 명령을 사용할 수 없습니다.

cron.allow 파일과 cron.deny 파일이 존재하지 않습니다(루트 사용자만 허용).
cron.allow 파일이 존재하지만 사용자의 로그인 이름이 나열되어 있지 않습니다.
cron.deny 파일이 존재하고 사용자의 로그인 이름이 나열되어 있습니다.
cron.allow와 cron.deny 파일이 둘다 존재하지 않는 경우, 루트 사용자 권한을 갖는 사람만이 crontab 명령으로 작업을 제출할 수 있습니다.

crontab 파일 항목 형식
crontab 파일은 각 cron에 대한 항목을 포함합니다. 항목들은 개행 문자로 분리됩니다. 각 crontab 파일 항목은 다음 형태로 공백이나 탭으로 분리된 6개 필드를 포함하고 있습니다.


minute(분)  hour(시)  day_of_month(일)  month(월)  weekday(요일)  command(명령)
이들 필드는 다음 값을 승인합니다.

minute(분) 0 - 59
hour(시) 0 - 23
day_of_month(일) 1 - 31
month(월) 1 - 12
weekday(요일) 일요일부터 금요일까지를 나타내는 0 - 6
command(명령) 쉘 명령

각 필드에 대해 반드시 값을 지정해야 합니다. command 필드를 제외하고, 필드 다음에 들어갈 수 있습니다.

지정된 범위에 있는 숫자. 5월에 명령을 수행하려면, 월 필드에 5를 지정하십시오.
두 수를 대시로 분리하여 두 수 자체도 포함하는 범위를 나타내는 범위 지정. 화요일부터 금요일까지 cron 작업을 수행하려면, weekday 필드에 2-5를 입력하십시오.
숫자들을 쉼표로 분리하여 나열한 숫자 리스트. 1월의 첫날과 마지막 날에 명령을 수행하려면, 일 필드에 1,31을 입력합니다.
*(별표)는 모든 허용되는 값을 의미합니다. 매 시간마다 작업을 수행하려면, hour(시) 필드에 별표를 지정하십시오.
주: 앞에 역슬래시(% 포함)가 오는 모든 문자는 문자 그대로 처리됩니다. 날짜의 지정은 두 필드(날짜와 요일)에 의해 이루어질 수 있습니다. 둘다를 요소로 지정할 경우, 둘다 고수하십시오. 예를 들어 다음과 같이 입력합니다.
0 0 1,15 * 1 command
이 명령은 모든 월요일뿐만 아니라 각 달의 1일과 15일에 command를 수행합니다. 단 하나의 필드로 날짜를 지정하려면, 다른 필드는 *를 포함해야 합니다.

명령 지정
cron 디먼은 선택된 날짜와 시간의 여섯 번째 필드에 지정된 명령을 수행합니다. 여섯 번째 필드에 %(퍼센트 기호)를 포함하면, cron 디먼은 그 앞에 오는 모든 것을 명령 호출로서 취급하고, 퍼센트 기호(\%)를 탈출하지 않는 한 그 뒤에 오는 모든 것을 표준 입력에 사용 가능하게 만듭니다. 공백 행과 첫번째 비공백 문자가 번호 기호(#)인 행을 무시됩니다.

주: 쉘은 명령 필드의 첫번째 행만을 수행합니다. 모든 다른 행은 명령에 표준 입력으로 사용 가능하게 됩니다.
cron 디먼은 사용자의 HOME 디렉토리에서 서브쉘을 시작합니다. 사용자가 로그인되지 않았을 때 수행하도록 명령을 계획하고 사용자의 .profile 파일에 있는 명령을 수행하려면, 명령은 반드시 명시적으로 사용자의 .profile 파일을 읽어야 합니다.

cron 디먼은 모든 쉘에 대해 HOME, LOGNAME, SHELL(=/usr/bin/sh) 및 PATH(=/usr/bin)를 정의하는 디폴트 환경을 제공합니다.

플래그
-e 사용자의 crontab 파일의 사본을 편집하거나 또는 아직 crontab 파일이 없으면 편집 세션을 시작합니다. 편집이 완료될 때, 항목이 사용자의 crontab 파일로서 설치됩니다. 편집 세션은 EDITOR 환경 변수에 의해 지정되는 편집기를 사용하여 시작됩니다. 디폴트 편집기는 vi입니다.
-l crontab 파일을 나열합니다.
-r crontab 디렉토리에서 사용자 crontab 파일을 제거합니다.
-v cron 작업의 상태를 나열합니다.

보안
감사(audit) 이벤트: 감사(auditing) 서브시스템이 적절하게 구성설정되고 사용 가능한 경우, crontab 명령은 명령이 실행될 때마다 다음 감사 레코드(이벤트)를 생성합니다.

이벤트 정보
CRON_JobRemove cron 작업을 제거한 사용자와 시기를 나열합니다.
CRON_JobAdd cron 작업을 추가한 사용자와 시기를 나열합니다.

감사 이벤트 선택 및 그룹화하는 방법과 감사 이벤트 데이타 수집 구성설정 방법에 대한 자세한 내용은 AIX Version 4.3 System Management Guide: Operating System and Devices에 있는 "감사 기능 설정"을 참조하십시오.

종료 상태
이 명령은 다음과 같은 종료값으로 복귀합니다.

0 성공적으로 완료되었습니다.
>0 오류가 발생하였습니다.

예제
mycronjobs이라는 파일을 /var/admn/cron/crontabs 디렉토리에 복사하려면, 다음과 같이 입력하십시오.
crontab mycronjobs
매 시간마다 콘솔에 시간을 기록하려면, 다음과 같이 입력하십시오.
0 * * * * echo The hour is `date` .
>/dev/console
모든 월요일, 수요일 및 금요일 오전 6시 30분에 calendar 명령을 수행하려면, 다음과 같이 입력하십시오.
30 6 * * 1,3,5 /usr/bin/calendar
일년 내내 매일 6시 30분에 calendar 명령을 수행하려면, 다음과 같이 입력하십시오.
30 6 * * * /usr/bin/calendar
8월 동안 매일 자정에 maintenance라는 스크립트를 수행하려면, 다음과 같이 입력하십시오.
0 0 * 8 * /u/harry/bin/maintenance
명령에 대한 표준 입력에 대해 텍스트를 정의하려면, 다음과 같이 입력하십시오.
0 16 * 12 5 /usr/sbin/wall%HAPPY HOLIDAY!%Remember to
turn in your time card.
%(퍼센트 기호) 뒤에 오는 텍스트가 다음과 같이 wall 명령에 대한 표준 입력을 정의합니다.
HAPPY HOLIDAY!
 
Remember to turn in your time card.
파일
/var/adm/cron/FIFO crontab 또는 at 명령으로 새 작업이 제출될 때 cron 디먼으로 메세지를 전송하는 명명된 파이프.
/var/spool/cron/crontabs crontab 스풀 영역을 지정합니다.
/var/adm/cron/cron.allow  crontab 명령에 대한 액세스가 허용되는 사용자 리스트를 지정합니다.
/var/adm/cron/cron.deny crontab 명령에 대한 액세스가 거부되는 사용자 리스트를 지정합니다.
 

반응형

'OS > LINUX' 카테고리의 다른 글

C쉘 설정파일(.cshrc)  (0) 2007.04.12
Xmanager 접속을 위한 리눅스 설정하기  (0) 2007.03.09
LINUX usb 인식해서 사용하기  (0) 2007.02.10
호스트네임 변경  (0) 2006.10.11
아이피 변경  (0) 2006.10.11
Posted by [PineTree]
OS/LINUX2007. 2. 10. 00:29
반응형

USB Flash Disk 의 기본 화일시스템은 대부분 vfat 를 사용

USB Flash Disk 는 커널에 의해서 SCSI 장치를 이용해서 접근

대부분 /dev/sd* , 하나의 USB Flash Drive 라면 아마도  /dev/sda1 을 사용할것이다

 

* 마운트 : 장치를 사용하기위해서 준비

  mkdir /mnt/usb

  mount -t vfat /dev/sda1 /mnt/usb

이제 USB Flash Disk 에서 바로 복사 이동 삭제를 자유롭게 할수 있을것이다

만일 USB 가 사용하는 장치명을 확인하고 싶다면 dmesg 또는 fdisk -l 을 통해서 아래와 같이 확인할 수 있다


[root@redhatws9 down]# fdisk -l

                                                                            

Disk /dev/sda: 256 MB, 256900608 bytes

16 heads, 32 sectors/track, 979 cylinders

Units = cylinders of 512 * 512 = 262144 bytes

                                                                               

   Device Boot    Start       End    Blocks   Id  System

/dev/sda1             1       979    250574+   6  FAT16


* 언마운트 : 장치사용을 해제

  umount /mnt/usb

 

* USB 드라이브에서 한글 깨짐 현상 복구

  mount -t vfat -o iocharset=cp949 /dev/sda1 /mnt/usb

반응형

'OS > LINUX' 카테고리의 다른 글

Xmanager 접속을 위한 리눅스 설정하기  (0) 2007.03.09
crontab 명령  (0) 2007.02.15
호스트네임 변경  (0) 2006.10.11
아이피 변경  (0) 2006.10.11
2개의 랜카드 묶어서 2배의 대역폭:Bonding  (0) 2006.10.11
Posted by [PineTree]
OS/SOLARIS2006. 11. 1. 07:48
반응형
 Windows systems: copy /b file1 + file2 + file3 + file4 + file5 file.iso
반응형
Posted by [PineTree]
OS/LINUX2006. 10. 11. 02:10
반응형
 1. HOSTNAME 변경개론

서버를 운영하다보면 불가피하게 HOSTNAME을 변경해야하는 경우가 있다.

win95/98/NT/2000의 경우에는 네트웍설정의 등록정보를 통해서 간단해 해결할 수 있지만, 리눅스의 경우에는 윈도우쪽 보다는 좀 까다로운 것이 사실이다.

먼저, HOSTNAME을 변경하는 방법은 다음과 같이 몇가지가 있다.

  • 방법1 : netcfg 유틸리티를 이용하는 방법
  • 방법3 : setup 유틸리티를 이용하는 방법
  • 방법4 : 직접 명령어로 수작업하는 방법

위의 3가지 방법중 방법1, 방법2는 각각 netcfg, setup파트에서 설명이 되어있으므로 해당파트에서 사용법을 확인하기 바라며, 여기에서는 방법3번으로 HOSTNAME을 변경하는 방법에 대해서 설명할 것이다.

어떤방법이 가장 올바른 방법이라는 것을 판단한다는 것은 매우 어리석은 것이라 생각되며, 단지 서버관리자로서 일을하다보면 유틸리티보다는 직접 명령어를 통해서 작업하는 경우가 많으며 가장 빠른 방법이라고 할 수 있다.

 

HOSTNAME 변경시에 수정해주어야하는 작업관 확인하는 명령어를 먼저 소개하고 넘어가겠다.

  • HOSTNAME 대상파일
    • /etc/sysconfig/network 
    • /etc/HOSTNAME (이파일은 위의 파일에서 읽어와 저장되는 파일임)

2. 현재의 호스트명 확인

hostname이란 명령은 현재의 호스트명을 보여주느 명령어이며, 아래의 예는 현재의 호스트명을 보여준 것이다.



3. 호스트명 변경

호스트명을 변경하는 파일은 "IP Address변경하기"강좌편에서 말씀드린 바와같이 /etc/sysconfig/network에서 변경만 해주고 네트웍환경을 적용하는 스크립트(/etc/rc.d/init.d/network)를 재실행 해주면 끝이다.

www.bsidc.co.kr이던 호스트명을 www.abcd.co.kr로 변경하였다.

그리고, /etc/HOSTNAME 파일을 열어서 또한 변경을 해주었는데, 이 파일은 굳이 변경할필요하가 없다.

왜냐하면, 리눅스가 부팅이 될 때에는 /etc/sysconfig/network 파일에서 HOSTNAME을 읽어와서 이 파일에 저장하기 때문이다.



4. HOSTNAME 적용하기

이제 변경된 HOSTNAME을 적용하기 위해서는 네트웍 재실행 스크립트(/etc/rc.d/init.d/network)를 restart 하든가, 아니면 아래의 예와 같이 시스템을 재부팅하면 된다.



반응형

'OS > LINUX' 카테고리의 다른 글

crontab 명령  (0) 2007.02.15
LINUX usb 인식해서 사용하기  (0) 2007.02.10
아이피 변경  (0) 2006.10.11
2개의 랜카드 묶어서 2배의 대역폭:Bonding  (0) 2006.10.11
원격접속시 한글이 깨질때 | centos  (0) 2006.10.10
Posted by [PineTree]
OS/LINUX2006. 10. 11. 02:07
반응형
1. IP변경개론

서버를 운영하다보면 불가피하게 IP Address를 변경해야하는 경우가 있다.

네트웍의 확장이나 서버이전등으로 인하여 서버관리자라면 한번쯤은 IP를 변경했던 경험이 있을 것이다.

win95/98/NT/2000의 경우에는 네트웍설정의 등록정보를 통해서 간단해 해결할 수 있지만, 리눅스의 경우에는 윈도우쪽 보다는 좀 까다로운 것이 사실이다.

먼저, IP Address를 변경하는 방법은 다음과 같이 몇가지가 있다.

  • 방법1 : netcfg 유틸리티를 이용하는 방법
  • 방법2 : netconfig 유틸리티를 이용하는 방법
  • 방법3 : setup 유틸리티를 이용하는 방법
  • 방법4 : 직접 명령어로 수작업하는 방법

위의 4가지 방법중 방법1, 방법2, 방법3은 각각 netcfg, netconfig, setup파트에서 설명이 되어있으므로 해당파트에서 사용법을 확인하기 바라며, 여기에서는 방법4번으로 IP Address를 변경하는 방법에 대해서 설명할 것이다.

어떤방법이 가장 올바른 방법이라는 것을 판단한다는 것은 매우 어리석은 것이라 생각되며, 단지 서버관리자로서 일을하다보면 유틸리티보다는 직접 명령어를 통해서 작업하는 경우가 많으며 가장 빠른 방법이라고 할 수 있다.

필자또한 IP Address변경하는 작업뿐 아니라 거의 모든 작업을 직접 command를 수행하여 직접하고 있다.

 

작업에 들어가기전에 한가지 더 알아야하는 것이있다 .

IP Address 변경시에 수정해주어야하는 작업관 확인하는 명령어를 먼저 소개하고 넘어가겠다.

  • IP Address 대상파일
    • /etc/sysconfig/network
    • /etc/sysconfig/network-scripts/ifcfg-etho (해당 ethernet inferface)
  • IP Address변경전후 확인하는 명령어
    • ifconfig
    • netstat 또는 route

자, 그럼 서론은 이쯤에서 끝내고 명령어를 통한 수작업으로 IP Address를 변경하는 작업을 해보도록 하자.


2. 변경전 네트웍설정 확인

먼저 아래예와 같이 ifconfig 명령어를 통하여 현재의 네트웍설정을 확인토록하자.

보는 바와같이 현재의 네트웍설정은 다음과 같다.

  • IP Address(host ip address) : 211.220.193.158
  • Broadcast : 211.220.193.159
  • Subnet Mask : 255.255.255.240

현재 IP Address를 211.220.193.158에서 211.220.193.149로 변경하려한다.

 

참고로 ifconfig 명령어와 함께 네트웍관련 설정을 확인할 때에 자주사용하는 명령어가 netstat이라는 명령어이다.

netstat은 서버의 라우팅(routing)경로를 확인할 때에 자주 사용된다.  

참고로 알아두면 좋을 것이며, 자세한 설명은 수퍼유저코리아의 해당파트를 참조바란다.


3. /etc/sysconfig/network 파일수정

현재의 IP Address를 수정하였으므로 이제 본격적으로 IP Address를 변경토록 해보자.

먼저, 앞서 설명드린 바와 같이 /etc/sysconfig/network 파일을 열어서 수정하도록 한다.  

 

수정할 때에는 주로 vi 명령어로 해당파일(/etc/sysconfig/network)을 열어서 확인한다.

/etc/sysconfig/network 파일에는 위의 예를 보는 바와 같이 다음과 같은 설정을 할 수 있다.

  • NETWORKING   : 네트웍여부
  • HOSTNAME : 호스트네임
  • GATEWAYDEV : 게이트웨이 장치명
  • GATEWAY : 게이트웨이 IP Address

여기서는 동일네트웍에서 IP Address만 변경하는 경우이므로 /etc/sysconfig/network 파일에서 변경할 것은 없다.

하지만, 만약 서버이전등으로 인해 네트웍자체가 변경될 경우에는 GATEWAY정보도 수정해 줘야한다.

또한 서버용도변경등으로 인한 호스트네임이 변경될 경우에도 이 파일의 HOSTNAME을 수정해 줘야한다.



4. inferface 장치파일변경(/etc/sysconfig/network-scripts/ifcfg-eth0)

 

다음으로 변경해줘야하는 것은 해당 ethernet interface의 장치파일이다 .

이들 ethernet inferface 장치파일들이 존재하는 위치는 /etc/sysconfig/network-scripts/ 디렉토리이며, 이 디렉토리내에서 변경코자하는 ethernet에 해당하는 장치파일을 수정해주면 된다.

 

앞에서 살펴본대로 현재 IP Address의 변경예로든 리눅스서버는 한 개의 ethernet을 가지고 있으며 당연히 장치명이 eth0가 된다.

따라서 여기서 변경해줘야하는 파일또한 ifcfg-eth0가 된다.

이제 이 파일을 열어서 수정해준후에 뒤에서 설명될 /etc/rc.d/init.d/network restart를 해주거나 시스템을 리부팅하면 된다.

 

아래의 예는 직접 ifcfg-eth0 파일을 열어서 수정해준 예이다.

자세히 살펴보면 IP Address가 211.220.193.158에서 211.220.193.149로 변경해둔 것을 볼 수 있다.

앞서 설명드린 바와같이 만약 서버이전드으로 인해 네트웍전체가 변경될 경우에는 BROADCAST, NETWORK, NETMASK등이 변경될 수 있으므로 유의하기 바란다.

어쨌든 현재 예로든 경우는 동일 네트웍에서 IP Address만 변경되는 경우이므로 단지 호스트(서버)의 IP Address만을 변경하면 그뿐이다.



5. 설정변경 적용

자, 이제 변경된 네트웍설정을 적용하기 위해서 아래 예와 같이 "/etc/rc.d/init.d/network restart"를 수행하여 새로운 IP Address로 사용토록해보자.

이 방법이 싫은 분들이라면 다음과 같은 명령어로 시스템 자체를 리부팅해도 무방하다.

  • reboot
  • shutdown -r now
  • init 5

단지 시스템을 리부팅하기전에 "sync"를통해서 디스크동기화를 시켜주는 것이 안전할 것이다.

참고로, IP Address가 변경이 되면 현재 접속되거나 서비스되던 것들은 모두 중단이 된다는 것쯤은 상식으로 알고 있을 것이다.



6. 변경된 IP Address 확인

 

앞서 했던 방법대로 변경된 정보를 확인해보자.

ifconfig 명령을 통해서 변경된 IP Address를 확인한 것이다.

변경되기 전에는 eth0의 IP Address가 211.220.193.158 이였던 것이 변경후에는 211.220.193.149가 되었음을 확인할 수 있다.

 

라우팅에 관한 정보는 변경하질 않았지만, 습관적으로 네트웍정보를 변경후에는 netstat을 통해서 라우팅정보를 확인하는 것이 좋다.

 


7. 네트웍테스트

자, 이제 마지막으로 변경된 IP Address가 다른 네트웍으로 패킷을 잘 주고받는지를 테스트 해보도록 하자.

아래의 예는 먼저 gateway까지 네트웍이 되는가를 테스트 한후에 다른 네트웍에 IP Address가 아닌 도메인으로 ping 테스트를 한 것이다.

변경된 IP Address로 통신이 잘 이루어짐을 확인하였으므로 이 강좌를 마무리 한다.

관련 질문은 해당 게시판을 통해서 받을 것이며,,이만,..

~~~ 꾸벅  ~~~

 

출처:슈퍼유저코리아

반응형

'OS > LINUX' 카테고리의 다른 글

LINUX usb 인식해서 사용하기  (0) 2007.02.10
호스트네임 변경  (0) 2006.10.11
2개의 랜카드 묶어서 2배의 대역폭:Bonding  (0) 2006.10.11
원격접속시 한글이 깨질때 | centos  (0) 2006.10.10
var/log/audit.d/ full 문제  (0) 2006.10.09
Posted by [PineTree]