출처 : http://ezgreg.tistory.com/57

지난 2009년 11월 19일, PHP 5.3.1 이 릴리즈 되면서 5.3대로 업데이트를 해보자는 생각을 구글링을 하다 YUM으로 업데이드 할 수 있는 레포지토리를 찾았습니다.

# rpm --import http://repo.webtatic.com/yum/RPM-GPG-KEY-webtatic-andy
# wget -P /etc/yum.repos.d/ http://repo.webtatic.com/yum/webtatic.repo


이렇게 Repository를 추가하시고 인스톨이나 업데이트를 하실 분은 아래의 명령어를 알맞게 사용하시면 됩니다.

-  최초 설치 시 -

# yum --enablerepo=webtatic install php


- 업데이트 시 -

# yum --enablerepo=webtatic update php



PHP 5.3에서 추가된 부분은 아래를  참고하시길 바랍니다.
네이스페이스가 추가된 부분은 정말 필요했던 부분인거 같습니다.
Change Log를 보시면 자세한 설명도 나와있습니다.

The PHP development team is proud to announce the immediate release of PHP 5.3.0. This release is a major improvement in the 5.X series, which includes a large number of new features and bug fixes.

Some of the key new features include: namespaceslate static bindingclosures, optional garbage collection for cyclic references, new extensions (likeext/pharext/intl and ext/fileinfo), over 140 bug fixes and much more.

For users upgrading from PHP 5.2 there is a migration guide available here, detailing the changes between those releases and PHP 5.3.0.

Further details about the PHP 5.3.0 release can be found in the release announcement, and the full list of changes are available in the ChangeLog.


FTP 명령어

Posted 2013. 9. 27. 09:32


출처 : http://blog.naver.com/chowstephen/10112328213


FTP에서 파일 송수신을 위해 기본적으로 필요한 명령어

명령어

내용

open

호스트 이름이나 IP 주소를 사용하여 접속한다.

close

현재 접속중인 연결을 끊고 ftp 명령어 모드로 돌아간다.

quit

ftp 사용을 그만하고 셀 상태로 돌아간다.

ascii

ASCII 형태로 파일을 주고받는다

binary

Binary 형태로 파일을 주고받는다.

ls

ftp 싸이트의 디렉토리 파일 목록을 보여준다.

pwd

ftp 싸이트에서 현재 자신이 위치한 디렉토리의 경로를 나타내준다.

cd

ftp 싸이트의 디렉토리를 변경한다.

lcd

로컬(자신이 ftp 명령어를 실행시킨 시스템) 디렉토리 위치를 변경한다.

(m)get

ftp 싸이트로부터 (복수개의) 파일을 전송받는다.

!

접속을 유지한 상태로 자신의 시스템의 셀 프롬프트로 빠져 나온다.

(m)put

자신의 시스템에 있는 (복수개의) 파일을 ftp 싸이트로 전송한다.

prompt

복수개의 파일 전송시 파일마다 사용자에게 전송여부에 대한 확인을 물어온다.

hash

파일 전송 상태를 # 문자를 통해서 보여준다.

?

사용할 수 있는 명령어를 보여준다.

help

도움말을 보여준다.


디렉토리 생성
ftp> mkdir public 
호스트 컴퓨터 상의 현재 디렉토리 밑에 public 이란 디렉토리가 생김

디렉토리 삭제
ftp> rmdir public 
디렉토리 내용물을 다 지운 후 디렉토리를 지워야 지워짐

화일/디렉토리 이름 변경
ftp>ren my.html your.html

화일 한 개 삭제
ftp> del my.html

화일 여러개 삭제
ftp> mdel *.html 
*.html
패턴의 모든 화일 삭제

ftp> mdel letter??.html 
?
는 낱개 문자에 대한 와일드 카드


화일 업로드
ftp> binary

바이너리 화일 전송 옵션. 모든 화일 전송시 무조건 설정하는 게 좋음. 이것을 하지 않으면 압축/그림 화일이 깨져 전송됨


ftp> put local.html home.html 
PC의 현재 디렉토리 밑의 local.html을 호스트 상의 현재 디렉토리에 home.html로 업로드


여러 개의 화일 업로드
ftp> prompt

대화식 모드 해제, 여러개 화일 업로드시 매 파일마다 업로드 여부를 확인하게 되어 있는데 이를 취소하는 역할을 함. 토글 명령이므로 두번 하면 다시 원상 복귀


ftp> binary

바이너리 화일 전송 옵션 모든 화일 전송시 무조건 설정하는 게 좋음)


ftp> mput *.gif 
현재의 PC 디렉토리 밑의 *.gif 를 엎로드


화일 한 개 다운로드
ftp> binary
바이너리 화일 전송 옵션 모든 화일 전송시 무조건 설정하는 게 좋음


ftp> get remote.html localpc.html 
remote.html
PC localpc.html 로 저장 (localpc.html 생략하면 remote.html 로 저장)


화일 여러 개 다운로드
ftp> prompt

대화식 모드 해제, 여러개 화일 다운로드시 매 화일마다 다운로드 여부를확인하게 되어 있는데 이를 취소하는 역할을 함. 토글 명령이므로 두번 하면 다시 원상 복귀 

ftp> binary

바이너리 화일 전송 옵션 모든 화일 전송시 무조건 설정하는 게 좋음

ftp> mget *.html



디렉토리 보기
ftp> dir

리모트 디렉토리 이동
ftp> cd /usr/local

ftp> cd ..

상위 디렉토리 이동

로컬 디렉토리 이동(Local CD)
ftp> lcd c:\netscape\program

ftp> lcd /home/User


MSDOS, UNIX
명령 실행

ftp> !mkdir LOCALDIR 
이것은 자신의 홈 디렉토리밑에 LOCALDIR 디렉토리 생성

hash 명령
ftp> hash 
이렇게 하면 화일 엎/다운로드시 진행 결과를 보여준다. 화일 업/다운로드시 "binary" 명령을 반드시 실행하시오. 이것을 안하면 binary 화일 내의 CR LF LF로 바꾸어 전송하게 되므로 화일이 깨진다. 주의!!


1. ftp
서버에 접속하기

ftp 100.10.1.1 또는 ftp ftp.test.com


2. ftp
사용 중지

ftp> bye


3. ftp
서버에 접속하여 디렉토리 내용 확인하기

ftp> pwd

현재 디렉토리 확인


ftp> ls -al
또는 dir

디렉토리 내용보기


4. ftp
사용중 현재 내컴퓨터의 디렉토리 확인

ftp> !dir


5. 전송 모드 변경

전송 모드라 하면 파일을 전송할 때 binary 또는 ascii 모드를 말하며 일반 txt 파일은 ascii로 전송하고 실행 파일 또는 압축 파일은 binary 로 전송하여야 함. 만일 이를 어길시는 특히 txt 파일의 내용이 이상하게 됨.

ftp> bi 또는 binary
binary
모드로 변경됨

ftp> as 또는 ascii 
ascii
모드로 변경됨

6. 한 개의 파일을 보내기

ftp> !dir setup.txt

보낼 파일을 확인함

ftp> as

ftp> put  setup.txt

파일을 보냄

ftp> dir setup.txt

잘 보냈는지 확인함


7. 한개의 파일을 가져오기

ftp> ls -al

가져올 파일을 확인함

ftp> bi

binary 모드로 변경됨

ftp> get  a.o

ftp> !

! 만 사용하여 Local Host로 잠시 빠져나간뒤 제대로 가져왔는지 확인

exit

다시 ftp 모드로 바뀜


8.
여러 개의 파일을 보내고 받기

여러 개의 파일을 보내려면 mput을 사용
ftp> mput diff*    <-- diff
로 시작되는 모든화일을 보냄
mput diff1?         <--
이름을 diff1 으로 하겠냐고 물음 (엔터)
mput diff2?         <-- diff2
를 보냄
mput diffrt?         <-- diffrt
를 보냄

여러 개의 파일을 받으려면 mget을 사용

ftp> mget  *       <-- 모든 파일을 보냄
mget cca?         <-- cca
를 이름그대로 받겠는가?
mget ts? ii          <-- ts
파일을 ii 란 이름으로 받음
mget aa?           <-- aa
를 받음

여러 개의 파일을 보내고 받을 때 파일 하나하나 '?' 로 물어보는 것이 정말 짜증날 때가 있다. 물어보지 않고 단번에 모든 파일을 받고 보내고자 할 경우 prompt라고 기입하면된다.

ftp> prompt
Interactive mode Off

ftp> prompt
Interactive mode On


9. 명령이 기억이 나지 않으면 ? 명령

ftp> ?

ftp> ? mget

리눅스 ftp 비밀번호 변경

root 비밀번호는 super user에서만 변경가능하고 ftp 비밀번호가 따로 있는 것은 아니다. /etc passwd라는 file이 있는데 여기에 각 사용자들의 user id가 있다. 비밀번호 변경은 각 user마다 따로 해 주어야 한다. 변경 방법은 root login 하여..

$ passwd 사용자id







Linux에서 nfs mount 가 안될때

Posted 2013. 9. 12. 09:16


출처 : http://makebob.tistory.com/163



(1) nfs mount를 해도 마운트가 안되고..

# mount 192.168.129.1:/home/bobos26 pc
mount: RPC: Unable to receive; errno = Connection refusednfs warning:
mount version older than kernel

mount: nfsmount failed: Bad file descriptor
NFS: mount program didn't pass remote address!
mount: Mounting 192.168.129.1:/home/bobos26 on /dev/shm/tmp/pc failed:
Invalid argument

데탑에서 nfs를 restart를 하려고 해도 nfs데몬이 안죽고, 데몬 시작도 안될때!


[root@livefree ~]# /etc/rc.d/init.d/nfs restart
NFS mountd를 종료 중입니다: [ 확인 ]
NFS 데몬을 종료 중입니다: [실패]
NFS quota를 종료 중입니다: [ 확인 ]
NFS 서비스를 종료 중입니다: [ 확인 ]
NFS 서비스를 시작하고 있습니다: [ 확인 ]
NFS 쿼터를 시작하고 있습니다: 서비스를 등록할 수 없습니다: RPC: 받을 수 없음; er rno = 연결이 거부됨
rpc.rquotad: unable to register (RQUOTAPROG, RQUOTAVERS, udp). [실패]
NFS 데몬을 시작함: [실패]
NFS mountd를 시작하고 있습니다: Cannot register service: RPC: Unable to
receive; errno = Connec tion refused [실패]

이런때 rpcinfo -p를 쳐보아라 nfs를 구동하는데 필요한 서비스(portmapper, nfs, mountd)가 시작되지 않았을것이다 서비스를 구동하라




(2) 위의 서비스를 다 구동했는데도 안될때

# mount 192.168.129.1:/home/bobos26 pc
mount: RPC: Unable to receive; errno = Connection refusednfs warning:
mount version older than kernel

mount: nfsmount failed: Bad file descriptor
NFS: mount program didn't pass remote address!
mount: Mounting 192.168.129.1:/home/bobos26 on /dev/shm/tmp/pc failed:
Invalid argument

but rpcinfo -p 해도 portmapper and mountd같은 서비스가 작동중일때

/etc/hosts.allow file을 읽어봐라!!
    ALL: 61.107.31.

처럼 보드부터의 nfs연결 접근을 막고 있다. ALL: 192.168.129를 추가해라!!



(3) 1,2의 방법을 해도 안될때 ㅠㅜ

방화벽 문제이다.
- service iptables stop해봐라. iptable을 죽이면 nfs가 연결이 될꺼다.

그러나 이것은 임시 방편..
- setup을 쳐라 . 거기서 방화벽을 끄거나. 방화벽을 완화시키면 해결완료 ^^



Solaris Bind 자동 스크립

Posted 2010. 10. 11. 12:09

요즘은 편리하게 할려고 자동 스크립을 자주 찾게 되네요 -_-;  이러다가 명령어 다 까먹겠네요

OS : Solaris
Bind 실행 파일 : /usr/local/sbin/named
pid 위치 : /var/run/named.pid


# cd /var/named                <- 자동 스크립 파일 저장 위치

# cat >> Bind_named.sh          <- 자동 스크립 파일 생성

---------------------------------------------------------------------------------------
#!/bin/sh
#

# Control the Internet name servic

PATH=/sbin:/usr/sbin:/usr/bin:/bin
export PATH

[ -f /etc/named.conf ] || exit 0
case "$1" in
     'start')
           if [ -x /usr/local/sbin/named ];
           then
                /usr/local/sbin/named;
                echo "Internet name service started"
           fi
           ;;
    'stop')
           if [ -r /var/run/named.pid ];
           then
               Pid=`cat /var/run/named.pid`
               kill -9 $Pid
               sleep 2
               echo "Internet name service stopped"
           fi
           ;;
   'restart')
          if [ -r /var/run/named.pid ];
          then
              Pid=`cat /var/run/named.pid`
              kill -1 $Pid
              sleep 5
              echo "Internet name service restarted"
          fi
          ;;
  *)
          echo "usage: $0 {start|stop|restart}"
          exit 1
esac

exit 0


Ctrl + C                      
---------------------------------------------------------------------------------------




# chmod 744 Bind_named.sh              <- 자동 스크립 권한

# cd /etc/rc2.d                                 <- 자동 스크립 파일을 링크로 걸 위치

# ln -s /var/namd/Bind_named.sh S10named              <- 자동 스크립 파일을 링크 거는 명령어


이렇게 하면 Server 재부팅시 자동으로 실행이 진행됨












[스크랩] 시스템 shutdown 명령어

Posted 2010. 6. 1. 10:26


* 시스템 shutdown 명령어

 솔라리스에서는 시스템의 런 레벨을 변 경하는 다양한 명령어를 제공한다. 하지만 여러 명령어중 가장 많이 사용되며 안전한 명령어는 shutdown 명령어이다.

 

참고) 솔라리스 런 레벨(http://cafe.naver.com/secuacademy)

런레벨

설명

0

솔라리스가 전혀 가동하지 않는 레벨.

시스템 다운 (SPARC 에서는 Boot PROM단계 / 인텔 시스템에서는 BIOS상태)

* Boot PROM : 일반 PC의 BIOS에 해당하는 부분으로 Boot PROM의 가장 기본 기능은 시스템에 장착된 하드웨어를 점검하고 부팅 장치에서 솔라리스를 읽는 역할이다. Boot PROM이 실행되면 시스템의 기본적인 하드웨어인 CPU, 메모리 시스템 버스등의 이상유무를 점검 하며 기본적인 하드웨어에 이상이 없으면 시스템에 장착된 하드웨어를 초기화하여 시스템을 제어할 수 있는 상태로 전환한다.

 시스템에 장착된 목록을 만들고 그 하드웨어에 관한 기본적인 드라이버를 적재하며, Boot PROM 변수에서 정의된 부팅 장치에서 솔라리스 부트 프록램을 읽어서 메모리에 적재한 후 부트 프로그램에 제어권을 넘기면 Boot PROM의 역할은 끝난다.

1

관리상태

싱글유저(단일 사용자) 상태, 멀디유저 화일시스템이 언마운드 되고 데몬도정지

2

멀티유저(다중 사용자) 상태. 화일시스템이 마운트되고 정규 사용자 서비스가 시작 된다

3

솔 라리스의 기본 런 레벨

솔 라리스에서 제공하는 모든 서비스를 제공

NFS(Network File System)상태. 다중사용자가 네트웍을 통해 화일시스템을 서비스 받을 수 있다.

4

사용자 정의. 현재 거의 사용하지 않음

5

정지(halt) 및 전원 차단

6

기본수행단계로 리부팅

S,s

솔라리스에서 가장 기본적인 서비스만 제공되는 런 레벨

부팅시 런 레벨 S,s로 설정되어 작업 → 런 레벨 3 으로 설정됨

단일사용자(싱글유저) 상태. "root"사용자만이 시스템에 접근가능하며 최소한의 루트 파일시스템만 사용가능한 상태

시스템의 잘못된 설정 파일수정 / 파일시스템 복구 / 백업용도로 사용

 

  현재 사용중인 런 레벨은 현재 시스템에 로그인한 사용자 목록과 로그인에 관련된 정보를 출력해주는 who 명령어에 -r 옵션을 함께 사용하면 알 수 있다.(# who -r)

 

/sbin/init 명령어
 init 명령어는 솔라리스가 부팅할 때 가장 마지막 단계인 init 단계(/etc/inittab파일에 따라 init 프로그램의 행동이 결정되며, 부팅 단계 중 init 프로그램 실행 과정이 가장 많은 시간을 요하고 작업량도 가장 많다. init 과정에서는 현재 시스템에 필요한 파일시스템을 마운트하거나 서비스를 제공하는 프로세스를 생성한다)에서 실행되는 명령이다.

init 명령어가 실행되면 /etc/inittab 파일에 명시된 대로 시스템에 필요한 서비스를 제공하거나 시스템을 종료하기 위해 여러 스크립트를 실행한다. init 명령어는 시스템이 시작할 때뿐만 아니라 솔라리스가 동작 중에도 사용할 수있으며, 반드시 root 사용자 권한을 필요로 한다.

 init 명령어의 실행 형식은 다음과 같다.

# init 런 레벨(012356Ss)

 init 명령어 다음에 가고자 하는 런 레벨을 입력하면 해당하는 런 레벨로 즉시 변경한다. init 명령어는 런 레벨을 실행하기 위해서 /etc/inittab 파일에 명시된 대로 동작한다.

 참고로 위에서 알아본 런 레벨과 init 명령어를 이용해 종료 / 재부팅을 하려면 아래와 같이 조합해서 사용하면 된다.(http://blog.naver.com/schmeckcrono)

1) init 5 : 셧다운 후에 파워오프(썬장비에서는 가능, x86에서는 안됨)
2) init 6 : 셧다운 후에 리부팅
3) init 0 : 셧다운 후에 PROM Mode 진입

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

참고 : sync(Synchronizing Data)

 위 에서 사용한 init와 잠시후 살펴볼 shutdown, reboot(=init 6, 시스템 재시작) 명령과는 달리  halt(=init 0), poweroff(=init 5) 에서는  해당 명령을 수행하기전에 sync 명령어를 이용해  디스크에 아직 기록 되지 않는 메모리상의 데이터를 저장해 주어야 한다.

 다 중 사용자 환경이니 저장되지 않고 메모리 상에만 남는 데이터가 생기는데 이를 위해 sync 명령어를 이용하여 메모리 상에 존재하는 데이터를 디스크에 저장하게 된다. sync 명령은 한번이 아닌 여러번(3번 정도) 입력하는데 이유는 한번의 sync time에 기록되지 않는 누락된 데이터를 저장하기 위해 여러번 하는 것이다.

 예) # sync, sync, sync (, 혹은 ; 으로 구분해도 되고 sync를 따로 입력후 엔터)
      # halt

* init, shutdown, reboot 등의 명령어는 sync 명령을 자동으로 수행해 준다. 단, -n 옵션을 이용하면 sync 작업을 생략한다.

 

참고할 곳 : http://serings.tistory.com/71 
              
http://blog.naver.com/dalmagru?Redirect=Log&logNo=70002584442
               http://blog.naver.com/schmeckcrono?Redirect=Log&logNo=90015496136
---------------------------------------------------------------------

/usr/sbin/shutdown 명령어
shutdown 명령어는 시스템의 상태를 바꾸거나 시스템을 종료할때 가장 많이 사용하고 가장 안전한 명령어이다. shutdown 명령어는 init 명령어처럼 런 레벨을 변경하게 되면 /etc/inittab 파일에 명시된 대로 스크립트를 실행하고, root 사용자의 권한을 필요로 한다.

형식 shutdown [-g grace-period] [-i 0156Ss] [-y] [messages]

 -g : g 옵션 다음에 지연 시간을 초 단위로 명시할 수 있으며, -g옵션을 사용하지 않으면 60초 
       
동안 지연된다.
 -y : y 옵션을 사용하면 지연시간이 다 되었을때 런 레벨을 바꿀 것인지 확인하는 기능에
       무조건 y를 선택하게 된다.
 -i : i 다음에는 원하는 런 레벨을 입력한다. init 명령에서는 모든 런 레벨로 변경이 가능하지만
      shutdown 명령어는 0156Ss로만 변경가능하고, 2 혹은 3 레벨로는 변경이 불가능 하다.
      -i 옵션을 생략하면 런 레벨 S로 전환된다.
 messages : 메시지를 적으면 로그인된 사용자에게 메시지를 뿌려준다. 아무런 메시지 없이
                  시스템을 끄거나 재부팅 하면 아마도 굉장한 원망을 들을 것이다.
                   System shutdown for repair hardware와 같은 메시지라도 적는 것이 기본.

예) shutdown -y -g 600 -i 5 "System shutdown for repair hardware." 
   600초 후에 런 레벨 5(셧다운 후 파워 오프) 마지막에 자동으로 대답하고 뒤의
   메세지를 로그인한 모든 유저에게 뿌려주면서 빨리 나가라고 경고 한다.
   (http://blog.naver.com/schmeckcrono?Redirect=Log&logNo=90015496136)

/usr/ucb/shutdown 명령어
 솔라리스에는 shutdown 명령어가 두 개 있다. 두 shutdown 명령어 모두 기능은 유사하지만 /usr/sbin/shutdown 명령어는 System V 계열의 명령어로서 솔라리스 2.X 버전에 처음 도입되었고, /usr/ucb/shutdown 명령어는 BSD 계열의 shutdown 명령어로서 솔라리스 1.X 버전에도 존재한다.

 

형식 shutdown [-h | -p | -r] [+minutes | now] [messages]

 

 - h : h(halt) 옵션을 사용하면 Boot PROM 상태로 전환된다
 - p : p(power off) 옵션을 사용하면 시스템 전원을 끈다
 - r : r(reboot) 옵션을 사용하면 시스템을 재부팅 한다

 +minute : + 다음에 지연 시간을 분 단위로 입력 가능하다. 설정하지 않으면 기본은 5분 이다
 now : 지연시간 없이 바로 실행

 h, p, r 옵션중 아무것도 입력하지 않을 경우 -h 옵션이 기본으로 설정된다.

 

/usr/sbin/halt, /usr/sbin/poweroff, /usr/sbin/reboot

 - halt : 시스템을 Boot PROM 상태로 전환
 - poweroff : 시스템의 전원을 끔
 - reboot : 시스템을 재부팅

 

☆ init / shutdown / halt / poweroff /reboot 명령의 특징.

init / shutdown의 경우는 셧다운 과정에서 현재 실행중인 데몬들과 프로세스들을 종료하고 파일시스템도 정상적으로 언마운트 하는 과정(/etc/inittab 파일의 내용을 참조하여 rc0 script 실행)을 거치는데 halt, poweroff, reboot는 그런 과정을 거치지 않고 모든것이 강제 종료되어 시스템에 악영향을 끼칠 수 있다. 

 

 따라서 init 혹은 shutdown 명령을 이용하는 것이 좋다.

 

 참고로 reboot 명령어는 다른 명령어와 달리 특별한 기능이 있다. reboot 명령어를 실행할 때 특별한 형식에 따라 옵션을 명시하면 Boot PROM 상태의 boot 명령어에 아규먼트나 옵션을 전달할 수 있다. 이 기능을 사용하기 위해서는 reboot 명령어를 다음의 형식에 따라 입력해야 한다.

 

 reboot -- boot_options

 

 - 기호 다음에 옵션 혹은 아규먼트를  명시하면 그 내용이 그대로 Boot PROM 상태의 boot 명령어에 전달된다.

 

예) reboot -- -r

    하드웨어가 추가로 장착되거나 제거 되었을 때 -r 옵션을 사용하면, 장착된 
    하드웨어에 관련된 파일들을 갱신하여 재구성 한다.

     ( /reconfigure 파일을 만들어 부팅한 것과 동일한 기능을 제공한다. 즉 /devices
       디렉토리에 존재하는 물리적인 장치 파일과 /dev 디렉토리에 존재하는 논리적인 
       장치 파일을 모두 새롭게 생성하며 /etc/path_to_inst 파일의 내용도 새롭게 갱신
       한다.)

 

* 전체적인 내용들은 한빛 Solaris Bible을 참조 할 것.



Solaris DiskSuite (SVM) RAID 구성 및 제거

회사에서  굴러다니는 Ultra 10(SPARC-II 440MHz) 로 RAID 구성을 해보았습니다. (작성일자 : 2010.04.12)

환경 : Solaris 8, SPARC


1. RAID 구성 계획 (RAID 1)


1.1. Disk 구성 확인

format 을 이용하여 Disk  구성을 확인해야합니다.

# format
Searching for disks...done


AVAILABLE DISK SELECTIONS:
       0. c0t0d0 <ST39120A cyl 17660 alt 2 hd 16 sec 63>
          /pci@1f,0/pci@1,1/ide@3/dad@0,0
       1. c0t1d0 <Maxtor 5T020H2 cyl 38790 alt 2 hd 16 sec 63>
          /pci@1f,0/pci@1,1/ide@3/dad@1,0
Specify disk (enter its number): 0

selecting c0t0d0
[disk formatted, no defect list found]


FORMAT MENU:
        disk       - select a disk
        type       - select (define) a disk type
        partition  - select (define) a partition table
        current    - describe the current disk
        format     - format and analyze the disk
        repair     - repair a defective sector
        show       - translate a disk address
        label      - write label to the disk
        analyze    - surface analysis
        defect     - defect list management
        backup     - search for backup labels
        verify     - read and display labels
        save       - save new disk/partition definitions
        volname    - set 8-character volume name
        !<cmd>     - execute <cmd>, then return
        quit
format> p             <- p 입력


PARTITION MENU:
        0      - change `0' partition
        1      - change `1' partition
        2      - change `2' partition
        3      - change `3' partition
        4      - change `4' partition
        5      - change `5' partition
        6      - change `6' partition
        7      - change `7' partition
        select - select a predefined table
        modify - modify a predefined partition table
        name   - name the current table
        print  - display the current table
        label  - write partition map and label to the disk
        !<cmd> - execute <cmd>, then return
        quit
partition>  p             <- p 입력

Current partition table (original):
Total disk cylinders available: 17660 + 2 (reserved cylinders)

Part      Tag    Flag     Cylinders         Size            Blocks
  0       root    wm       0 -  9406        4.52GB    (9407/0/0)   9482256
  1       swap    wu    9407 -  9657      123.54MB    (251/0/0)     253008
  2     backup    wu       0 - 17659        8.49GB    (17660/0/0) 17801280
  3       swap    wm    9658 -  9707       24.61MB    (50/0/0)       50400
  4 unassigned    wm       0                0         (0/0/0)            0
  5 unassigned    wm       0                0         (0/0/0)            0
  6 unassigned    wm       0                0         (0/0/0)            0
  7       home    wm    9708 - 17658        3.82GB    (7951/0/0)   8014608

partition>

위의 내용을 보시면 총 용량은 8.49GB  / 4.52GB  swap 123.54MB   swap 24.61MB   home 3.82GB 로 나오네요.

여기선 제가 미리 metadb 를 사용할 공간을 만들어 놓았습니다.
처음에 swap(metadb) 를 사용할 부분을 만들지 않았다면 2번 슬라이스 swap 를 쪼개서 3번 슬라이스에 넣을수 있습니다.


1.2. Swap(볼륨데이버베이스) 공간 확보하기(c0t0d0s3 을 불륨데이터베이스로 구성)

밑의 내용을 미리 만들지 못한 metadb 용량을 swap 을 이용하여 만드는 방법입니다.

# mkfile 200m /swap1                      <--- 500MB 의 swap1 파일을 만드는 방법입니다.

# swap -l
swapfile             dev  swaplo 블록   사용 가능
/dev/dsk/c0t0d0s1      85,2      16 252992 252992

# swap -a /swap1                 <-- swap 에 임시적으로 500MB 만든 파일을 추가합니다.
              
# swap -l
swapfile             dev  swaplo 블록   사용 가능
/dev/dsk/c0t0d0s1      85,2      16 252992 252992
/swap                 -       16 1023984 1023984                           <-- 추가되었는지 확인

# swap -d /dev/dsk/c0t0d0s1               <-- swap 에서 c0t0d0s1 제거


이제 1.1. Disk 구성하기를 다시 한번 보시고 제가 만든것 처럼 슬라이스 2번 swap의 용량을 줄여서 슬라이스 3번에 조그만하게 만들어 놓으시면 됩니다.

제가 구성한것을 참고 하시고 swap 을 재구성 하신다음 밑의 내용을 보시면 됩니다.

# swap -a /dev/dsk/c0t0d0s1           <-- swap 에서 c0t0d0s1 을 원래대로 추가

# swap -d /swap                            <-- swap 에서 /swap 제거(용량이 많으시면 제거 안하셔도 됩니다. ^^:)



1.3. Disk RAID 구성

Part      Tag    Flag     Cylinders         Size            Blocks
  0       root    wm       0 -  9406        4.52GB    (9407/0/0)   9482256
  1       swap    wu    9407 -  9657      123.54MB    (251/0/0)     253008
  2     backup    wu       0 - 17659        8.49GB    (17660/0/0) 17801280
  3       swap    wm    9658 -  9707       24.61MB    (50/0/0)       50400
  4 unassigned    wm       0                0         (0/0/0)            0
  5 unassigned    wm       0                0         (0/0/0)            0
  6 unassigned    wm       0                0         (0/0/0)            0
  7       home    wm    9708 - 17658        3.82GB    (7951/0/0)   8014608


d1          c0t0d0s0, c0t1d0s0
d11         c0t0d0s0 
d12         c0t1d0s0

d2          c0t0d0s7, c0t1d0s7
d21         c0t0d0s7
d22         c0t1d0s7

d3          c0t0d0s1, c0t1d0s1
d31         c0t0d0s1
d32         c0t1d0s1

이렇게 미리 구성 계획을 잡고 하시면 편합니다~



2. RAID 1 구성하기


이제부터는 간단간단 하게 작업 하도록 하겠습니다.


# metadb -f -a c3 c0t0d0s3 c0t1d0s03
or
# prtvtoc /dev/rdsk/c0t0d0s0 | fmthard -s - /dev/rdsk/c0t1d0s0

# metainit -f d11 1 1 d0t0d0s0 (원본)

# metainit d12 1 1 c0t1d0s0

# metainit d1 -m d11 (원본)

# metaroot d1                       <-- /etc/vfstab 에서 root 부분이 c0t0d0s0 에서 d1 로 변경됩니다.


# metainit -f d21 1 1 d0t0d0s0 (원본)

# metainit d22 1 1 c0t1d0s0

# metainit d2 -m d21 (원본)


# metainit -f d31 1 1 d0t0d0s0 (원본)

# metainit d32 1 1 c0t1d0s0

# metainit d3 -m d31 (원본)

# cp /etc/vfstab /etc/vfstab_old                 <-- 백업본으로 복사
# vi /etc/vfstab

/dev/dsk/c0t0d0s7 부분들을 /dev/md/dsk/d2  으로 모두 상황에 맞게 수정해 주세요!

# cp /etc/system /etc/system_old             <-- 백업본으로 복사   
# vi /etc/system

set md:mirrored_root_flag=1           <--   맨 밑에 부분에 추가

# sync;sync;sync;
# reboot -- -r

부팅시 에러 상황 체크 하시길 바랍니다.



# lockfs -fa                        <-- Server 에서 많은 I/O 발생이 있다면 하셔야 합니다.

# metattach d1 d12                    <-- 동기화 작업, d1이 원본 입니다.

# metattach d2 d22                    <-- 동기화 작업, d2이 원본 입니다.

# metattach d3 d32                    <-- 동기화 작업, d3이 원본 입니다.


# metastat          <-- 동기화 진행 상황 체크하세요~


동기화가 끝이 나면 밑의 내용도 보시고 추가 및 수정 하세요!



# ls -l /dev/dsk/c0t0d0s0
lrwxrwxrwx   1 root     root          46 2008년 11월  5일 /dev/dsk/c0t0d0s0 -> ../../devices/pci@1f,0/pci@1,1/ide@3/dad@0,0:a

# ls -l /dev/dsk/c0t0d0s1
lrwxrwxrwx   1 root     root          46 2008년 11월  5일 /dev/dsk/c0t0d0s1 -> ../../devices/pci@1f,0/pci@1,1/ide@3/dad@0,0:b

# eeprom "nvramrc=devalias rootdisk /pci@1f,0/pci@1,1/ide@3/disk@0,0 devalias rootmirror @1f,0/pci@1,1/ide@3/disk@1,0"

# eeprom "use-nvramrc?=true"

# eeprom boot-device="rootdisk rootmirror net"


이렇게 하시면 끝이 납니다.



3. RAID 제거 방법


# metadetach d1 d12

# metadetach d2 d22

# metadetach d3 d23

# metaroot /dev/dsk/c0t0d0s0    <--  다른 부분들은 /etc/vfstab 에서 수동으로 수정하세요)

# reboot -- -r


# metaclear -r d1 ; metaclear d11
# metaclear -r d2 ; metaclear d21
# metaclear -r d3 ; metaclear d31



4. RAID 복구(Disk Fail) 방법

문제 발생한 Disk 의 metadb 삭제 (예, c0t1d0s0)

# metadb -d -f /dev/dsk/c0t1d0s0

새로운 Disk 추가

# devfsadm or disks             <-- Solaris 8 이상
# devconfig or disks             <-- Solaris 7 이하

추가된 Disk가 format 명령어에서 나타나면 Disk 를 사용할 수 있도록 정리합니다. (newfs 아시죠?)

# metareplace -e d1 c0t1d0s0

복구도 이제 끝~


RAID 구성, 제거, 복구 방법을 대충 대충 해놓았는지라 설명이 부족할 수 있지만 어느정도 Solaris를 만졌다고 하시는 분들은 대충 아실테니 양해 바래요~


Solaris 설치 후 기본 설정

Posted 2010. 4. 12. 17:10

Solaris 설치 후 기본 설정

한번씩 나오는 건망증으로 인해 서버 설치 후 기본적인 설정을 적어 놓습니다.  (작성일자 : 2010년 04월 12일)



1. 네트워크 설정

# vi /etc/hosts

127.0.0.1       localhost

192.168.1.200   test loghost

 
# vi /etc/hostname.hme0

test
 

# vi /etc/netmasks

192.168.1.0     255.255.255.0

 
# vi /etc/defaultrouter

192.168.1.254


    - 부팅시 Gateway 자동인식이 안돼면
  
     route add default 192.168.1.254
 

# vi /etc/resolv.conf

nameserver 168.126.63.1

 
# vi /etc/nsswitch.conf

hosts:    files dns



2. Solairs에서 /home 디렉토리 사용하기

# vi /etc/auto_master

+auto_master
/net            -hosts          -nosuid,nobrowse
/home           auto_home       -nobrowse
/xfn            -xfn

여기서 /home 부분을 주석(#) 처리 하면 됩니다.

#/home           auto_home       -nobrowse

적용을 위해서는 reboot 하셔야 합니다.



3. 시스템 시간 맞추기


3.1. rdate

수동으로 작업

# rdate time.bora.net


자동(스크립) 작업

# vi /etc/rc3

rdate time.bora.net           <-- 추가


3.2. XNTP

ntp 프로그램이 설치 되었는지 확인

# pkginfo | grep ntp  

설치 되어 있지 않다면   http://www.sunfreeware.com 에 방문하여 패키지를 다운 받으시길...

# cp /etc/inet/ntp.client /etc/inet/ntp.conf                 <--- 복사  작업

# vi ntp.conf

server time.bora.net
server time.nuri.net
server gps.bora.net
server ntp1.cs.pusan.ac.kr
server ntp.ewha.net
server ntp1.gngidc.net
server ntp2.gngidc.net
server time.kriss.re.kr

위의 내용을 추가

# /etc/init.d/xntpd start           <-- 시작

# ntpq -p        <-- ntp 서버에 접속하는지 확인~~




« PREV : 1 : 2 : 3 : 4 : 5 : ··· : 11 : NEXT »