태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

티스토리 툴바


블로그 이미지
happytalkman@gmail.com
windyman

Notice

Recent Comment

Recent Trackback

Archive

calendar

1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
  • 94,444total
  • 14today
  • 23yesterday

http://blog.naver.com/musicjava/19629014...

2009/07/29 13:17 자료실
터미널을 통한 텔넷접속을 위해서
# vi /etc/default/login
   CONSOLE=/dev/console -> # CONSOLE=/dev/consol 로 주석처리 한다.


ifconfig -a 하면 네트워크 연결 상태를 볼수 있음


-네트웍 설정하기
ifconfig hmel plumb
ifconfig -a
ifconfig qfe0 plumb //올리기
ifconfig -a  //확인
ifconfig qfe0 unplumb //내리기

ifconfig hmel 192.168.10.10 netmask 255.255.255.0 up //ip 부여
ifconfig -a  //확인


특정 port를 이용한 telnet

# vi /etc/services
 //정의를 해줌
--특정포트를 추가하면 ip로 접근 불능


# vi /etc/inetd.conf
 //설정을 함


telnet 을 열려면
 /etc/default/login


COMSOLE=/dev/console앞에 #을 붙임


ftp를 열려면
 /etc/ftpd/ftpuser

계정에 # 주석처리 후 열수 있음


**Not on system console
이라고 뜨면 주석처리가 안된것!!!

<특정포트로 텔넷열기 실습>

# vi /etc/services
telnet2 233/tcp ; 추가해줌


# vi /etc/inetd.conf


#telnet stream tcp6 nowait root /usr/sbin/in.telnetd in.telnetd
 ;주석으로 막아놓고
telnet2 stream tcp6 nowait root /usr/sbin/in.telnetd in.telnetd
 ;이 라인 추가


ps -ef | grep inetd


kill -9 12168


ps -ef | grep inetd


/usr/sbin/inetd -s


새로 창을 열어서 telnet sun03 608 하면 접속 가능



메시지 날리기
telnet sun03 으로 login 한후
 tty 하면 창번호를 알수 있음 ex)8
다른 창을 열어서 telnet sun03 으로 login 한후
 banner okok > /dev/pts/8  이라고 하면 다른 창으로 okok 메시지가 감

입력 리다이렉션 이용
psrinfo -v > test1 // cpu에 대한 정보를 자세히 보고 test1으로 넘김


cat test1 //확인


vmstat 1 10 >> test1
 //cpu정보를 1초당 10줄씩 해서 test1에 추가로 입력


cat test1 //확인



링크
-s option을 주면 심볼릭 링크
다른 옵션은 줘도 하드링크!!
ls
touch test2  //생성
ln -f test2 test3 //하드링크
ls -li  //확인
ln -s test2 test4 //심볼릭링크
ls -l  //확인
//링크가 화살표로 되어 있는지 확인한다***



find 명령어
# find . -name "*.html" -print


 // 시작점 . 에서 html로 끝나는 파일을 찾아 화면에 프린트



Swap
메모리의 2배!!(권장용~~2배이상인 경우도 있음)
//자동설치시 2배로 설치가 안됨! 512M로 설치됨


df -k  //메모리 확인


c0t0d0s0
c: 컨트롤러 > t: 타겟 > d: 디스크 > s: 슬라이스


Format
mount /dev/dsk/c0t1d0s0 /data1 //data1에 마운트 시킴!


df -k  // 확인

Swap 해보기!//나의 디렉토리에서


mkfile 10m swapadd //10m 짜리 swapadd라는 파일을 생성


swap -a /sbs/pms/swapadd //반드시 절대경로!(-a = add)


swap -l  // 확인


swap -d /sbs/pms/swapadd //지우기!


----vi /etc/vfstab     //sbs/pms/swapadd 추가 해주면 껐다 켜도 swap이 추가가됨!


 //필드가 7개가 있는데 전부 만족이 되어야 함!


솔라리스 부팅순서!!!
1. PROM이 POST를 실행 //Power On Self Test
//●●○ ->하드웨어에 이상이 있을시 서버 LED 가운데에 주황색불이 들어옴!!


2. boot device 결정


3. 부트프로그램인 bootblk를 load

4. bootblk는 2번째 부트프로그램인 ufsboot를 load

5. ufsboot는 kernel을 load (32bit or 64bit)
//인스톨시 볼수 있음!(32bit or 64bit)

6. kernel은 자신을 초기화하고 module을 load

7. configuration 파일인 /etc/system을 읽음 //부팅시 읽어들임!

8. kernel이 /sbin/init을 실행


Run level


who  //현재 접속한 사용자 보기


who -r // Run level 확인(기본은 3)


Run level 0 = PROM 상태다! //OS가 전혀 올라가 있지 않음!
Run level s = Single Mode //가장 기본적인 서비스만 제공
                   // 1. 장애시 장애복구를 위해 주로 이용
                   // 2. Backup을 위해 이용(요즘에는 거의 이용X)
                   // 3. Patch 를 하기 위함(다형성우선)||
Run level 1 // 모든 지역파일 시스템이 mount 됨!
Run level 2 // 공유서비스 제공안함
Run level 3 // 모든 서비스 제공
Run level 4 // 솔라에서 사용안함
Run level 5 = sync;sync;sync 한뒤 init 5 //서비스 종료후 전원까지종료
Run level 6 = rebooting


** System V 계열의 init demon은 Run level 제공


** ok 모드에서는 전원을 내려서 파워를 꺼도 상관이 없음


**부팅이랑?? 시스템을 운용할 수 있도록 하는 준비 과정


시작스크립트
init은 각종 스크립트를 수행, 시스템 운영환경을 구축!

#cd /etc/rc2.d
#ls //K....=kill, S....=start 하는 스크립트
 //S....=start 스크립트가 구동이 안되게 하려면 소문자로 변경하면됨
./S72inetsvc stop //S로 시작하는 스크립트 stop
./S72inetsvc start //S로 시작하는 스크립트 start

#cd /etc/rc3.d
#ls -l //run level 3에서만 구동이 되는 것들


start 스크립트 만들기


vi S62testscript


 ls -l  //적을 내용

 ps
 psrinfo  //:wq! --저장!


ls -l   //S62testscript 생성 확인


chmod 744 S62testscript //권한부여


./S62testscript start //실행!



Root Password를 잃어버렸을 때


login이 불가 하므로 "stop" key와 "a" key를 동시에 누름 //PROM mode로 전환


OK를 한 후 boot에서 아무것도 안누르면 디폴트로 됨


ok>  boot cdrom -sw


shell prompt(#)가 나타나면 /로 사용하던 disk device를 /a로 mount 한다.


▼▼▼ /로 사용하던 disk device가 /dev/dsk/c0t0d0s0인 경우


# mount /dev/dsk/c0t0d0s0 /mnt
----------------------
mount  = dsk        --
new -s = rdsk       --
----------------------
마운트 한 뒤


vi /mnt/etc/shadow


 root:vBrrOh8AIqYV6:6445::::::  //passwd 부분!!!!!!!!
             vBrrOh8AIqYV6 <-- 이 부분을 지운뒤 저장!


그 뒤에 rebooting!


디스크추가

다른하드웨어 추가시 전원을 내리고 교체

재전환경-시

c0t2d0s5
>la 로 저장
>p
 5번 슬라이스에 3기가 지정해준것을 볼수있음

이번에는 5GB 를 마운트하고 싶다.
 
c0t2d0s4  < 4번 슬라이스 선택
스타트 실린더는 절대 중복이 되면 안됨. 1336 실린더가 됨.
용량은 5GB

모든설정이 끝났으면
>q
>q
ctrl + d (한번에 빠져나옴)


#newfs /dev/rdsk/c0t2d0s5
 newfs 를 하지 않으면 디스크를 사용할수 없다. 도스에서 포맷하고 똑같음.


#mkdir testdir
#mount /dev/dsk/c0t2d0s5 /testdir
#du -k


마운트 하는과정
sun02[/]#df -k

rartition>p
partition>0
         :?
         :
        [wm]:
        cyi[0]:
          ]:3g
        >p
        >1
        :
        :
        cyi:1336 다음번호
          >3
         cyi[0]:2227
         >4
         cyi:2448
         :$ 나머지 용량다 잡아줌
         >p
         >la
           :y
sun02[/]#format
         >p
         끝나면 la 로 저장하고 나옴.
        빠져나올때 ctrl + d
       
sun02[/]#newfs /dev/rdsk/c0t2d0s5
         ? y
sun02[/]#mkdir test1
sun02[/]#mount /dev/dsk/c0t2d0s5 /test1
sun02[/]#df -k
sun02[/]#umount test1
sun02[/]#df -k



uname 에 관하여


showrev -p | grep 118558 //정보를 보여줌~


EEPROM 에 관하여


ok>setenv output-device screen //output-device가 screen으로 변경이 됨


#eepron output-device=screen //


ok>printenv output-device //output-device의 파라미터 기본값을 확인


boot-device에서 ok 모드로 설정을 바꾸려고 할때


ok>setenv boot-device net


ok>reset


#eeprom boot-device=net  //boot-device가 net으로 설정

디스크 꽂는 곳 = bay
메모리 꽂는 곳 = 메모리 벙크


ok>setenv auto-boot? true or false


ok>reset


#eeprom auto-boot?=true or false //true: login창 바로 뜸, false: ok mode로 떨어짐


fsck


fsck (-y) /dev/rdsk/c0t0d0s0 //이런식으로..


NFS
/usr/lib/nfs/nfsd
/usr/lib/nfs/mountd  // 두 데몬이 떠 있어야 함


/etc/rc3.d/S15nfs.server // 두 데몬이 떠있지 않으면 start 시킴


shareall   //mount
unshareall   //unmount

share [-F nfs] [-o specific option] [-d description] pathname
   //[rw, ro] -o option은 반드시!!


** NFS 는 run level 3에서 구동되는 스크립트


#./etc/rc3.d/S15nfs.server start


** NFS server //ex) cdrom 사용시


/usr/sbin/shareall -F nfs


/etc/rc3.d/S15nfs.server start


ps -ef | grep nfsd  //확인


ps -ef | grep mountd  //확인


/usr/sbin/share   //확인

sbs 공유(서버: sun02)
vi /etc/dfs/dfstab  
// share -F nfs -o ro -d "nfs test" /sbs 텍스트 추가

shareall

share   //확인

** NFS client
----------
(클라이언트: sun03)

mkdir sbstest

mount -F nfs -o ro sun02:/sbs /sbstest  //공유완료

 

posted by windyman
2009/07/29 13:16 자료실
- OS 버전의 확인
# uname -a
SunOS sonamu 5.8 Generic_108528-15 sun4u sparc SUNW,Ultra-1

- 솔라리스 정보
솔라리스 9
http://kr.sun.com/products/software/os_platforms/solaris/index.html
솔라리스 8
http://kr.sun.com/products/software/os_platforms/solaris/8/index.html
전체 버전 간의 차이 비교
http://wwws.sun.com/software/solaris/fcc/fcc.html
솔라리스 x86(Intel) 하드웨어 호환 리스트(HCL)
http://www.sun.com/bigadmin/hcl/


6. SUN & Solaris 관련 사이트

1) 썬 관련 레퍼런스 (추천)
http://www.stokely.com/unix.sysadm.resources/faqs.sun.html

2) 썬 공식 도큐먼트
http://docs.sun.com
http://www.sun.com/bigadmin/ (BigAdmin System Administration Portal)

3) SUN관련 FAQ
http://www.science.uva.nl/pub/solaris/solaris2.html (Solaris2 FAQ)
http://www.mreriksson.net/faqs/solaris8/ (Ola Eriksson's FAQ for Sun Solaris )
http://wks.uts.ohio-state.edu/sun/faqs/s86faq.html ( Intel FAQ)
http://item-hunter.com/~chang/src/lecture/faq/sol2faq.html (한글)
http://hawk.com.kyungnam.ac.kr/~opti21/unix/faq/index.html (han.comp.sys.sun FAQ 한글)

4) Sun Managers Summaries & Archives Search
http://www.sunmanagers.org ( 공식 홈페이지)
http://www.sunmanagers.org/archives.html ( 아카이브 리스트)
http://www.latech.edu/sunman-search.html ( 아카이브 검색)
http://news.google.co.kr ( 모든 뉴스 그룹 검색)

5) 장비 관련
http://sunsolve.sun.com/handbook_pub/Systems/ ( SUN 시스템 핸드북)
http://sunsolve.sun.com/handbook_pub/Devices/ ( SUN 부붐별 핸드북)


2부. 솔라리스의 접근과 사용자 관리

1. 시스템의 접근

1) Consol로 직접 로그인과 telnet, rsh, ssh (Shell 사용), Xmanager(Windows 사용) 등의 원격 로그인
- telnet : 이 기종간의 시스템 접근 가능 ( Port 23)
- rsh : Unix 기종간의 시스템 접근 가능
- ssh: Unix 기종간의 시스템 접근 가능 (보안쉘, Port 22)
http://www.openssl.org
http://www.openssh.org

2) 시스템 사용자: root와 일반 사용자
root: 슈퍼유저, 시스템 어드민, 초기 설치 시 패스워드 결정, 모든 권한, 기본쉘은 /sbin/sh
일반유저: 일반사용자.

3) 관련 파일
/etc/passwd 파일
user1:x:102:10:User Account 1: /export/home/user1:/bin/ksh
/etc/shadow 파일
user01:haN3NqcDfof.2:::::::
/etc/group 파일
other::1:user01,user02

4) 사용자 관리
/usr/bin/passwd 명령 : 자신의 패스워드 변경 (일반 유저), 다른 사용자의 패스워드 변경(root)
* 패스워드 생성 규칙(일반유저)
- 6~8 문자
- 두 개의 알파벳과 하나의 특수문자 또는 숫자 포함
- 로긴 이름과 다르게
- 변경 전 패스워드와 다르게
- 공백을 포함할 수 있다.

/usr/sbin/groupadd 명령 : 그룹을 생성 ( GID는 100 ~ 60000 번까지)
ex) # groupadd -g 100 class1

/usr/sbin/useradd 명령 : 유저를 생성 ( UID는 100 ~ 60000 번까지)
ex) # useradd -u 501 -g 100 -d /export/home/user01 -m -c "User Account 1" -s /bin/ksh user01

/usr/sbin/groupdel 명령 : 그룹을 제거
ex) # groupdel class1

/usr/sbin/userdel 명령: 유저를 제거
ex) # userdel [-r] user01

/usr/sbin/usermod, /usr/sbin/groupmod 는 수정 시 사용

* 어드민 GUI 툴 : 사용자, 그룹, 호스트, 프린터, 직렬포트, 소프트웨어, 14(sysadmin) 그룹은 사용가능.
/usr/bin/admintool


3부. 사용자 기본 명령

사용자 기본명령은 다음을 참고한다.
http://www.gohtml.pe.kr/lec/unix1.html
http://unix.co.kr/data/solaris/?p=16
http://whoami21.com/~kimlee/telnet1.htm
http://www.hwaseong.ms.kr/unix1.htm

1. 정보 출력

1) 시스템 이름 및 OS버전 확인
$ uname -a
$ cat /etc/release (=> OS의 릴리즈 확인)

2) 현재 로그인한 사용자 정보
$ who (/var/adm/utmpx)

3) 최근 로긴했던 사용자 정보 + 재 부팅 정보
$ last (/var/adm/wtmpx)
$ last user01
$ last reboot

4) 프로세스 정보
$ ps -ef | grep netscape
$ pgrep netscape (solaris 8부터)

5) 날짜 및 시간 출력
$ date
$ cal

6) 맨 페이지
$ man man
$ man -k calendar
cf. # catman -w (관리자 root가 실행)
$ man -s5 man (5 section manual)

- Section Definition -
관련 파일: /usr/share/man/man.cf, /usr/share/man/entities/*
1: User Commands
1M: System Administration Commands
2: System Calls
3: Basic Library Functions
4: File Formats
5: Standards, Environments and Macros
6: Demos
7: Device and Network Interfaces
9: Device Driver Interfaces

- 맨페이지 위치
/usr/share/man/
/usr/openwin/man/
/usr/dt/man

- 맨페이지 추가
# vi /etc/profile
...
MANPATH=/usr/share/man:/usr/openwin/man:/usr/dt/man:<추가할 맨페이지 디렉토리>
export MANPATH

2. 파일과 디렉토리 접근

주의 - 파일과 디렉토리, 명령 등은 모두 대소문자를 구별한다.

1) 패스이름
- 절대경로(Absolute Path Name) : root(/)를 기준으로 기술, /usr/local/src/file1
- 상대경로(Relative Path Name) : 현재 디렉터리를 기준으로 .또는 ..으로 기술, dir1/subdir1/file2

2) 관련 명령어
- ls(list) : 파일 또는 디렉터리의 리스트를 출력
- pwd(print working directory) : 현재 작업 디렉터리의 위치를 출력
- cd(change directory) : 작업 디렉토리를 변경

3. 파일과 디렉토리를 다루는 명령

- file : 파일 타입을 확인 (text, data, executable or binary)
- cat(catenate) : 주로 짧은 text파일을 볼 때
- more : 주로 긴 text파일을 볼 때
- strings: 바이너리 파일의 문자열만 보고자 할 때
- head: text파일의 머리부분(디폴트 10줄)만 보고자 할 때
- tail: text파일의 끝부분(디폴트 10줄)만 보고자 할 때 (tail -f /var/log/messages)
- wc(word count) : text파일의 라인 수, 단어 수, 문자 수를 알고자 할 때 ( wc file1)
- touch : 빈 파일을 생성할 때
- tee : 화면 출력과 파일 저장을 동시에 하고자 할 때 (ls -lR | tee logfile | more)
- mkdir : 디렉토리를 생성할 때
- rmdir : 빈 디렉토리를 제거할 때
- rm -r : 디렉토리를 제거할 때
- cp : 파일을 복사할 때
- cp -r : 디렉토리를 복사할 때
- mv : 파일 또는 디렉토리를 이름변경 또는 옮길 때

4. 파일과 텍스트 검색

- find : 파일 또는 디렉토리를 찾을 때
$ find / -name core
$ find ~ -name core -exec rm {} \;
$ find . -mtime +90
$ find ~ -size +57
$ find /usr -name '*tif'
- cmp, diff : 두 파일의 차이를 비교할 때
- sort : 파일의 내용 또는 리스트를 정렬할 때
$ ls -l | sort
$ du -ks /etc/* | sort -nr
- grep : 파일의 특정 문자열이 있는 라인을 출력
$ grep user01 /etc/passwd
$ ps -ef | grep ksh

5. 파일의 보안

$ ls -l
-rw-r--r-- 1 borisu staff 8239 2002년 8월 29일 backup.txt
-rw-r--r-- 1 borisu staff 2361 2002년 9월 3일 memo.txt
drwx------ 5 borisu staff 512 5월 20일 11:55 shell/
-rw-r--r-- 1 borisu staff 1660 4월 25일 01:37 ssh-setup.sh

File Type: -, f , d, c, b
Permission: read(r:4), write(w:2), execute(x:1)
User, Group, Others

1) 퍼미션 설정
$ chmod u+x file1 (symbolic mode)
$ chmod a=rx file1 (symbolic mode)
$ chmod 644 file1 (octal mode)

2) 소유권 변경 (root)
# chown user01 file1 (파일 소유자 변경 시)
# chgrp class1 file1 (파일 그룹 소유자 변경 시)
# chown -R user01:class1 dir1 (디렉토리 변경 시)

3) umask : 기본 퍼미션 제한
$ umask (확인)
$ touch file1
$ mkdir dir1
$ umask 027 (재설정)
$ touch fie2
$ touch dir2

6. Visual Editor (VI)

유닉스의 기본 편집기는 vi가 있고, 그밖에 emacs 등이 있다. GUI로는 dtpad가 있다.

- vi의 세가지 모드
Command Mode (명령 모드)
Edit Mode (편집 모드)
Last Line Mode (마지막 명령 라인 모드)

- vi 레퍼런스 카드 및 메뉴얼
http://kldp.org/응용_프로그램/에디터/Vi/


7. Archiving User Data

1) Archive 관련 명령

tar - Creates and extracts files from a tape device or file archive
compress, uncompress - Compress and uncompress a file
zcat - Uncompress a compressed file and sends the output to the screen without changing the compressed file.
gzip, gunzip - Compresses and uncompressed
gzcat - Uncompress a gzipped file and sends the output to the screen without changing the gzipped file
zip, unzip - Packages and compresses files and uncompressed files.
jar - Packages and comresses multiple files to a single archive file
cpio - Copies and extracts files fro a file archive or tape device.

[ tar ]

내용만 볼 때: tar tvf name.tar
풀 때 : tar xvf name.tar
만들 때 : tar cvf name.tar file1 file2 file3
tar cvf name.tar dir1

$ cd
$ mkdir testdir
$ cd testdir
$ cp /etc/profile file1
$ man ls | col -b > file2
$ tar cvf first.tar file1 file2
$ rm file? ; ls
$ tar tvf first.tar
$ tar xvf first.tar

$ cd ..
$ tar cvf second.tar testdir
$ rm -rf testdir
$ tar tvf second.tar
$ tar xvf second.tar

[ compress & uncompress ]

$ compress second.tar
$ ls
$ uncompress second.tar.Z
$ tar xvf second.tar

cf. zcat second.tar.Z | tar xvf -
cf. compress -dc second.tar.Z | tar xvf -
cf. uncompress -c second.tar.Z | tar xvf -

[ gzip ]

$ cd
$ cd ..
$ ls
$ tar cvf /var/tmp/myhome.tar user01
$ cd /var/tmp; ls
$ gzip myhome.tar
$ ls

$ gzip -d myhome.tar.gz
$ tar tvf myhome.tar
$ tar xvf myhome.tar

cf. gzcat myhome.tar.gz | tar xvf -
cf. gzip -dc myhome.tar.gz | tar xvf -
cf. gunzip -c myhome.tar.gz | tar xvf -
cf. gtar xvfz myhome.tar.gz

[ jar ]
$ jar cvf dir1.jar dir1
$ jar tvf dir1.jar
$ jar xvf dir1.jar

8. 원격지 접속

원격지 접속은 telnet, rlogin, ftp, ssh등이 있다.

1) telnet
원격 호스트의 user name과 password가 필요
$ telnet host1
...(접속해서 사용)
$ exit (로그 아웃)

2) rlogin

원격 호스트에서 허락된 호스트 또는 유저의 경우 패스워드가 필요 없다.
자세한 사용법은 다음을 참고한다.
http://nscp.upenn.edu/aix4.3html/cmds/aixcmds4/rlogin.htm

- 일반유저: /etc/hosts.equiv, $HOME/.rhosts
- root : /.rhosts
- 파일 형식 : 호스트 명 유저

$ rlogin host2
...(접속해서 사용)
$ exit (로그 아웃)

cf. rsh host1 hostname
cf. rcp file1 host1:/tmp

3) ssh (secure Shell)

명령어: ssh, scp, sftp
관련사이트:
http://www.openssl.org
http://www.openssh.org
관련 문서:
ssh howto
http://kldp.org/~eunjea/ssh/index.html
ssh install for solaris
http://www.sunfreeware.com/openssh.html

4) ftp

[ 접속 및 연결 끊기 ]

1) 일반 유저로 로긴
$ ftp server_name
또는
$ ftp
ftp> open server_name
ftp> user login_id
ftp> close
ftp> open new_server
ftp> quit

2) Anonymous 로긴
$ ftp server_name
Login: ftp ( or anonymous)
password: user01@suned.co.kr

[ 기본 설정 옵션 ]

ftp> hash (on/off: 전송상태를 표시)
ftp> ver (on/off: Verbose mode)
ftp> bin (Binary mode)
ftp> asc (ASCII mode)
ftp> prompt (on/off: 다중 파일 전송시 프롬프트 on/off)

[ 기본 명령 ]

ftp> cd (디렉토리를 옮길 때: REMOTE )
ftp> ls (디렉토리 내용을 볼 때: REMOTE )
ftp> pwd (현재 디렉토리 위치 확인: REMOTE)

ftp> lcd (디렉토리를 옮길 때: LOCAL )
ftp> !ls (디렉토리 내용을 볼 때: LOCAL )
ftp> !pwd (현재 디렉토리 위치 확인: LOCAL)
ftp> ! (Shell로 잠시 빠져나감: LOCAL)

[ 파일 전송 ]

ftp> get remote_file [local_file] (받을 때)
ftp> mget file1 file2 file3 file4 (여러 파일을 받을 때)

ftp> put local_file [remote_file] (올릴 때)
ftp> mput file1 file2 file3 file4 (여러 파일을 받을 때)

[ 기타 명령어 ]

ftp> del file_name (파일 지우기: REMOTE)
ftp> mkdir dir_name (디렉토리 만들기: REMOTE)
ftp> help (도움말 보기: REMOTE)

5) X 서버로의 접근
윈도우용 Client프로그램으로는 Xmanager가 유명하다. 다음 문서를 참조한다.
- 사용법
http://compedu.inue.ac.kr/~chlee56/wowlinux/xmanager.htm
- 다운로드
http://netsarang.co.kr/download/download.html

9. 시스템 프로세스

process : 프로그램이 메모리에 올라와 동작하고 있는 상태.
PID : 프로세스의 고유 ID (커널이 관리)
Daemon: 백그라운드로 실행, 부팅 시 동작, 서버 프로세스

1) 프로세스 정보
$ ps -ef | more
UID PID PPID C STIME TTY TIME CMD
root 0 0 0 4월 25 ? 0:00 sched
root 1 0 0 4월 25 ? 0:05 /etc/init -
root 2 0 0 4월 25 ? 0:00 pageout
root 3 0 0 4월 25 ? 86:09 fsflush
root 279 1 0 4월 25 ? 0:00 /usr/lib/saf/sac -t 300
root 204 1 0 4월 25 ? 0:00 /usr/lib/utmpd
root 134 1 0 4월 25 ? 0:02 /usr/sbin/rpcbind
$ ps -ef | grep lp
$ pgrep -l lp (solaris 8부터)

2)프로세스 종료

- 시그널 정의
$ man -s 3HEAD signal

Name Value Default Event
SIGHUP 1 Exit Hangup (see termio(7I))
SIGINT 2 Exit Interrupt (see termio(7I))
SIGKILL 9 Exit Killed
SIGTERM 15 Exit Terminated (==> Control + C)

- 프로세스 종료
$ kill [-signal] PID ...
$ kill <PID>
$ kill -9 <PID>
$ kill -KILL <PID>
$ pgrep -l mail
215 sendmail
12047 dtmail
$ kill 12047
$ pkill -KILL 프로세스 이름

- 자신이 사용하는 워크스테이션이 윈도우 hang시 처리요령
다른 시스템에서 다음과 같이 한다.
$ telnet (또는 rlogin) host1
$ pkill -9 <자신의 쉘이름, ex) ksh>
또는
$ pkill -KILL <자신의 쉘이름 ex) ksh>

3) 잡 제어 ( Job Control )
여러 개의 작업을 수행하고 이를 제어할 수 있다. 단 본쉘(sh)는 불가

$ find . -name core > list & ( Job을 background로 실행)
$ jobs ( Job을 확인)
[1] = running find . -name core > list &
$ fg %1 ( 백그라운드 잡을 포그라운드로)
Control + Z ( 포그라운드 잡을 중지)
$ jobs ( job을 확인)
$ bg %1 (중지된 잡을 백그라운드로 실행)
$ kill %1 (잡을 종료)


10. 쉘 (Shell)

명령해석기, 사용자 인터프리터라고도 한다. 쉘 각각의 자세한 문서는 다음을 참고한다.
http://dir.yahoo.com/Computers_and_Internet/Software/Operating_Systems/UNIX/Shells/


Shell 종류 Shell 프로그램 위치 프롬프트 프롬프트 변수 쉘초기화 파일
Bourn Shell /bin/sh, /sbin/sh #, $ PS1 /etc/profile, $HOME/.profile
Korn Shell /bin/ksh #, $ PS1 /etc/profile, $HOME/.profile, $HOME/.kshrc
C Shell /bin/csh hostname#, hostname% prompt /etc/.login, $HOME/.cshrc, $HOME/.login


- 현재 사용쉘 확인
$ ps
$ echo $SHELL
- 기타 쉘
bash, tcsh, zsh, ssh
- 관련 디렉토리
/etc/skell : 샘플 초기화 파일 위치

1) 입출력의 전환
$ mailx user1 < ~/myfile ( 입력의 방향을 파일로부터 )
$ ps -ef > file_list (출력의 방향을 파일로 전환)
$ cat /etc/passwd >> file_list (출력의 방향을 파일로 전환, append)
$ ls /var /no 1> dat 2>&1

2) 파이프 (프로세스 간 통신)
$ who | wc -l
$ ls -F /etc | grep "/"
$ head -10 file1 | tail -3 | lp
$ ps -ef | tail +2 | wc -l

3) Meta Character
- Backslashes (\)
- Dollar signs ($)
- Back quotation marks (` `)
- quotation marks (' ')
- double quotation marks (" ")

$ rm \*


$ echo '$SHELL'
$ echo "$SHELL"
$ echo "\$SHELL"

$ echo date
$ echo `date`

11. Korn Shell Features

1) Aliases
alias aliasname="command"
ex)
$ alias h=history
$ alias c=clear
$ alias home='cd;ls'
$ alias ls='ls -F'
$ alias copy="cp -r"

2) Command line Editing
- Command line 편집 기능
$ set -o vi
$ [esc] + k (=> vi command mode )

3) History
- 128개를 유지 ( 변수 HISTSIZE -> .kshrc)
- $HOME/.sh_history (변수 HISTFILE -> .kshrc)
ex)
$ history ( 최근 16개 명령을 list)
$ history 23 (23 ~ 최근명령)
$ history -10 (최근 명령 10개)
cf)
$ r ( 가장 최근 명령 실행)
$ r p ( p로 시작된 가장 최근 명령어 실행)
$ r 23 ( 히스토리가 23번인 명령어 실행)

4) Ignore Control-d (ignoreeof)
- Control-d의 기능: 1) EOF, 2) EXIT
ex)
$ ^d
$ set -o ignoreeof (=>설정 eof:on, exit:off)
$ ^d
$ set +o ignoreeof (=>해제 eof:on, exit:on)

5) .profile과 분리된 초기화 파일 (.kshrc)
- $HOME/.kshrc (C쉘: $HOME/.cshrc)
- 환경변수는 .profile에 기록
- 기타변수 및 콘쉘 제공 기능 등은 .kshrc에 기록
ex)
$ . ~/.kshrc ( 재 초기화 )

6) Job Control
ex)
$ find / -name core -exec rm {} \;
^Z (=> suspend)
[1] + stop ... (=> [1]은 잡번호)
$ bg %1 ( 1번 잡을 백그라운드로 실행)
$ jobs ( 잡 확인)
$ fg %1 ( 1번 잡을 포그라운드로 실행)
$ ^+C ( 포그라운드 잡을 종료)
$ jobs

7) 덮어쓰기 방지 (noclobber)
ex)
$ touch testfile
$ cat /etc/passwd > testfile
$ cat testfile
$ cat /etc/profile > testfile
$ cat testfile
$ set -o noclobber
$ cat /etc/hosts > testfile ( => 경고메시지가 떨어짐)

12. Korn Shell Initialization

- Korn Shell 초기화 순서

(1) /etc/profile
(2) $HOME/.profile
(3) $HOME/.kshrc


1) $HOME/.profile 설정하기

$ vi ~/.profile

stty cs8 erase '^H' -istrip ( -> 터미널 설정 )

PATH=$PATH:/usr/local/bin:/usr/ccs/bin:/usr/ucb (-> Path 설정)
EXINIT="set ai nu ts=3 showmode" (-> vi 환경설정)
ENV="$HOME/.kshrc" ( -> .kshrc 확장쉘 변수 설정)
LPDEST="lp1" (-> Default Printer Set )
EDITOR="vi" ( -> Default Editor Set )

export PATH EXINIT ENV LPDEST EDITOR ( 전역변수 선언 )

$ . ~/.profile ( .profile 재 초기화)


2) $HOME/.kshrc 설정하기

$ vi ~/.kshrc

HOSTNAME=`uname -n`
PS1='[$LOGNAME@$HOSTNAME:$PWD]$ ' (-> 프롬프트 변경)

export PS1 HOSTNAME (-> 전역변수 선언)

## My Alias Def (-> 엘리어스 설정 )
alias ls='ls -F'
alias rm='rm -i'
alias mv='mv -i'
alias cp='cp -i'
alias home='cd;ls'
alias c=clear
alias h=history
alias d=date

## Other ksh feature set
set -o noclobber
set -o vi
set -o ignoreeof

$ . ~/.kshrc (-> .kshrc 재 초기화)


13. 쉘 프로그래밍

- 쉘 프로그래밍 강좌

http://kldp.org/KoreanDoc/Shell_Programming-KLDP
http://myhome.naver.com/yskim511/21.htm

4부. 시스템 어드민

1. UNIX 파일의 종류와 특성

- 파일은 파일이름, inode, data block으로 구성되어 있다.
- 파일의 종류는 ls -l , ls -F, file 등의 명령어로 확인할 수 있다.

1) 파일의 종류
-: Regular File (Ordinary File) : vi, ed, cp, mv, cat, touch, cc 등에 의해 생성
d: Directory File : mkdir, cp -r 등에 의해 생성
c,b: Special File ( 디바이스 파일) : 장치 파일이며 drvconfig, devfsadm등에 의해 생성
brw-r----- 1 root sys 32, 0 2000년 7월 4일 /devices/sbus@1f,0/SUNW,fas@e,8800000/sd@0,0:a
crw-r----- 1 root sys 32, 0 2000년 7월 4일 /devices/sbus@1f,0/SUNW,fas@e,8800000/sd@0,0:a
l: Symbolic Link File: 심볼릭 링크 파일
lrwxrwxrwx 1 root root 12 2000년 7월 4일 /etc/hosts -> ./inet/hosts

$ ln -s file1 file2 (심볼릭 링크)
$ ln file2 file3 (하드 링크)
$ rm file1 (원본을 제거함)
$ cat file2 file3 ( file2는 볼 수 없음)

- 링크란 어떤 파일의 또 다른 이름이다.
- 하드링크는 같은 inode를 심볼릭 링크는 다른 inode를 갖는다.
- 하드링크는 디렉토리를 링크할 수 없다.
- 하드링크는 서로 다른 파일시스템 간에 링크할 수 없다.
- 하드링크는 원본파일의 데이터와 같은 데이터를 공유하며, 심볼릭 링크는 원본의 PATH값을 데이터로 갖는다.

- 심볼릭 링크의 예
/etc/hosts -> /etc/inet/hosts
/bin -> /usr/sbin
- 하드링크의 예
/etc/init.d/* -> /etc/rc#.d/*

2) inode
모든 파일은 하나의 inode를 가지며 이것은 해당 파일에 대한 정보를 가진다. inode table은 inode들로 구성되어 있으며
하나의 inode는 ls-l정보, 데이터블록 포인터, shadow inode 포인터로 이루어져 있다. 포인터들이 가리킬 수 있는 데이터 블록의
사이즈는 최대 1T까지 가능하다.

- 파일과 파일시스템의 최대 사이즈
solaris 2.6 이전 : 2G (파일), 1TB (파일 시스템)
solaris 2.6부터 : 2G이상 1TB (파일), 1TB (파일 시스템)

파일의 경우 실재로는 866G까지 가능하며, 파일 시스템의 1T이상은 Virtual Volume(Meta Device, Veritas Volume Manager)을 구성해야 한다.


2. Boot PROM (Programmable Read Only Memory)

- PROM 관련 문서
Frequently Asked Questions about Sun NVRAM/hostid
http://www.squirrel.com/squirrel/sun-nvram-hostid.faq.html
Sun Flash PROM Guide for Workstations and Workgroup Servers - Standalone Version
http://www.sun.com/products-n-solutions/hardware/docs/pdf/802-3233-23.pdf
Updating the Flash PROM on the Ultra 1, Ultra 2, Ultra 450, and Sun Enterprise 450 Systems
http://docs.sun.com/db/doc/816-2583-10/6m8u2cukc?a=view
Updating the Flash PROM on the Sun Enterprise 3x00, 4x00, 5x00, and 6x00 Systems
http://docs.sun.com/db/doc/816-2583-10/6m8u2cukk?a=view


1) PROM이 하는 역할
- Test the system hardware (POST: Power on Self Test)
- Boot the operating system

[ POST ]
- Initialize the system
- Probes Memory and the CPU
- Probes devices, interprets their devices and build a dev tree
- Install the console

2) PROM으로 가는 방법
- # halt
- # init 0
- # /usr/sbin/shutdown -y -g0 -i0
- Stop + A ( 부팅 시 바로 누르거나 시스템 hang시에만 적용)

3) PROM에서의 얻을 수 있는 정보
OK banner ( 시스템 모델명, 메모리, hostid, Ethernet Addr, Boot PROM 버전 )
OK probe-scsi ( 연결된 SCSI 장치들의 정보 확인)

4) PROM 버전
1.x : Original Sparc Boot PROM
2.x : Open Boot PROM (OBP) => sparc 시리즈 (sparc4,5,10,20...등)
3.x : Open Boot PROM with Flash Update (Flash PROM) => ultra sparc 시리즈

5) PROM에서 사용되는 명령어
OK help (도움말)
OK probe-scsi (스카시 장비 체크)
OK prebe-ide ( IDE장비 체크)
OK devalias (PROM에 설정되어 있는 장비의 물리적 장치명과 별명)
OK show-devs ( PROM에 설정되어 있는 물리적 장치의 트리구조 보기)
OK printenv (PROM에 설정되어 있는 부트 파라미터의 기본 값을 확인)
OK setenv <parameter_name> <value>
OK reset ( setenv에 의해 변경된 파라미터 값들을 재 저장하는 명령)
OK set-default <parameter_name> ( 지정한 파라미터 값을 초기화)
OK set-defaults ( 지정한 모든 파라미터 값들을 초기화 => STOP + N)

6) PROM의 부트 명령어
OK boot [ device name ] -[option]

OK boot [disk, net, cdrom] (=> default는 disk)
OK boot -s (싱글유저로 부팅)
OK boot -a (Interactive 모드로 부팅)
OK boot -r (Reconfiguration Boot => 장치를 추가했을 때)

7) OS의 PROM관련 시스템 명령어
# eeprom (확인)
# eeprom boot-device ( 확인)
# eeprom auto-boot?=false (설정)
# eeprom 'auto-boot?=false' (csh의 경우)


3. 부트 프로세스 (Boot Process)

1) 부팅의 단계는 다음과 같다.

(1) 부트 PROM 단계
- PROM이 POST(Power On Self Test)를 실행
- 부트 디바이스를 결정
- 부트 프로그램인 bootblk를 로드

(2) 부트 프로그램 단계
- bootblk는 두 번째 부트 프로그램인 ufsboot를 로드
- ufsboot는 커널을 로드( 32bit, 64bit kernel)

(3) 커널 초기화 단계
- 커널(/kernel/unix, /usr/kernel, /platform/`uname -m`/kernel)은 자신을 초기화하고 모듈을 로드 한다.
- Configuration 파일인 /etc/system을 읽는다.

(4) init 단계
- 커널이 /sbin/init을 실행한다.
- init은 /etc/initab을 읽는다.
- 필요한 데몬을 실행한다.


2) 32 또는 64 bit 커널의 확인 및 변경
64bit의 경우 OS는 Solaris7부터, 시스템 아키텍처는 sun4u(ultra sparc) 이상에서이다.

- 확인하기
# isainfo -kv
32-bit sparc kernel modules (=> 32일 경우)
64-bit sparc kernel modules (=> 64일 경우)

- 64bit -> 32bit
OK boot kernel/unix
- 32bit -> 64bit
OK boot kernel/sparcv9/unix

cf. 64bit 커널 지정하기
# vi /platform/sun4u/boot.conf
...
ALLOW_64BIT_KERNEL_ULTRASPARC_1_CPU=true

3) 커널 파라미터 수정
보다 자세한 사항은 다음을 참조한다.
- Solaris Tunable Parameters Reference Manual
http://docs.sun.com/db/doc/816-0607

i) 최대 사용자수 지정( maxusers)
set maxusers=100

ii) 최대 프로세스 개수 지정 (max_nprocs)
set max_nprocs=100

iii) 가상 단말기 개수 지정 ( pt_cnt)
- 리부팅시에는 반드시 reconfiguration boot
set pt_cnt=128
set npty=128

iiii) 최대 파일 디스크립트 개수 지정하기 (rlim_fd_cur)
- 하나의 프로세스가 동시에 오픈할 수 있는 최대 파일 개수
- # ulimit descriptors 512
- # ulimit -n 512
set rlim_fd_max=1500
set rlim_fd_cur=128

iiiii) 최대 UFS inode수 지정( ufs_ninode)
- 시스템에서 파일을 오픈 하면 하나의 파일에 대하여
하나의 ufs_ninode를 가지게 된다.
set ufs_ninode=10000

[ How to Setup Kernel Parameter ]

i) backup /etc/system file
# cp /etc/system /etc/system.org

ii) Edit /etc/system file
# vi /etc/system
... (다음을 추가)
set pt_max_pty=10

iii) Reconfiguration Boot
# reboot -- -r

iiii) 윈도우에서 터미널을 여러 개 띄워 max값을 확인

[ How to recover /etc/system File ]

i) Edit /etc/system file
# vi /etc/system
... (다음을 추가)
exclude: drv/dad

ii) reboot
# reboot

iii) Boots the system interactively
OK boot -a
...
Enter filename of kernel (kernel/unix): <Enter>
Enter default directory for modules (kernel, /usr/kernel): <Enter>
Enter name of system file (etc/system): /etc/system.org
Enter default root file system type (ufs): <Enter>
Enter physical name of root device: <Enter>

iiii) Recover /etc/system file
# cp /etc/system.org /etc/system
# init 6


4. init 단계

kernel은 init을 실행하고 init은 /etc/inittab파일을 일고 초기화 하며 해당 설정대로 관련 명령을
수행한다. 시스템 운영에 필요한 데몬 들을 실행하고 동작레벨(Run Level)을 관리하는 것이 주 역할이다.

1) /etc/inittab 파일
ap::sysinit:/sbin/autopush -f /etc/iu.ap (*)
ap::sysinit:/sbin/soconfig -f /etc/sock2path (*)
fs::sysinit:/sbin/rcS sysinit >/dev/msglog 2<>/dev/msglog </dev/console (*)
is:3:initdefault: (*)
p3:s1234:powerfail:/usr/sbin/shutdown -y -i5 -g0 >/dev/msglog 2<>/dev/msglog (*)
sS:s:wait:/sbin/rcS >/dev/msglog 2<>/dev/msglog </dev/console (*)
s0:0:wait:/sbin/rc0 >/dev/msglog 2<>/dev/msglog </dev/console
s1:1:respawn:/sbin/rc1 >/dev/msglog 2<>/dev/msglog </dev/console
s2:23:wait:/sbin/rc2 >/dev/msglog 2<>/dev/msglog </dev/console (*)
s3:3:wait:/sbin/rc3 >/dev/msglog 2<>/dev/msglog </dev/console (*)
s5:5:wait:/sbin/rc5 >/dev/msglog 2<>/dev/msglog </dev/console
s6:6:wait:/sbin/rc6 >/dev/msglog 2<>/dev/msglog </dev/console
fw:0:wait:/sbin/uadmin 2 0 >/dev/msglog 2<>/dev/msglog </dev/console
of:5:wait:/sbin/uadmin 2 6 >/dev/msglog 2<>/dev/msglog </dev/console
rb:6:wait:/sbin/uadmin 2 1 >/dev/msglog 2<>/dev/msglog </dev/console
sc:234:respawn:/usr/lib/saf/sac -t 300 (*)
co:234:respawn:/usr/lib/saf/ttymon -g -h -p "`uname -n` console login: " -T sun -d /dev/console -l console -m ldterm,ttcompat (*)

2) Run Level
0 : PROM monitor level. 부트 PROM의 OK 프롬프트 상태로 시스템을 종료하기 위한 Level이다. (==> halt, init 0, shutdown -i0)
s,S : Single User(관리자) 상태로서 마운트된 모든 파일 시스템을 접근할 수 있다.
1 : Single User(관리자) 상태로서 사용 가능한 모든 파일 시스템을 접근할 수 있다.
2 : 다중 사용자 레벨 (Multi User Level)
3 : 다중 사용자 레벨 (Multi User Level) with NFS(Network File Service)
4 : User Define Level (사용되지 않음)
5 : Shutdown(0) and power off (==> poweroff , init 5, shutdown -i5 )
6 : Shutdown(0) and reboot (==> reboot, init 6, shutdown -i6)

3) 각 Run Level별 데몬 프로세스의 실행
init --> /sbin/rc# --> /etc/rc#.d/{S##스크립트, K##스크립트} --> 데몬 실행
root(관리자) --> /etc/init.d/스크립트 --> 데몬 종료, 재실행

/etc/init.d/스크립트 ==> /etc/rc#.d/{S##스크립트, K##스크립트}는 하드링크 됨. 관련 파일 검색은 다음과 같다.
# ls -i /etc/init.d/nfs.server
28562 /etc/init.d/nfs.server*
# find /etc -inum 28562
/etc/init.d/nfs.server
/etc/rc0.d/K28nfs.server
/etc/rc1.d/K28nfs.server
/etc/rc2.d/K28nfs.server
/etc/rc3.d/s15nfs.server
/etc/rcS.d/K28nfs.server

4) RC 스크립트 추가하기

(1) Edit banner script in /etc/init.d
# cd /etc/init.d
# cp lp banner
# vi banner
#!/bin/sh
#
# Boot Process test script
#

case "$1" in
'start')
[ -f /usr/bin/banner ] && /usr/bin/banner "SYSTEM UP"
/usr/bin/audioplay /usr/demo/SOUND/sounds/rooster.au
;;
'stop')
[ -f /usr/bin/banner ] && /usr/bin/banner "SYSTEM DOWN"
/usr/bin/audioplay /usr/demo/SOUND/sounds/flush.au
;;
'*')
echo "Usage: $0 { start | stop }"
exit 1
esac
exit 0

(2) Test script
# chmod 744 banner
# chown root:sys /etc/init.d/banner
# ./banner start
# ./banner stop

(3) link to /etc/rc2.d
# cd /etc/rc2.d
# ln /etc/init.d/banner S22banner

(4) link to /etc/rcS.d
# cd /etc/rcS.d
# ln /etc/init.d/banner K99banner

(5) link to /etc/rc0.d
# cd /etc/rc0.d
# ln /etc/init.d/banner K99banner

(6) Test init state
# init s
...
# init 6
...
# halt


5. Device Configuration

1) 장치 명
- Logical Device Name ( 관리자)
- Physical Device Name ( kernel, system )
- Instance Name (kernel이 부팅 시 빠른 참조를 위해)

2) Logical Device Name
/dev/[r]dsk/c#t#t#d#s#
c# : Controller Number
t# : Target Number
d# : Disk Number
s# : Slice or partition number (0-7)
예) /dev/dsk/c0t0d0s0(raw device) /dev/rdsk/c0t3d0s (block device)

3) Physical Device Name
# ls -lL /dev/dsk/c0t0d0s0
brw-r----- 1 root sys 32, 0 2000년 7월 4일 /devices/sbus@1f,0/SUNW,fas@e,8800000/sd@0,0:a
# ls -lL /dev/rdsk/c0t0d0s0
crw-r----- 1 root sys 32, 0 2000년 7월 4일 /devices/sbus@1f,0/SUNW,fas@e,8800000/sd@0,0:a

4) Instance Name
시스템 커널에 의해 부여된 Physical Device Name의 축약된 이름이다.
# cat /etc/path_to_inst
"/sbus@1f,0" 0 "sbus"
"/sbus@1f,0/SUNW,fas@e,8800000" 0 "fas"
"/sbus@1f,0/SUNW,fas@e,8800000/sd@f,0" 14 "sd"
"/sbus@1f,0/SUNW,fas@e,8800000/st@6,0" 6 "st"
"/sbus@1f,0/SUNW,fas@e,8800000/sd@d,0" 12 "sd"
"/sbus@1f,0/SUNW,fas@e,8800000/st@4,0" 4 "st"
"/sbus@1f,0/SUNW,fas@e,8800000/sd@e,0" 13 "sd"
"/sbus@1f,0/SUNW,fas@e,8800000/st@5,0" 5 "st"
"/sbus@1f,0/SUNW,fas@e,8800000/sd@b,0" 10 "sd"
"/sbus@1f,0/SUNW,fas@e,8800000/st@2,0" 2 "st"
"/sbus@1f,0/SUNW,fas@e,8800000/sd@c,0" 11 "sd"
"/sbus@1f,0/SUNW,fas@e,8800000/st@3,0" 3 "st"
"/sbus@1f,0/SUNW,fas@e,8800000/st@0,0" 0 "st"
"/sbus@1f,0/SUNW,fas@e,8800000/sd@a,0" 9 "sd"
"/sbus@1f,0/SUNW,fas@e,8800000/st@1,0" 1 "st"
"/sbus@1f,0/SUNW,fas@e,8800000/sd@6,0" 6 "sd"
"/sbus@1f,0/SUNW,fas@e,8800000/sd@4,0" 4 "sd"
"/sbus@1f,0/SUNW,fas@e,8800000/sd@5,0" 5 "sd"
"/sbus@1f,0/SUNW,fas@e,8800000/sd@2,0" 2 "sd"
"/sbus@1f,0/SUNW,fas@e,8800000/sd@3,0" 3 "sd"
"/sbus@1f,0/SUNW,fas@e,8800000/sd@0,0" 0 "sd"
"/sbus@1f,0/SUNW,fas@e,8800000/sd@1,0" 1 "sd"
"/sbus@1f,0/SUNW,fas@e,8800000/sd@8,0" 7 "sd"
"/sbus@1f,0/SUNW,fas@e,8800000/sd@9,0" 8 "sd"
"/sbus@1f,0/sbusmem@2,0" 2 "sbusmem"
"/sbus@1f,0/sbusmem@3,0" 3 "sbusmem"
"/sbus@1f,0/sbusmem@0,0" 0 "sbusmem"
...

5) 디바이스의 재구성

장치를 새로 장착하고 /devices 및 /dev의 장치파일을 재구성하기 위한 명령어는 다음과 같다.
- (재)부팅이 필요
i) # reboot -- -r
ii) OK boot -r
iii) # touch /reconfigure
# reboot ( or init 6)
- (재)부팅이 불필요
i) # drvconfig -i sd ( Solaris 2.6부터 )
# disks (tapes, ports, devlinks)
ii) # devfsadm -c disk [ -c tape -c audio ]


6) 장치 추가 용례
- reconfigure file 생성
# touch /reconfigure
- 시스템의 정지
# init 5
- 시스템의 전원을 끈다
- 시스템에 새로운 디바이스를 연결한다.
- 외장형일 경우 외장 디바이스의 전원을 켠다.
- 시스템의 전원을 켠다.
- 부팅 후 추가된 장치의 Reconfiguration을 확인한다.

7) 장치의 연결확인
- PROM 단계에서
OK probe-scsi
- OS에서
# prtconf | grep -v not
# format (디스크의 경우, 확인만 하고 Control + d )
Searching for disks...done


AVAILABLE DISK SELECTIONS:
0. c0t0d0 <SUN2.1G cyl 2733 alt 2 hd 19 sec 80>
/sbus@1f,0/SUNW,fas@e,8800000/sd@0,0
1. c0t1d0 <IBM-DCAS-32160W-S65A cyl 8186 alt 2 hd 3 sec 171>
/sbus@1f,0/SUNW,fas@e,8800000/sd@1,0
Specify disk (enter its number):


6. DISK, SLICE, FORMAT

1) Disk Label (VTOC: Volume Table Of Contents)
- 디스크의 파티션 테이블 (Partition Table)
- 디스크 디바이스를 구별하는 볼륨명(volume name)
- Optional Partition Tag (각 파티션의 표준 마운트 포인트 이름으로 디스크 라벨에서만 사용되고 OS에서는 사용되지 않는 제한된 값)
- Optional Partition Flag (각 파티션이 Writable이지 Mountable인지를 결정하는 값으로 디스크 라벨에서만 사용되고 OS에서는 사용되지
않는 제한된 값)

VTOC의 정보확인은 prtvtoc로 변경(파티션)은 format을 이용한다

# prtvtoc /dev/rdsk/c0t3d0s2 (=> VTOC 정보 확인)
# format

2) 파티션 정하기
솔라리스에서는 하드디스크의 파티션을 하기 위해 format이라는 utility를 사용한다.
솔라리스에서는 하나의 디스크에 최대 8개의 파티션 까지 나눌 수 있으며 2번은 전체를 나타낸다. 따라서 실제 파티션 수는 7개이다.
디스크를 추가하고 파티션을 하기 위한 자세한 사용법은 다음을 참조한다.
http://www.ussg.iu.edu/usail/peripherals/disks/adding/solaris.html
http://docs.sun.com/db/doc/805-7228/6j6q7uet8

# format (==> 포맷하고자 하는 디스크 번호를 선택)
AVAILABLE DISK SELECTIONS:
0. c0t0d0 <SUN2.1G cyl 2733 alt 2 hd 19 sec 80>
/sbus@1f,0/SUNW,fas@e,8800000/sd@0,0
1. c0t1d0 <IBM-DCAS-32160W-S65A cyl 8186 alt 2 hd 3 sec 171>
/sbus@1f,0/SUNW,fas@e,8800000/sd@1,0
Specify disk (enter its number):

주의사항 1) 슬라이스 2번은 디스크 전체를 의미하므로 절대 수정하지 않는다.
주의사항 2) 파티션은 실린더 단위로 구성되는데 Offset이 정확히 일치해야 한다.
주의사항 3) 레이블 저장 명령 ( label)을 수행하지 않는다면 메모리에서만 변경되므로 디스크에는 영향을 주지 않는다.

[ 하드 디스크 추가하기 ]

# init 5
(디스크 연결하고 파워를 켠다)
OK probe-scsi
OK boot -r
# prtconf | grep -v not
# format (추가된 디스크를 선택하여 파티션 한다.)
# newfs /dev/rdsk/c0t1d0s6 (각 파티션을 파일시스템으로 만든다.)
# fsck /dev/rdsk/c0t1d0s6 (파일시스템을 체크한다.)
# mkdir /data (마운트할 디렉토리를 생성한다)
# mount /dev/dsk/c0t1d0s6 /data (마운트 한다)
# df -k 또는 mount (마운트 정보를 확인한다.)
# vi /etc/vfstab (해당 파티션의 정보를 추가하여 부팅 시 마운트 되도록 한다.)


7. Solaris 파일 시스템

1) 파일 시스템의 종류
- Disk Based File System : ufs(Unix File System), hsfs(High Sierra File System), pcfs(PC File System), udfs(Universal disk Format File System:sol7)
- Distributed File System: nfs ( Network File System)
- Pseudo File System: tmpfs(Temporary File System), swapfs(Swap File System), fdfs(File Descriptor File System), procfs(Process File System)

2) UFS의 파일 시스템 구조
- label(VTOC)(1 sector)
- Boot Bolck(15 sectors) : bootblk
- SuperBlock(16 sectors)
. 파일시스템 사이즈
. 레이블(파일 시스템명과 볼륨명)
. 파일 시스템의 Logical block 의 사이즈
. 마지막으로 업데이트된 날짜와 시간
. 실린더 그룹의 사이즈
. 실린더 그룹 안의 데이터 블록의 number의 fragment의 사이즈
. 데이터 블록의 요약 정보
. 파일 시스템 상태 값 (clean, stable, active, logging or unknown)
. 마지막 마운트 포인트의 경로명
- First Cylinder Group (보통 그룹당 16개의 실린더)
|__ backup Super Block
|__ Cylinder Group Block
| . inode 수
| . 실린더 그룹에서의 데이터 블록 수
| . 디렉터리의 수
| . free block의 map
| . 실린더 그룹에서 free block, free_inode, free fregment의 수
| . 사용된 inode의 map
|__ inode table
|__ Data Block(한 블록당 8K bytes, 1K는 fregment라 함)
- Second Cylinder Group
....

3) 파일 시스템의 생성
# newfs /dev/rdsk/c0t0d0s0
newfs: /dev/rdsk/c0t0d0s0 last mounted as /images
newfs: construct a new file system /dev/rdsk/c0t0d0s0: (y/n)? y
/dev/rdsk/c0t0d0s0: 4199508 sectors in 6603 cylinders of 4 tracks, 159 sectors
2050.5MB in 104 cyl groups (64 c/g, 19.88MB/g, 3392 i/g)
super-block backups (for fsck -F ufs -o b=#) at:
32, 40896, 81760, 122624, 162848, 203712, 244576, 285440, 325664, 366528,
407392, 448256, 488480, 529344, 570208, 611072, 651296, 692160, 733024,
773888, 814112, 854976, 895840, 936704, 976928, 1017792, 1058656, 1099520,
1139744, 1180608, 1221472, 1262336, 1302560, 1343424, 1384288, 1425152,
1465376, 1506240, 1547104, 1587968, 1628192, 1669056, 1709920, 1750784,
1791008, 1831872, 1872736, 1913600, 1953824, 1994688, 2035552, 2076416,
2116640, 2157504, 2198368, 2239232, 2279456, 2320320, 2361184, 2402048,
2442272, 2483136, 2524000, 2564864, 2605088, 2645952, 2686816, 2727680,
2767904, 2808768, 2849632, 2890496, 2930720, 2971584, 3012448, 3053312,
3093536, 3134400, 3175264, 3216128, 3256352, 3297216, 3338080, 3378944,
3419168, 3460032, 3500896, 3541760, 3581984, 3622848, 3663712, 3704576,
3744800, 3785664, 3826528, 3867392, 3907616, 3948480, 3989344, 4030208,
4070432, 4111296, 4152160, 4193024,

# newfs -m 1 /dev/rdsk/c0t0d0s0 ( Minfree 값을 조정, default는 10%)
# fstyp -v /dev/rdsk/c0t0d0s0 | grep minfree (기존의 minfree값을 확인)
# tunefs -m 2 /dev/rdsk/c0t0d0s0 ( newfs 이후 다시 재조정)


8. 파일 시스템 마운트 (File System Mount)

파일시스템을 사용하기 위해서는 트리구조의 임의 디렉토리(Mount Point)에 연결시켜야 하는데, 이를 마운트(mount)라 하며
마운트를 해제하는 것을 언마운트(unmount)라 한다.
마운트 포인트(mount point)는 빈 디렉터리로 파일 시스템을 연결할 포인트를 의미한다.

1) 마운트 정보
# mount
/ on /dev/dsk/c0t0d0s0 read/write/setuid/intr/largefiles/onerror=panic/dev=800000 on 금 4월 25 14:18:36 2003
/usr on /dev/dsk/c0t0d0s5 read/write/setuid/intr/largefiles/onerror=panic/dev=800005 on 금 4월 25 14:18:36 2003
/proc on /proc read/write/setuid/dev=3b00000 on 금 4월 25 14:18:35 2003
/dev/fd on fd read/write/setuid/dev=3bc0000 on 금 4월 25 14:18:37 2003
...

==> /etc/mnttab 을 참조함(마운트, 언마운트시 자동 업데이트. No Admin)

2) 마운트(Mount)
마운트는 mount 명령어를 이용하거나, 부팅 시 /etc/vfstab 파일 정보를 읽고 자동으로 마운트되는 두 가지 경우가 있다.

- 수동 마운트
# mount /dev/dsk/c0t3d0s7 /dir1
# mount -o ro /dev/dsk/c0t3d0s6 /dir2
# mount -o ro,nosuid,nolargefiles /dev/dsk/c0t0d0s5 /dir3
# mount -o ro,bg,soft host1:/usr/local /usr/local

- 자동 마운트
# mkdir /newdir
# mount /dev/dsk/c0t1d0s4 /newdir
# vi /etc/vfstab (엔트리를 추가)
# umount /newdir (테스트)
# mount /newdir (테스트)

cf. # mount /dir1 (=> /etc/vfstab에 이미 등록되어 있는 경우)
cf. # mountall [-r|-l] (=> /etc/vfstab에 "mount at boot" 값이 yes인 것만)

[ /etc/vfstab 파일 ]
#device device mount FS fsck mount mount
#to mount to fsck point type pass at boot options
#
#/dev/dsk/c1d0s2 /dev/rdsk/c1d0s2 /usr ufs 1 yes -
fd - /dev/fd fd - no -
/proc - /proc proc - no -
/dev/dsk/c0t0d0s1 - - swap - no -
/dev/dsk/c0t0d0s0 /dev/rdsk/c0t0d0s0 / ufs 1 no -
/dev/dsk/c0t0d0s5 /dev/rdsk/c0t0d0s5 /usr ufs 1 no -
/dev/dsk/c0t0d0s6 /dev/rdsk/c0t0d0s6 /var ufs 1 no -
/dev/dsk/c0t1d0s0 /dev/rdsk/c0t1d0s0 /usr/local ufs 2 yes -
/dev/dsk/c0t1d0s1 /dev/rdsk/c0t1d0s1 /export/home ufs 2 yes nosuid,rq
swap - /tmp tmpfs - yes -

3) 언마운트
# umount /dir1
# umount /dev/dsk/c0t3d0s7

cf. # umountall [-r|-l] (=> /, /usr, /var, /var/run, /proc, /dev/fd, /tmp 는 제외)

[ umount 되지 않은 경우 조치 사항 ]
- 자신 또는 다른 사용자가 해당 파일시스템을 사용하고 있다면, 모든 사용을 중지하고 작업 디렉터리도 다른 곳으로 이동한다.
- 특정 프로세스가 해당 파일시스템을 사용하는 경우 이를 종료한다.
# fuser -u /export/home
/export/home: 4006c(root) 6399c(user01)
# fuser -u -k /export/home
/export/home: 4006c(root)Killed 6399c(user01)Killed
또는
# umount -f /export/home ( Solaris 8 부터)

4) 플로피 디스크와 CDROM 마운트
솔라리스에서는 volume Management를 제공하며, 쉽게 사용할 수 있도록 자동으로 마운트하여 서비스 한다.

[ Volume Management ]
- 서비스 데몬 : /usr/sbin/vold
- 서비스 데몬 제어 스크립트 : /etc/init.d/volmgt {stop|start}
- 설정 파일 : /etc/vold.conf, /etc/rmmount.conf ( 특별히 설정을 할 필요는 없다)
- 플로피 마운트 포인트 : /floppy/floppy0
- CDROM 마운트 포인트 : /cdrom/cdrom0

[ 플로피의 마운트 ]
플로피를 삽입한다.
# volcheck
# mount (마운트 확인)
# cd /floppy/floppy0 (필요한 작업 수행)
# cd /
# eject floppy
# mount (언마운트 확인)

cf. 수동마운트
# /etc/init.d/volmgt stop
# pkill -9 vold
# mount -F pcfs /dev/diskette /mnt (=> msdos file system)
# mount /dev/diskette /mnt (=> ufs file system)

cf. 플로피 포맷
# fdformat -d /dev/rdiskette (msdos 포맷)
# newfs /dev/rdiskette (ufs포맷)

[ CDROM 마운트 ]
CDROM을 삽입한다.
# mount (마운트 확인)
# cd /cdrom/cdrom0 (필요한 작업 수행)
# cd /
# eject cdrom
# mount (언마운트 확인)

cf. 수동마운트
# /etc/init.d/volmgt stop
# pkill -9 vold ( vold가 종료되지 않는 경우에만)
# mount -F hsfs -o ro /dev/dsk/c0t2d0s0 /mnt

cf. CDROM이 빠져 나오지 않거나 마운트, 언마운트가 되지 않는 경우 조치사항
# ps -ef | grep vold (데몬을 확인)
# /etc/init.d/volmgt stop
# /etc/init.d/volmgt start
... (해결이 안되면)
# pkill -9 vold
# ps -ef | grep vold (vold 프로세스가 확실히 종료했는지 확인)
# /etc/init.d/volmgt start
# ps -ef | grep vold (vold가 새로 동작하였는지 확인)

[ ISO 9660 파일 시스템 마운트 ]

- ISO 파일 생성하기
# mkisofs -o test.iso /etc/init.d
# ls -l test.iso

- 루프 백 디바이스 설정하기
# lofiadm
Block Device File
# lofiadm -a /usr/local/test.iso
/dev/lofi/1
# lofiadm /dev/lofi/1
/usr/local/test.iso

- 마운트
# mount -F hsfs -o ro /dev/lofi/1 /mnt
# ls /mnt
(사용한 후)
# umount /mnt
# lofiadm
# lofiadm -d /dev/lofi/1

5) 파일 시스템을 정의하는 파일
mount 명령을 수행할 때 특별히 파일시스템 타입을 명시하지 안는 경우 로컬파일 시스템은 /etc/vfstab, /etc/default/fs순이며
원격파일 시스템은 /etc/vfstab, /etc/dfs/fstypes이다.

/etc/vfstab
ex) /dev/dsk/c0t0d0s5 /dev/rdsk/c0t0d0s5 /usr ufs 1 no -
/etc/default/fs
ex) LOCAL=ufs
/etc/dfs/fstypes
ex) nfs NFS Utilities
autofs AUTOFS Utilities
cachefs CACHEFS Utilities


9. 파일 시스템 관리

시스템의 부적절한 중지(정전, 비정상 종료 등..)로 인해 파일 시스템이 손상될 경우 fsck 유틸을 이용하여 복구해 주어야 한다.
fsck는 superblock, inode, indirect block, data block 을 검사하고 치료한다.

- Superblock 검사
파일 시스템 사이즈, inode number, free block count, free inode count
- inode 검사
format and type, link count, duplicate block, bad block number, inode size
- Indirect block 검사
블록이 다른 inode에 의해 이미 점유되어 있는 것
블록의 수가 파일 시스템의 범위에 어긋난 것
- data block 검사
평범한 data block
심볼릭 링크 data block
디렉토리 data block

1) fsck (file system check ) 명령의 수행 순서
- Phase 1 : Check Blocks and Sized
- Phase 2 : Check Pathnames
- Phase 3 : Check Connectivity
- Phase 4 : Check Reference Counts
- Phase 5 : Check Cyl groups

주의사항) 마운트 되어 사용하고 있는 파일 시스템은 fsck를 쓸 수 없다. 언마운트하거나 싱글유저 모드에서 처리한다.

2) fsck 명령 사용법
fsck [ -F FSType] [-V] [-m] [special] /dev/rdsk/장치 명

# umount /export/home
# fsck -V /export/home (실행하지는 않고 실행 명령어를 보여줌)
fsck -F ufs /dev/rdsk/c0t0d0s7 ( => /etc/vfstab을 참조한다.)
# fsck /dev/rdsk/c0t0d0s6

cf. SuperBlock 이 손상되어 복구되지 않는 경우
# newfs -N /dev/rdsk/c0t3d0s7 (=> 백업 수퍼블럭 번호를 확인)
/dev/rdsk/c0t3d0s7: 4199508 sectors in 6603 cylinders of 4 tracks, 159 sectors
2050.5MB in 104 cyl groups (64 c/g, 19.88MB/g, 3392 i/g)
super-block backups (for fsck -F ufs -o b=#) at:
32, 40896, 81760, 122624, 162848, 203712, 244576, 285440, 325664, 366528,
407392, 448256, 488480, 529344, 570208, 611072, 651296, 692160, 733024,
773888, 814112, 854976, 895840, 936704, 976928, 1017792, 1058656, 1099520,
1139744, 1180608, 1221472, 1262336, 1302560, 1343424, 1384288, 1425152,
1465376, 1506240, 1547104, 1587968, 1628192, 1669056, 1709920, 1750784,
1791008, 1831872, 1872736, 1913600, 1953824, 1994688, 2035552, 2076416,

# fsck -F ufs -o b=40896 /dev/rdsk/c0t3d0s7 (=> 파일 시스템 체크 )

3) 디스크 사용 관리
- df 명령 : 마운트된 각 파일 시스템의 사용에 관한 정보를 보여주는 명령어
# df -k (Kb 단위로 보여줌)
# df -n (파일 시스템의 유형을 보여줌)
# df -k -F ufs ( ufs 파일 시스템만 보여줌)

- du 명령 : 파일과 디렉터리에 대한 사용 정보를 보여주는 명령어
# du -k . (현재 디렉터리 이하의 사용량)
# du -ks /etc ( /etc 전체의 사이즈)

- quot 명령 : 각 파일시스템에 대한 유저별의 사용량을 보여줌
# quot -a ( 모든 파일시스템을 Kb 단위로 보여줌)
# quot -af ( 디스크 사용량과 함께 파일 수도 보여줌)

4) quota 에 대한 설정
사용자들에 제한된 용량만 사용할 수 있도록 설정하고 관리할 수 있다.
자세한 설정 방법은 다음을 참고한다.
http://docs.sun.com/db/doc/805-7229/6j6q8svfc?a=view
http://www.unix.co.kr/data/solaris/?p=sa13
http://www.jic.co.kr/ypct110.htm

5) swap의 추가
# swap -l (현재 설정된 스왑 정보를 출력)
# mkdir /files (추가할 swap파일이 위치할 디렉토리 생성)
# mkfile 24m /files/swapfile (스왑을 위한 덩어리 파일 생성)
# swap -a /files/swapfile (스왑을 추가, 주의: 절대경로로 써야 한다.)
# swap -l (확인)
# vi /etc/vfstab (부팅 시 자동으로 마운트 되도록 수정)
/files/swapfile - - swap - no -

# swap -d /files/swapfile ( 제거할 경우 )
# rm /files/swapfile
# vi /etc/vfstab (추가된 스왑 설정 라인을 제거)
# swap -l (확인)

10. 솔라리스 설치 (Solaris Installation)

* 솔라리스 9 소개
http://kr.sun.com/products/software/os_platforms/solaris/index.html
* 솔라리스 8 소개
http://kr.sun.com/products/software/os_platforms/solaris/8/index.html
* 전체 버전 간의 차이 비교
http://wwws.sun.com/software/solaris/fcc/fcc.html
* Solaris 9 Installation Guide
http://docs.sun.com/db/doc/806-5205
* Solaris 8 (SPARC Platform Edition) Installation Guide
http://docs.sun.com/db/doc/806-0955
* Solaris for Intel 설치(한글)
http://myhome.naver.com/yasicom/solaris.htm


1) 솔라리스 8 설치 전 준비 사항
설치에 필요한 최소한의 CD (국제판)
- Solaris 8 Installation CD
- Solaris 8 Software 1/2 CD
- Solaris 8 Software 2/2 CD
- Solaris 8 Language CD

2) 하드웨어 요구사항
- Sparc Base 또는 Intel Based 시스템
- 64 MB 메모리
- 2.1 GB 디스크 스페이스
- CD-ROM 드라이브

3) Solaris 8 설치 전 정보 수집
- 호스트 이름
- IP 주소
- 네이밍 서비스(DNS, NIS, NIS+, 없음)의 유형 및 구성 정보
- subnet mask
- root password
- 소프트웨어 그룹
Entire Distribution(2.1G 권장) + OEM, Entire Distribution(1.9G 권장), Developer(1.5G 권장), End User(1.2G 권장), Core(718M 권장)
- OS를 설치할 디스크 설정 및 파티션 설정

4) 설치 방법
- WebStart Installation ( Install CD)
- JumpStart Installation ( from Jumpstart Server System)
- Interactive Installation ( Software 1/2 CD)

5) 설치 순서
CDROM 넣고
# shutdown -i0 -y -g0 ( init 0 또는 Stop + A)
OK set-defaults
OK boot cdrom
- 시스템 식별
- 디스크 선택 및 파티션 설정
- 소프트웨어 그룹 설정
- 설치 후 재부팅
- Software 2/2 CD, Language CD 차례로 설치

6) 설치 시 유의사항
- 32Bit, 64Bit Kernel 선택 ( OS install 후 확인은 isainfo -kv)
- 설치 후 소프트웨어 그룹 유형확인 ( # cat /var/sadm/system/admin/CLUSTER )
SUNWCXall(Entire +OEM), SUNWCall(Entire), SUNWCprog(Developer), SUNWCuser(End User), SUNWCreq(Core)
- 파티션 권장사항 ( / 100M, /usr 500M~1G, /var 128M이상, swap 메모리2~3배, /opt 400M이상, /export/home 필요한 만큼)


11. 패키지 관리

1) 패키지 정보
# pkginfo | more (전체 보기)
# pkginfo | grep SUNWman (특정 패키지 설치여부)
# pkginfo -l SUNWman (특정 패키지의 자세한 정보)
# pkginfo -d /cdrom/solarisxxx/Solaris_8/Product | more (CDROM 내의 패키지 정보)
# pkginfo -d /cdrom/solarisxxx/Solaris_8/Product -l SUNWaudio (CDROM 내의 특정 패키지 정보)
# pkginfo | wc -l ( 설치된 총 패키지 수)

# grep /usr/bin/audioplay /var/sadm/install/contents (audioplay 의 패키지 이름 알아내기1)
# pkgchk -l -p /usr/bin/audioplay (audioplay의 패키지 이름 알아내기2)

# pkgchk SUNWaudio ( 설치 성공 여부 확인, 성공 시 메시지 없음)
# pkgchk -v SUNWaudio (특정 패키지에 대한 자세한 설치 위치)
# pkgchk -p /etc/passwd (특정 파일에 대한 초기 패키지 설치후의 변경 정보)

2) 패키지 추가
# pkgadd -d /cdrom/solxxxx/Solaris_8/Product SUNWaudio
# pkgadd -d /cdrom/solxxxx/Solaris_8/Product -s spool SUNWaudio ( /var/spool/pkg에 패키지 스풀)
# pkgadd -d /cdrom/solxxxx/Solaris_8/Product -s /export/pkgs SUNWaudio ( /export/pkgs에 패키지 스풀)
* GUI의 어드민 툴(admintool)을 이용하여 설치할 수도 있다.(cf. sysadmin(14) 가능)

3) 패키지 제거
# pkgrm SUNWaudio
# pkgrm -s spool SUNWaudio (/var/spool/pkg 의 스풀 패키지 제거)
# pkgrm -s /export/pkgs SUNWaudio (/export/pkgs의 스풀 패키지 제거)
* GUI의 어드민 툴(admintool)을 이용하여 제거할 수도 있다.(cf. sysadmin(14) 가능)

4) 기타 Freeware 패키지 활용
http://www.sunfreeware.com 에서 다양한 무료 패키지를 제공한다.

- 업데이트 및 설치를 위한 편리한 pkg-get 툴도 제공한다. 자세한 정보는 아래 참조.
http://www.sunfreeware.com/pkg-get.html
- 패키지를 직접 제작하고 싶을 경우에는 다음을 참조한다.
http://www.sunfreeware.com/pkgadd.html


12. 패치 관리

패치에 관한 다양한 정보와 패치 파일은 아래 사이트를 참조한다.
http://sunsolve.sun.com
ftp://sunsolve.sun.com/pub/patches

패치를 관리하거나 설치하기 위해서는 패치 번호를 먼저 파악해야 하고, 이는 Solaris#.PatchReport를 다운 받아 확인한다.
OS설치 후 반드시 Recommended Patch및 최신 보안 패치를 해 주어야 한다. 패치번호는 다음과 같이 구성되어있다.
109320-02 (패치번호-revision number)

1) 패치 정보
# showrev -p (시스템에 설치된 패치 정보 보기)
# patchadd -p (Solaris 2.6부터, Shell script)
# showrev -p | grep 109320
# patchadd -p | grep 109320

2) 초기 설치해야 할 패치와 참고 문서
Solaris8.PatchReport : Solaris8의 모든 recommended 패치 정보
8_Recommended.zip : Solaris8의 모든 recommended 패치 파일들
8_Recommended.README : Solaris8의 모든 recommended 패치 설치 방법과 설명

3) 패치 정보 및 저장 디렉토리
/var/sadm/patch

4) 패치 설치
# /usr/bin/unzip 109320-03.zip ( Solaris 7부터)
# /usr/bin/zcat 104040-01.tar.Z | tar xvf - (Solaris2.6)

# more 109320-03/README (반드시 관련 README를 읽어본다.)
# patchadd 109320-03 (패치를 수행)
# showrev -p | grep 109320 (설치 여부를 확인)

# patchrm 109320-03 (패치를 제거)
# showrev -p | grep 109320 (제거 여부를 확인)

- 주의사항 : Solaris2.6이전은 패치 디렉토리 내의 스크립트를 이용한다.
[설치 시]
# cd 109320
# ./installpatch .
[제거시]
# cd /var/sadm/patch/109320
# ./backoutpatch 109320

5) 패치 정보의 관리
http://sunsolve.sun.com의 Patch Portal에는 패치를 체계적이고 편리하게 다룰 수 있는 Patch finder, Patch Pro, Patch Check등을
제공한다.

6) 패치 에러 코드 정리
0 No error
1 Usage error
2 Attempt to apply a patch that's already been applied
3 Effective UID is not root
4 Attempt to save original files failed
5 pkgadd failed
6 Patch is obsoleted
7 Invalid package directory
8 Attempting to patch a package that is not installed
9 Cannot access /usr/sbin/pkgadd (client problem)
10 Package validation errors
11 Error adding patch to root template
12 Patch script terminated due to signal
13 Symbolic link included in patch
14 NOT USED
15 The prepatch script had a return code other than 0.
16 The postpatch script had a return code other than 0.
17 Mismatch of the -d option between a previous patch install and the current one.
18 Not enough space in the file systems that are targets of the patch.
19 $SOFTINFO/INST_RELEASE file not found
20 A direct instance patch was required but not found
21 The required patches have not been installed on the manager
22 A progressive instance patch was required but not found
23 A restricted patch is already applied to the package
24 An incompatible patch is applied
25 A required patch is not applied
26 The user specified backout data can't be found
27 The relative directory supplied can't be found
28 A pkginfo file is corrupt or missing
29 Bad patch ID format
30 Dryrun failure(s)
31 Path given for -C option is invalid
32 Must be running Solaris 2.6 or greater
33 Bad formatted patch file or patch file not found
34 The appropriate kernel jumbo patch needs to be installed

13. 백업

백업에 대한 자세한 문서는 다음을 참조한다.
http://docs.sun.com/db/doc/805-7228/6j6q7uf0u?a=view

- Full dump : 파티션 전체를 백업
- Incremental dump: 전체 백업 후 변경된 것만 백업
- 선택적 backup: 특정 파일이나 디렉토리를 백업
- Multivolume Backup : 여러 의 미디어를 이용한 백업

1) 백업 디바이스 종류
1/2-inch reel tape(140MB)
2.5-Gbyte 1/4 inch Cartridge(QIC) tape (2.5GB)
DDS3 4mm cartridge tape (DAT) (12-24GB)
14-Gbyte 8-mm cartridge tape (14GB)
DLT 7000 1/2-inch cartridge tape (35~70GB)

cf. /dev/rmt/xyn
x: 장치 번호 (0,1,2...)
y; 밀도 (h, m, l, c, u)
n: rewind 여부

2) mt 명령어 (tape을 제어하기 위해 사용)

# mt -f /dev/rmt/0 status (-> backup device의 상태를 표시 )
# mt -f /dev/rmt/0n eom (-> tape의 맨 끝으로 이동 )
# mt -f /dev/rmt/0 rewind (-> tape를 제일 처음으로 되감는다. )
# mt -f /dev/rmt/0n fsf [count] (-> count 개수 만큼 파일 뒤로 건너 띈다. )
# mt -f /dev/rmt/0n nfsf [count] ( -> count+1 개수 만큼 파일 뒤로 건너 띈다. )
# mt -f /dev/rmt/0n bsf [count] (-> count 개수 만큼 파일 앞으로 건너 띈다. )
# mt -f /dev/rmt/0n nbsf [count] (-> count+1 개수 만큼 파일 앞으로 건너 띈다. )
# mt -f /dev/rmt/0 erase (-> tape의 모든 내용을 지운다. tape나 device에 따라 다르나 시간이 많이 걸린다. )
# mt -f /dev/rmt/0 offline (-> tape가 eject 된다. )


3) tar, dd 명령어

# tar tvf /dev/rmt/0 ( -> tape의 내용을 확인함 )
# tar xvf /dev/rmt/0 ( -> tape에있는 내용을 Hard disk로 내림 )
# tar cvf /dev/rmt/0 /etc/hosts (-> Hard disk에있는 file 이나 directory를 tape로 받음 )
# tar cvfb - backup_dir | rsh host dd of=/dev/rmt/0 (-> remote host에있는 drive로 backup 받기)
# rsh -n host_name dd if=/dev/rmt/0 |tar xvBfb - restore_dir ( -> remote host에있는 drive로 backup 내리기 )


4) cpio 명령어

* 현재 디렉토리의 내용을 tape로 backup
# find . -print | cpio -ovcB > /dev/rmt/0
* tape에서 file을 extract
# cpio -ivcB /var/tmp/space < /dev/rmt/0
* 최근 일주일 내에 수정된 file을 tape로 받는다
# find . -mtime -7 -print | cpio -ovcB > /dev/rmt/0n
# find . -name 'file*' -print | cpio -ovcB > file.list
# cpio -ivt < file.list


5) ufsdump, ufsrestore 명령어

* /export/home이 /dev/rdsk/c0t0d0s3이라 가정

- dump할 파일 또는 파일시스템 용량확인
# df -k /export/home
# ufsdump 0S /export/home [ Mega ==> # / (1024 x 1024) ]

- Full Dump
# umount /export/home
# fsck /export/home
# ufsdump 0uf /dev/rmt/0 /export/home

- Incremental Dump
# umount /export/home
# fsck /export/home
# ufsdump 3uf /dev/rmt/0 /export/home
# cat /etc/dumpdates

- ufsrestore
# mount /export/home
# cd /export/home
# ufsrestore tvf /dev/rmt/0 (내용을 확인)
# ufsrestore rvf /dev/rmt/0 (내용을 모두 복구)
# ls /export/home ( Check filesystem restore)

# cd /var/tmp
# ufsrestore ivf /dev/rmt/0 (interactive로 일부만 복구)

- remove restoresymtable file
# rm /export/home/restoresymtable


14. 로그 관찰 및 성능 측정

1) 로그 분석

- /etc/syslog.conf (syslog 데몬 설정파일)
- /var/adm/sulog ( => su 관련 로그)
- /var/adm/messages ( => system 중요 로그 파일)
- /var/adm/loginlog (=> 로긴 관련 로그)
- /var/sadm/* (=> 패키지 관련 로그)

로그는 다음 문서를 참조한다.
http://www.certcc.or.kr/paper/tr2001/tr2001-05/unix_log_analysis.pdf (유닉스 로그 분석 1)
http://www.certcc.or.kr/paper/tr2001/tr2001-07/Unix_log_analysis_II.pdf (유닉스 로그 분석 2)

2) 시스템 퍼포먼스 관리

- System Administration Guide, Volume 2 >> 33. Managing System Performance Topics
http://docs.sun.com/db/doc/805-7229/6j6q8svgf?a=view
- SUN PERFORMANCE
http://www.sun.com/sun-on-net/performance.html
- Solaris Tunable Parameters Reference Manual
http://docs.sun.com/db/doc/816-0607
- 썬 시스템 메모리 정보 (Sun UNIX memconf utility)
http://www.4schmidts.com/memconf.html
- Unix and Windows NT System Tools
http://webperso.easyconnect.fr/sgarnaud/unixtools/index.html


5부. 네트웍 어드민

1. Network Setup

1) /etc/hostname.<Interface> 에 호스트 이름을 기록
ex) host1

2) /etc/hosts 파일에 ip설정
ex) 192.168.1.20 host1 loghost

3) /etc/defaultrouter 에 gw ip 설정
ex) 203.234.247.254

4) Netmask 설정
ex) 203.234.247.0 255.255.255.0

5) /etc/resolv.conf 에 DNS서버 등록
ex) domain ns.hananet.net
nameserver xxx.xxx.xxx.xxx
nameserver xxx.xxx.xxx.xxx

6) /etc/resolv.conf 에 dns 문자를 추가
....
hosts files dns ( ==> dns 추가)

7) 재부팅
# reboot

cf. 재부팅 없이 IP 변경
# ifconfig -a
# ifconfig hme0 down
# ifconfig hme0 203.234.247.30 net mask 255.255.255.0 broadcast + up (=> 설정)
# ifconfig hme0 (=> 확인)
# route add default 203.234.247.254 1 (=> 기본 게이트웨이 설정)

cf. 호스트 이름 변경
다음 6개 파일을 수정한다.
/etc/hosts
/etc/hostname.<interface>
/etc/nodename
/etc/net/*/hosts (3개)

cf. Network Interface Name
Lance Ethernet(10M Ethernet) : le
Fast Ethernet 1.0 : be
Fast Ethernet 2.0 이상 : hme
Quad Ethernet : qe
Quad FastEthernet 1.0 : hme
Quad FastEthernet 2.0 이상 : qfe
Gigabit Ethernet : vge
ATM 1.0 : sa
ATM 2.0 이상 : ba
FDDI : nf
Token Ring : tr


2. TCP/IP Network Layer

이론에 관한 문서는 다음을 참조한다.
- Introduction to TCP/IP
http://www.yale.edu/pclt/COMM/TCPIP.HTM
- SolarisTM 2.x - Tuning Your TCP/IP Stack and More
http://www.sean.de/Solaris/soltune.html
- TCP/IP 프로토콜
http://jkkang.net/unix/netprg/chap1/net1_2.html
- RFC 문서
ftp://ftp.isi.edu/in-notes/rfc793.txt

1) ifconfig
# ifconfig -a (모든 Network Interface 설정 정보 출력)

# ifconfig hme0 down (=> Interface disable)
# ifconfig hme0 up (=> Interface enable)

# ifconfig hme0 unplumb (=> Interface close)
# ifconfig hme0 plumb (=> Interface open)

# ifconfig hme0 203.234.247.30 netmask 255.255.255.0 broadcast + up (=> 설정)

2) rlogin, rsh, rcp

명령어: rlogin, rsh, rcp
설정파일(user): /etc/hosts.equiv, $HOME/.rhosts
설정파일(root): /.rhosts
서버호스트: sun01
클라이언트: sun02

- 서버 쪽 관리자가 설정
sun01# vi /etc/hosts ( 허락할 클라이언트 호스트 등록)
sun01# echo "sun02 user01" > /etc/hosts.equiv ( 허락할 호스트 및 유저등록)
sun01# chmod 600 /etc/hosts.equiv

- 클라이언트 관리자가 설정
sun02# vi /etc/hosts ( 접근할 서버 호스트 등록)

- test (클라이언트에서)
sun02# su - user01
sun02$ rlogin sun01
sun01$ hostname
sun01$ exit

- 서버 쪽 일반유저가 허락할 때
sun01# rm /etc/hosts.equiv
sun01# su - user01
sun01$ echo "sun02 user01" > $HOME/.rhosts
sun01$ chmod 600 $HOME/.rhosts

- Test (클라이언트에서)
sun02# su - user01
sun02$ rlogin sun01
sun01$ hostname
sun01$ exit

- 기타 r계열 명령어
sun02# su - user01
sun02$ hostname
sun02$ rsh sun01 hostname
sun02$ rcp /etc/profile sun01:a.txt
sun02$ rsh sun01 ls (a.txt가 복사되었는지 확인)

3) 기타 네트웍 명령어
# ping google.co.kr
# ping -s google.co.kr
# rusers (Local Network 사용자 정보, cf who)
# rusers -l hostA ( hostA에 대해 로긴한 사용자 정보)

4) 기타 Freeware
nmap(Port Scanning), traceroute(trace rote inform), nslookup(DNS info), dig(DNS info) ...

3. FTP Server

- 일반적으로 inetd에 의한 중재 방식과 standalone방식이 있다.
- anonymous ftp서비스를 위해서는 맨 페이지나 다음 사이트를 참고한다.
How to Set up a Secure Anonymous FTP Site
http://secinf.net/unix_security/How_to_Set_up_a_Secure_Anonymous_FTP_Site.html
- 보다 많은 설정과 기능을 제공하는 wu-fptd나 proftpd로 대체할 수 있다. (패키지는 www.sunfreeware.com)
WU-FTPD Development Group (http://www.wu-ftpd.org/)
The ProFTPD Project (http://www.proftpd.net/)
vsftpd (http://vsftpd.beasts.org/)

/usr/sbin/inetd (/etc/inetd.conf) ---> /usr/sbin/in.ftpd

4. Telnet Server

- 요즘은 보안 때문에 telnet 보다는 Secure Shell(ssh)을 사용하는 것이 일반적이다.


5. NFS (Network File System)

NFS는 썬에서 개발한 분산 환경 파일시스템으로서 원격지에서 공유한 일부를 로컬에서 쉽게 연결해서 쓸 수 있는 공유파일시스템이다.
자세한 문서는 다음을 참고한다.
- NFS FAQ
http://www.ebsinc.com/solaris/network/nfs.html
- Chapter 29 Solaris NFS Environment
http://docs.sun.com/db/doc/806-0916/6ja8539fd?a=view

1) NFS의 장점
- 여러 대의 컴퓨터가 모두 같은 자료에 접근하여 같은 파일을 사용할 수 있다.
- 데이터의 중복을 줄이고 관리를 최소화할 수 있다.
- 서로 다른 환경을 지원한다.
- 시스템 관리 오버헤드를 줄인다.

2) NFS Server
- 관련 파일
/etc/dfs/dfstab

posted by windyman
2009/07/17 16:15 자료실

오라클 클라이언트를 설치 한 후 원격접속을 위한 환경변수를 맞춰야 하는데


관련 파일은 tnsnames.ora, listner.ora 이다.


우선 tnsnames.ora 내용을 살펴보면


TNSNAMES.ORA Network Configuration File: c:\oracle\ora81\NETWORK\ADMIN\tnsnames.ora  // 클라이언트상의 tnsname.ora 파일 위치를 알 수 있음
# Generated by Oracle configuration tools.

WEBDB //해당 데이터베이스를 칭하는 별칭 사용
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = ip주소)(PORT = 1521))
    )  // HOST = 해당 DB IP주소, PORT는 표준포트 1521 사용
    (CONNECT_DATA =
 #     (SERVICE_NAME = EDU) // 서비스_네임도 임의 사용
 (SID = ORA9) // Oracle System Identifier(SID) 설정
    )
  )


listener.ora 구성


# LISTENER.ORA Network Configuration File: c:\oracle\ora92\network\admin\listener.ora
# Generated by Oracle configuration tools.

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = ip주소)(PORT = 1521))

// HOST = 해당 DB IP주소, PORT는 표준포트 1521 사용
 
      )
    )
  )

마지막으로 원격 TNS 접속이 되는지를 확인한다.

 

tnsping <TNSNAME>


tnsping WEBDB


그러면 설치 완료!!!!

posted by windyman
2009/07/17 15:46 자료실
http://www.oracle.com/technology/pub/articles/smiley_rac10g_install.html
http://www.oracle-base.com/articles/10g/OracleAS10gInstallationOnFedora2.php
참조.

시스템 환경 점검
2.6.9-11 이상의 커널이 필요하다.
# uname -r

필요한 패키지 버전(그 이상도 당연히 가능) -> 대부분 설치되어 있다.
binutils-2.15.92.0.2-10
compat-db-4.1.25-9
control-center-2.8.0-12
gcc-3.4.3-9
gcc-c++-3.4.3-9
glibc-2.3.4-2
glibc-common-2.3.4-2
gnome-libs-1.4.1.2.90-44.1
libstdc++-3.4.3-9
libstdc++-devel-3.4.3-9
make-3.80-5
pdksh-5.2.14-30
sysstat-5.0.5-1
xscreensaver-4.18-5

시스템 요구사항 검증
# grep MemTotal /proc/meminfo
MemTotal :    xxxxxx KB
# grep SwapTotal /proc/meminfo
SwamTotal : xxxxx KB

계정 생성
# groupadd oinstall
# groupadd dba
# useradd -m -g oinstall -G dba oracle
# passwd oracle


디렉토리 생성
# mkdir /oracle
# chown -R oracle.dba /oracle
# chmod -R 755 /oracle


hosts 파일
/etc/hosts 파일이 제대로 설정되어 있는지 확인.
# cat /etc/hosts
<IP-address> <fully-qualified-machine-name> <machine-name>

커널 파라미터 설정
 Oracle 11g? 가 요구하는 커널 매개변수 설정이다. 아래의 수치는 최소값이며 /etc/sysctl.conf에 적혀있는 값이
아래의 값보다 높을 경우에는 변경하지 않아도 된다. 물론 낮을 경우에는 /etc/sysctl.conf 에 추가해준다.

# sysctl -a | grep ... 으로 확인할 수 있다.

#kernel.shmall = 2097152
#kernel.shmmax = 2147483648
#kernel.shmmni = 142
# semaphores: semmsl, semmns, semopm, semmni
#kernel.sem = 250 32000 100 128
#fs.file-max = 131072
net.ipv4.ip_local_port_range = 1024 65000
kernel.msgmni = 2878
#kernel.msgmax = 8192
#kernel.msgmnb = 65535


(#처리는 서버에서 해당값보다 크거나 같은 경우이다. 적다면 주석 풀고 붙여넣는다.)

변경이 완료되면

# /sbin/sysctl -p 로 변경된 설정을 적용한다.


oracle 사용자 계정의 shell limit 설정
Linux 계정 별로 실행되는 프로세스와 열린 파일 수를 제한한다. 이를 위해 /etc/security/limits.conf 를 편집한다.
아래에 추가하자. (간격은 tab으로 조정하던지.. 알아서 )
#<domain>      <type>  <item>         <value>
    oracle            soft     nproc            2047
    oracle            hard    nproc            16384
    oracle            soft     nofile             1024
    oracle            hard    nofile             65536

그리고 /etc/pam.d/login 에 다음을 추가하자.
session    required    /lib/security/pam_limits.so


oracle 계정을 위한 환경변수
DB 서버에서 설정해야하는 환경변수는 다음과 같다.

ORACLE_BASE
ORACLE_HOME
ORACLE_SID
PATH

위의 변수를 추가하기 위해서 oracle 계정의 .bash_profile에 다음을 추가한다.

ORACLE_BASE=/oracle; export ORACLE_BASE
ORACLE_HOME=/oracle/11g; export ORACLE_HOME
ORACLE_SID=orcl; export ORACLE_SID
PATH=$PATH:$ORACLE_HOME/bin

오라클 배포판 다운받기
배포판을 다운받아서 특정 디렉토리에 압축을 풀어놓는다. 물론 디렉토리는 oracle 계정의 소유여야한다.
루트로 작업하고 나중에 chown을 사용해도 상관없다.

# unzip linux.x64_11gR1_database.zip    <물론 zip파일의 이름은 다를 수도 있다 -_->
# chown -R oracle.oinstall ./database

설치 전에..
oracle 계정으로 로그인 해서  설치 파일들을 풀어놓은 디렉토리에서 runInstaller를 실행하기 전에..
# xhost +
(+까지 쳐야한다. 이걸 해줘야 루트로 로그인 한 X윈도에서 터미널로 su - oracle을 이용해서
  oracle 계정을 사용 xwindow 창을 띄울 수 있다. 궁금하다면 man xhost 를 참고할 것)

예전에는 /etc/redhat-release를 수정해주곤 했는데 안해줘도 잘 나온다.

oracle 11g도 한글이 다 깨져서 나온다. runInstaller 전에 다음을 실행한다.
# export LANG=C
그리고 나서 runInstaller를 실행하면 깨지지 않고 나올 것이다. 물론 영어로 -_-;

이제 runInstaller를 실행해보자.

Base Location
Home Location 을 profile과 동일하게 맞춰주고..
Global Database Name 도 SID 와 맞춰준다.
Advanced Installation으로 들어가면 이것저것 만질 수 있는게 많다. 귀찮으므로 패스.

자.. 이제 다음 화면이다.

Inventory Directory와 Group Name을 지정하는데 Inventory는 적당한 곳에 위치시키고..
group name도 dba로 설정해준다.

이제는 설치전 요구사항에 대해서 검사를 하는데.

Warning도 뜨고.. not execute(Network 설정)도 뜬다. 그냥 User Verify 로 선택하고 넘어가자.

11g에서는 다음 화면이 추가로 생겼다. 환경설정 관리자 등록 화면인데.. 등록하면 뭔가 귀찮으니까 -_- 패스


자 이제 Summary 를 볼 수 있다.

Install 버튼을 눌러서 계속 진행한다.

와우. 별일 없이 쭉 넘어갔다. 8i 시절 부터 10g까지 리눅스에 설치시 끈질기게 괴롭히던 Link Error가 사라졌다.
다음은 패스워드 설정이다. 11g 에서는 sys / system / dbsnmp / sysman 을 제외한 모든 계정이 잠겨있다.
여기서 풀어줄 수 있다. scott 정도는 풀어주자.

scott 을 추가해준다.


항상 해오던 루트로 실행해줄 스크립트다. 터미널을 하나 열어서 적혀있는 스크립트를 루트권한으로 실행해준다.

설치가 완료 되었다.




오라클 자동 시작/종료 설정
# vi /etc/oratab
orcl:/oracle/11g:N   <- N을 Y로 수정한다.
orcl:/oracle/11g:Y



에러처리
다음과 같은 에러가 날 것이다.

error while loading shared libraries libnnz11.so: cannot restore segment prot after reloc Permission denied

뭔가 퍼미션이 없다는 얘긴데.. 이건 SELinux를 disable 시켜주면 된다. SELinux disble 시키는 방법은

/etc/selinux/config 파일을 잘 읽어보고 고치면 된다. (모르면 구글에 검색)

또 이런 에러가 날 수도 있다.

$ ./lsnrctl start
 
LSNRCTL for Linux: Version 11.1.0.6.0 - Production on 18-FEB-2008 19:14:37
 
Copyright (c) 1991, 2007, Oracle.  All rights reserved.
 
Message 1070 not found; No message file for product=network, facility=TNSTNS-12545: Message 12545 not found; No message file for product=network, facility=TNS
 TNS-12560: Message 12560 not found; No message file for product=network, facility=TNS
  TNS-00515: Message 515 not found; No message file for product=network, facility=TNS
   Linux Error: 2: No such file or directory


이런 경우는 포트가 열려있지 않은 경우니까.. 방화벽에서 1521번 포트를 열어주자.

오라클 실행과 종료
oracle 계정에서
$ lsnrctl start   <리스너 스타트>

리스너 시작 후에..

$ sqlplus /nolog
sqlplus> connect orcl as sysdba
...
sqlplus> startup

서비스 스크립트 작성

# vi /etc/init.d/oracle 
다음의 내용을 파일에 쓴다.

----------------------------------------------------------------------
#!/bin/bash
ORA_HOME="/oracle/11g/"
ORA_OWNER="oracle"
 
if [ ! -f $ORA_HOME/bin/dbstart -o ! -d $ORA_HOME ]
then
        echo "Oracle Startup: failed"
        exit 1
fi
 
case "$1" in
start)
        echo -n "Oracle Start: "
        su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start"
        su - $ORA_OWNER -c $ORA_HOME/bin/dbstart
        touch /var/lock/subsys/oracle
        echo "OK"
        ;;
stop)
        echo -n "ORACLE Shutdown: "
        su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop"
        su - $ORA_OWNER -c $ORA_HOME/bin/dbshut
        rm -f /var/lock/subsys/oracle
        echo "OK"
        ;;
restart)
        $0 stop
        $0 start
        ;;
*)
        echo "Usage: $0 start|stop|restart"
        exit 1
esac
exit 0

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

사용은 /etc/rc.d/init.d/oracle start | stop | restart ~

by 그린우드 | 2009/06/10 16:48 | work | 트랙백 | 덧글(0)
리눅스 시간 설정
# date
시스템의 현재 시간을 출력

# clock
시스템의 하드웨어(마더보드)에 입력되어 있는 시간 출력

# rdate -p time.bora.net
time.bora.net 타임서버의 시간을 출력한다

# rdate -s time.bora.net
time.bora.net 타임서버의 시간으로 로컬 시스템의 시간을 설정

# clock -w
시스템 시간(OS가 관리하는 시간)을 HW시간에 입력
posted by windyman
2009/07/17 12:26 자료실

 


1. addbib - 도서목록 형식의 데이터베이스를 만들거나, 확장


2. apropos - 사용설명서의 키워드 검색


3. ar - 라이브러리 만들기, 관리

아카이브 화일에 있는 화일의 그룹들을 유지 관리하는 명령어

문법 ar [drqtpmx] [vuaiblc] afile files ...

options

d 아카이브 화일에 있는 특정화일을 삭제

r 아카이브 화일에 있는 화일을 교체 ; 문자 n 와 함께 쓰면 수정되는 날짜보다 뒤의 화일만을 교체

q 특정 화일을 아카이브 화일의 맨 뒤에 첨가

t 아카이브 화일내의 목록을 출력

p 아카이므 화일내의 지정된 화일 내용을 출력

m 아카이브 화일의 맨 끝에 특정 화일을 이동시킨다 ; 인수 a, b 또는

i와 함께 사용하면 posname으로 위치를 지정할 수 있다

x 특정화일을 추출

c afile을 생성

l system 내의 임시 directory인 /tmp 대신에 local directory에 있는 임시 화일을 둔다

v 새로운 아카이브 화일 생성에서 기술된 정보를 화일별로 출력. 인수

t와 함께 사용하며 화일에 관한 모든 정보의 목록을 출력할 수 있으며 인수 x와 함께 사용하면 화일명이 먼저 출력

afile 아카이브 filename


4. at, batch - 원하는 시간에 원하는 명령을 실해하게 하는 명령

사용자가 원하는 시간에 프로그램 스케쥴링을 할 수 있는 명령어. 또한 앞으로 사용될 작업들을 확인해 볼수 있으며(atq), 취소(atrm)도 가능하다. 주로 이것은 시스템 관리자가 시스템을 정리하고자 할 때 이용하고 있는 사용자에게 메시지를 전달하는 등 비교적 규칙적으로 서버에서 일어날 수 있는 일에 자주 사용된다.

일정 시간이 지난후에 명령어를 실행 시깁니다. 따라서 자리를 비우고 30분후에 시스템을 다운 시킨다든지 하는 등 명령어에 타이머를 달수 있습니다.

옵션 -l at queue 를 보여 줍니다.

-d 번호 queue 에서 삭제 합니다. 즉 예약 명령 취소

ex) 10:20 분에 시스템을 정지 하는 것을 예약하고 싶은 경우

#at 10:20 ; 10:20 분을 줍니다.

at>halt ; 프롬프트가 at> 로 바뀌면, halt 명령을 예약합니다. .

ctrl-D ; ctrl+D 로 빠져나옵니다. ( ctrl-C, ctrl-Z 로 빠져나오면 예약이 안 됩니다. )


5. awk - 패턴 검색과 언어 처리

program file에서 기술된 pattern들중 일치되는 line 을 찾기 위해 입력 화일을 검색하는 명령어

문법 awk [-Fc] [profile] [file] ...

또는

awk [-Fc] [-f profile] [file] ...

options

-Fc 입력필드의 구분기호로서 c를 이용

-f progam file로서 다음 인수 사용


6. banner - 큰 글자(배너) 만들기

10문자이내의 문자열을 확대문자로 표준출력\

문법 banner string


7. basename - 경로 이름에서 마지막에 있는 이름만 출력


8. bdiff - 매우 큰 화일을 비교하는 diff 명령어

문법 bdiff file1 file2 [u] [-s]

options

file1,file2 비교하는 filename

n segment 수를 지정하여 생략시 default로 3500임

-s 진단적 message를 표준 출력하지 않는다


9. bfs - 매우 큰 화일을 scan하는 명령어

문법 bfs [-] name

options

- file의 크기를 출력하지 않음

name 읽기만 하는 화일을 scan 할 때 사용되며 name 은 filename


10. biff - 자신에게 편지가 배달되면 알려주는 명령


11. bin-mail, binmail - 예전에 사용한 전자우편 프로그램


12. cal - 달력보기


13. calendar - 간단한 일정표

현재 directory 내의 calendar file로부터 매일의 메모를 print하는 명령어

문법 calendar [-]

options

- login directory에 calendar file을 가지는 각 사용자에 이 화일 중의 오늘과 내일 날짜를 포함하는 라인을 전자우편(mail)으로 보낸다


14. cat - 파일 병합과 내용 보기

파일의 내용을 화면에 출력하거나 파일을 만드는 명령( 도스의 TYPE명령)

% cat filename


15. cb - 간단한 C 프로그램 beautifier


16. cc - C 컴파일러

17. cd - 작업 디렉토리 바꾸기

디렉토리를 변경

% cd cgi-bin : 하부 디렉토리인 cgi-bin으로 들어감.

% cd .. : 상위디렉토리로 이동

% cd 또는 cd ~ : 어느곳에서든지 자기 홈디렉토리로 바로 이동

% cd /webker : 현재 작업중인 디렉토리의 하위나 상위 디렉토리가

아닌 다른 디렉토리(webker)로 이동하려면 /로 시작해서 경로이름을 입력하면 된다.


18. checknr - nroff 또는 troff 입력 파일 검사; 오류를 보여준다


19. chgrp - 파일의 사용자 그룹 바꾸기


20. chmod - 파일의 접근 권한 바꾸기

화일 permission 변경

유닉스에서는 각 화일과 디렉토리에 사용권한을 부여.

예) -rwxr-xr-x guestbookt.html

rwx :처음 3개 문자 = 사용자 자신의 사용 권한

r-x :그다음 3개 문자 = 그룹 사용자의 사용 권한

r-x :마지막 3개 문자 = 전체 사용자의 사용 권한


읽기(read)---------- 화일 읽기 권한

쓰기(write)---------- 화일 쓰기 권한

실행(execution)---------- 화일 실행 권한

없음(-)---------- 사용권한 없음


명령어 사용법

chmod [변경모드] [파일]


% chmod 666 guestbook.html

: test.html 화일을 자신에게만 r,w,x 권한을 줌

% chmod 766 guestbook.html

: 자신은 모든 권한을 그룹사용자와,전체사용자에게는 읽기와 쓰기 권한만 줌


21. clear - 터미날 화면 깨끗이 하기


22. cmp - 두 파일을 바이트 단위로 비교

두 개의 화일 내용을 비교하는 명령어

문법 Cmp [-l] [-s] file1 file2

options

-l 두 화일 내용을 비교함에 있어 틀린곳마다 byte 수 (10진수)와 틀린 byte 수(8진수)를 출력

-s 틀린 화일의 내용을 출력하지 않고 return code 만 변환한다


23. colcrt - troff 파일의 밑줄 속성 문자 처리


24. comm - 지정 두파일의 줄 단위 비교와 그 처리

두 개의 정렬(sort)된 화일에서 공통된 line을 선택하거나 삭제하는 명령어

문법 comm [-123] file1 file2

options

1 file1에만 있는 line을 출력하지 않는다

2 file2에만 있는 line을 출력하지 않는다

3 file1, file2 양쪽 화일에 있는 line을 출력하지 않는다


25. compress, uncompress, zcat - 파일 압축관련 유틸리티들

확장자 .Z 형태의 압축파일 생성

% compress [파일명] : 압축시

% uncompress [파일명] : 해제시


26. cp - 파일 복사

화일 복사(copy)

% cp index.html index.old

: index.html 화일을 index.old 란 이름으로 복사.

% cp /etc/*.* .

: etc 디렉토리내의 모든 화일을 현 디렉토리로 복사


27. cpio - copy file archives in and out

아카이브 화일을 복사하여 입출력하는 명령어

문법 cpio -o [abcv]

cpio -i [Bdmtuvsb] [patterns]

cpio -p [adlmv] directory

options

-o 복사 출력: 화일을 path명과 정보 상태를 함께 출력

-i 복사 입력: 표준 입력 화일로 부터 pattern에 일치하는 화일을 추출

-p *directory 내에 file 을 조건부로 작성하고 복사

a *file 복사후 입력 화일의 최종 접근 시간을 reset한다

B 입출력을 5,120 byte의 레코드로 블럭화한다

c ASCII 문자로 헤드 정보를 쓴다

d 필요에 따라 directory를 생성

m 존재하는 최종 화일 수정 시각을 보존

r 대화 문법으로 화일명을 변경

t 입력 화일명 목록을 출력하여 화일은 작성되지 않는다

u 무조건 복사

v 화일명 목록을 출력


28. cpp - C 언어 전처리기


29. crontab - 지정된 시간에 유저의 crontab 파일을 관리하는 명령어  

지정한 화일을 입력으로 받아 user의 크론탭 화일을 관리 및 directory로 복사하는 명령어

문법 crontab [file]

options

-r user crontab을 crontab directory로 부터 삭제

-l 호출한 user crontab fule을 출력

file 등록되는 화일명을 지정


30. csh - C 문법과 비슷한 쉘 스크립트 문법과 기타 여러 기능이 내장된 쉘


31. ctags - ex 나 vi 편집기에서 사용될 tag 파일을 만드는 명령


32. cut - 파일이 각 line에서 선택된 필드를 절단하는 명령어

화일이 각 line에서 선택된 필드를 절단하는 명령어

문법 cut -clist [file1 file2 ...]

cut -flist [-d char] [-s] [file1 file2 ...]

options

list - 사용으로 페이지 범위를 지정할수 있으며 정수의 필드 번호를 컴마로 분리하고 증가순서로 나열

clist 문자위치를 지정

(예로서, -(1-72)는 각 line에서 첫 72문자이다)

-d char -d의 문자는 필드구분 문자이며 -f 옵션에서만 필요

flist 구분문자에 의해 분리되는 필드 목록

(예로서, -f1,7은 첫번째와 일곱번째 필드를 복사)

-s 필드 구분문자가 없는 line은 무시


33. date - 시스템 시간 보기나 지정하기


34. dbx - 소스 수준의 디버거


35. deroff - nroff, troff, tbl, eqn 관련 내용 지움


36. df - disk free: 디스크의 남은 용량 보기

이용가능한 디스크블럭수를 출력하는 명령어

문법 df [-f] [-t] [file sysytem]

options

-f 디스크내의 자유리스트내의 정확한 블럭수를 출력

-t 사용가능 블럭 및 i-node와 할당된 전체블럭과 i-node가 출력


37. diff - 두 파일의 차이점 비교

두개의 화일중에서 다른 라인을 출력하는 명령어

문법 diff [-befh] file1 file2

options

-b 비교할 때 라인의 마지막에 있는 탭(tab)과 공백을 무시

-e file1으로부터 file2를 재생성. ed 편집을 위한 a,c 그리고 d 명령어의 script를 만든다

-f 비슷한 script를 만들지만 역순이기 때문에 ed 편집에서는 사용할 수 없다

-h 정밀도가 없어도 빠른 속도를 처리하고자 할 때 사용하며 -e와 -f와 함께 사용할수 없다

문법 diff3 [-ex3] file1 file2 file3

options

-e file1에 file2와 file3의 차이 비교를 기록

-x file1에 3개 화일 모두의 차이 비교를 기록

-3 file1에 file3과 차이 비교되는 부분만 기록


38. dircmp - 디렉토리를 비교하는 명령어

문법 dircmp [-dsw] directory1 directory2

options

-d 두 directory내의 화일명을 비교후 그 차이점을 diff문법으로 출력

-s 비교 일치된 화일에 대한 메세지 출력 안함

-Wn 출력되는 화면의 폭(n)을 변경

**) directory1, directory2는 비교되는 디렉토리명


39. du - disk used : 디스크 사용량 보기

디스크 사용을 요약 출력하는 명령어

문법 du [-ars] [files]

options

-a 각 화일에 대한 entry 출력

-r 읽을 수 없는 directory 또는 열 수(open) 없는 화일에 대해 메세지

를 출력

-s 이름으로 지정된 각각에 대한 총계 블럭수만을 출력


40. echo - 인자를 표준 출력으로 출력

echo명령어는 외부 프로그램과 내부 쉘명령어 사이에 있으며 echo의 인수는 공백에 의해 구분되어지며 new line으로 종료하는 각 인수를 화면에 표준출력하는 명령어

문법 echo [-n] [arg] ...

options

-n new line이 없는 것은 추가로 출력


41. ed, red - 기본 줄 편집기

표준 텍스트 편집기 (라인 편집기)

문법 ed [-] [-x] [file]

options

- 문자 e,r과 w의 명령어의 출력을 없앤다

-x x 명령어는 암호와 선택 항목 인수이다


42. env - UNIX 명령어를 수행하기 위한 환경을 설정하는 명령어

문법 env [-] [name=value] ... [command arg]

options

- 기존 환경을 무시하고 지정된 환경으로 명령어를 수행

name=value 명령 수행 전의 원래 환경을 지정

command arg 수행하고자 하는 명령어 지정



43. eqn, neqn, checkeq - 수식 표현 포멧 도구


44. error - 컴파일러 오류 메시지 목록


45. ex, edit, e - 줄 편집기

ed 기능을 강화한 텍스트 편집기

문법 ex [-] [-trRV] [+command] name ...

options

- 대화형 사용자를 위해 feed-back을 억제

-t tag tag를 갖는 화일을 편집후 편집기를 그 화일의 위치에 지정

-r file file을 복구

R 읽기 허가만 된 모드로 한다

+ command 지정한 명령어를 수행하고 편집


46. expand, unexpand - TAB 문자를 공백문자로 바꿈, 또는 그 반대로


47. expr - 인자를 수식으로 처리


48. fgrep - 문자열에 따라 화일 검색

문자열에 따라 화일 검색(fgrep [option] string [file .. ) fgrep은 문자열에 따라 화일을 검색하여 지정한 문자열이 있는 모든 행을 출력하며 정규식(영문,숫자,특수문자의 부분집합을 사용하는 식)을 사용 하는 grep와는 차이가 있다.

-b: 각 행의 선두에 그 행이 발견된 블럭번호를 넣어줌.

-c: 일치하는 패턴을 갖고 있는 행의 수 만을 출력함.

-l: 일치하는 행이 있는 화일의 화일명만을 복귀개행으로 구별시켜 출력하는데, 화일내에 패턴이 몇 개나 포함되어 있어도 화일명은 한 개밖에 출력하지 않음.

-n: 각 행의 선두에 화일내의 행번호를 넣음.(1 라인은 1임)

-i: 비교시 소문자와 대문자의 차이를 무시

-v: 일치하는 행을 제외한 모든행을 출력.


49. file - 파일 형식 알아보기

화일 형태를 결정하는 명령어

문법 file [-f] file ...

options

-f 다음 인수를 조사하고 싶은 화일명을 포함하는 화일로 간주


50. find - 파일 찾기

각 경로명에 대해서 계층적 directory를 순환적으로 내림차순으로 불(Boolean)표현식과 일치하는 화일을 찾는 명령어

문법 find pathname-list expression

options

-atime n 만약 화일이 n 날짜 이내에 접근되면 참

-cpio device 현재의 화일은 cpio(1)의 문법(5120byte 레코드)으로 장치에 써넣는다

-ctime n 화일이 n 날짜내에 변경되면 참

-exec cmd 지정한 명령어를 수행하고 종료상태로서 0의 값이 반환되면 참

-group gname 화일에 gname에 포함되어 있으면 참

-links n 화일이 n 개의 링크가 있으면 참

-mtime n 화일이 n 날짜 이내에 수정되면 참

-name file 화일이 현재의 화일명과 일치하면 참

-newer file 현 화일이 인수화일보다 최근에 수정되어 있으면 참

-ok cmd 명령어 라인을 의문부호를 선두에 부과하여 화면에 출력하며 만약 사용자가 y를 칠 경우에만 실행 가능

-perm onum 화일의 허가 그래프가 9진수 onum과 일치하는 경우이면 참

(chmod(1) 참조)

-print 항상 참 ; 현재의 패스명을 출력

-size n 화일의 길이가 n 블럭(블럭당 512byte)이면 참

-type c 화일의 형태가 이면 참이며 여기서 말하는 c는 블럭형태인 특수화일,

문자형 특수화일, 디렉토리, 파이프 또는 일반화일을 각각 b,c,d,p,

또는 f로 표시

-user unname 화일이 사용자 unname에 속하면 참

(expression) 괄호내의 식이 참이면 참


1. 특정파일을 모두 찾아서 각각 "ls -l"하여 정보확인하기

[root@kebia_1 /root]# find / -name .searchfile -exec ls -l {} \;

2. 특정파일을 모두 찾아서 각각 파일내용 확인하기

[root@kebia_1 /root]# find / -name .searchfile -exec cat {} \;


51. finger - 사용자 정보 알아보기

who 명령을 보충하는 명령이 finger입니다. 특정 사용자에 대한 정보를 알려면 finger username(또는 사용자가 다른 컴퓨터에 있으면 finger username@domain)을 입력합니다.


52. fmt, fmt_mail - 간단한 문서나, 편지 포멧 도구


53. fold - 긴 줄 출력 방법 지정


54. ftp - 파일 전송 프로그램


55. gcore - 실행 중인 프로세스의 core 이미지를 구한다.


56. gprof - call-graph profile data(?)를 보여줌


57. grep - 문자열 찾기

화일의 패턴을 검색하는 명령어

문법 grep [option] expression [file]

options

-b 각 라인의 첫머리에 블럭번호를 넣는다

-c 라인에 일치되는 수를 출력

-e expression a로 시작되는 식일 때 사용

-f file 규칙적인 식(grep) 또는 리스트열(fgrep)이 화일로부터 취한다

-l 일치되는 라인의 화일명만 출력

-s 읽지못하는 화일이거나 존재하지 않는 화일에 대한 에러 메세지 출력을 억제

-v 일치되는 라인을 제외한 모든 라인을 출력

-x 정확히 일치되는 라인을 출력 (fgrep만 사용)


58. groups - 사용자의 그룹을 보여줌


59. gzip - 확장자 .gz, .z 형태의 압축파일 생성

확장자 .gz, .z 형태의 압축파일 생성

% gzip [파일명] : 압축시

% gzip -d [파일명] : 해제시


60. head - 파일의 앞 부분 보기

% head -n filename : n줄 만큼 위세서부터 보여줌


61. history - 이전 명령 보기


62. hostname - 현재 시스템 이름을 보여줌


63. imake - makefile 만드는 프로그램


64. indent - C 프로그램 소스 파일을 들여쓰기 하는 포멧 도구


65. install - 파일 설치


66. ipcs - process 상호간의 통신에 대한 상태를 출력하는 명령어

문법 ipcs [-copqt]

options

-c 사용자의 로그인 명과 그룹명을 출력

-o 사용 상황 상태에 대한 정보를 출력

-p 프로세서 번호에 대한 정보를 출력

-q 수행중인 메세지 큐(Queue)에 대한 정보를 출력

-t 시간에 대한 정보를 출력


67. join - 관계형 데이터베이스 연산자


68. kill - 프로세스 죽이기

프로세스를 강제 종료하는 명령어

문법 kill [-signo] process id ...

options

1 hang up

2 인터럽터

3 정지

4 정확하지 않는 명령

5 trace trap

6 IOT

7 EMT

8 부도소수점 expression 발생

9 강제 종료

10 버스 에러

11 세그먼트 위배

12 bad system 콜

13 읽는 사람없이 파이프에 써 넣음

14 경보 신호

15 Software 종료


69. last - 사용자가 마지막 접속 상태를 보여줌


70. ld, ld.so - 링크 편집기, 동적 링크 편집기


71. leave - 자신의 접속 종료 시간을 알려줌


72. less - more 명령의 확장


73. lex - 어휘 분석 프로그램 생성기


74. link - 파일 및 디렉토리 링크 명령어


75. lint - C 프로그램 verifier


76. ln - 파일의 하드, 심벌릭 링크 명령


77. login - 시스템 접속 명령


78. look - 시스템 디렉토리나, 정열된 목록에서 단어 찾기


79. lookbib - 도서목록형 데이타베이스에서 찾기


80. lorder - 오브젝트 라이브러리의 관계 찾기


81. lp, cancel - 인쇄 시작, 취소

특정화일 및 정보를 프린터로 출력하는 명령어

문법 lp [-c] [-d lest] [-m] [-nnumber] [-0 option] [-s] [-t title]

[-w] files

options

-c 프린터가 끝나기전에 화일 변경이 가능하도록 프린트할 화일을 복사

-d dest 프린터 또는 프린터 클라스를 dest로 지정

-n 프린트 후 전자우편을 보낸다

-n number 프린트 할 매수를 지정

-s 메세지 출력을 억제

-w 프린트 후 사용자의 단말장치에 메세지를 보낸다


82. lpq - 인쇄 작업 상황 보기


83. lpr - 인쇄


84. lprm - 인쇄 작업 지우기


85. ls - 디렉토리 내용 보기

directory의 내용을 화면에 출력하는 명령어

문법 ls [-aAcCdDfFgimngrRstuxl] file ...

options

-a .file을 포함한 전 entry를 출력

-A -a option과 유사하지만 .또는 ..을 포함하는 화일은 출력 억제

-c 마지막 변경된 i-node의 시간을 출력

-C 멀티칼럼으로 출력하며 디폴트로는 CRT에 출력

-d directory명만 출력하며 내용은 출력하지 않는다

-D directory만 출력

-f 인수를 directory로 해석하며 각각의 슬롯에 있는 directory 및 file

명을 출력

-F system에 있는 화일이 directory면 /를 실행가능한 화일이면 *를 붙

인다

-g 옵션 -l과 같으나 소유자명이 출력되지 않는다

-i 첫 칼럼에 i-number를 출력

-l 화일 및 directory 상태 정보를 long 문법으로 출력

-m 스트림 문법의 출력

-n 소유자명과 그룹명 대신에 UID 번호와 GID 번호가 출력되는 것을 제

하고는 옵션 -l과 같다

-g 비도형문자를 ?문자로 출력

-r 화일명이나 수정시간을 알파벳 또는 오래된 역순으로 출력

-R 발견되는 sub-directory의 내용을 순환적으로 출력

-s 간접블럭을 내포하는 블럭수를 출력

-t 화일명 대신에 수정된 시간으로 분류

-u -t 또는 -l option으로 분류하는 중에서 최종접근 시간을 사용


86. mail, Mail - 전자 우편 프로그램


87. make - 실행 파일을 만들거나, 특정 작업 파일을 만들 때 사용하는 도구


88. man - 온라인 사용자 설명서를 보는 명령

원하는 명령어의 사용방법을 CRT 화면에서 알고자하는 명령어

문법 man [option ... ] [chapter] title ...


89. mesg - 메시지 수신 상태를 보거나 지정


90. mkdir - 디렉토리 만들기

디렉토리 생성

% mkdir download : download 디렉토리 생성


91. mkstr - C 소스 파일을 참조로 오류 메시지 파일을 만듬.


92. more, page - 텍스트 파일 보기 명령

cat 명령어는 실행을 시키면 한 화면을 넘기는 파일일 경우 그 내용을 모두 볼수가 없다. 하지만 more 명령어를 사용하면 한 화면 단위로 보여줄 수 있어 유용.


% more <옵션>

옵션은 다음과 같습니다.

Space bar : 다음 페이지

Return(enter) key : 다음 줄

v : vi 편집기로 전환

/str : str 문자를 찾음

b : 이전 페이지

q : more 상태를 빠져나감

h : 도움말

= : 현재 line number를 보여줌


93. mount - file system을 mount하는 명령어

file system을 mount하는 명령어

문법 mount [special directory [-r]]

options

special directory에 있는 블럭형 특수장치를 말한다

directory special이나 resource를 위한 적재 directory를 가리킨다

-r special이나 resource를 읽기허가하여 적재하도록 한다


94. mountall - 여러개의 file system을 mount하는 명령어

여러개의 file system을 mount하는 명령어

문법 mountall [-] file system

mountall [-k]

options

- 입력되는 데이타가 표준입력

-k 화일을 open시키고 프로세서를 찾은 다음 SIGKILL 시그널을 보낸다


95. mv, mvdir - 파일 이동이나, 이름 바꾸기

파일이름(rename) / 위치(move)변경


% mv index.htm index.html

: index.htm 화일을 index.html 로 이름 변경

$ mv file ../main/new_file

: 파일의 위치변경


96. nawk - 패턴 검색과 언어 처리


97. nice - 낮은 우선권에서 명령 실행

문법 nice [- number] command [arguments]

options

- number 우선 순위를 1에서 19까지로 지정하며 디폴터로는 10


98. nm - 심블 이름 목록 보기


99. nroff - 문서 포멧 도구


100. od - 8진수, 10진수, 16진수, ascii 덤프

8진수로 덤프하는 명령어

문법 od [-bcdox] [file] [[+[x]] offset [.] [b]]

options

-b 8진수로 byte를 해석

-c ASCII code로 byte를 해석

-d 10진수로 단어를 해석

-o 8진수로 단어를 해석

-x 16진수로 단어를 해석


101. passwd, chfn, chsh - 비밀번호, 핑거정보, 쉘 바꾸기


102. paste - 여러파일의 서로 관련 있는 줄 연결시키기


103. pr - 문서 파일 양식화 도구


104. printenv - 현재 환경 변수들의 내용과 그 값 알아보기


105. prof - profile 자료 보기


106. ps - 현재 프로세스 정보 보기

실행중인 프로세스에 관한 정보를 출력하는 명령어

문법 ps [options]

options

-a 프로세스 그룹의 리더 및 단말장치와 관계없는 프로세스를 제외한 빈번하게 사용되는 모든 프로세스에 관한 정보를 출력

-d 프로세스 그룹의 리더(rearder)를 제외한 모든 프로세스에 대한 정보를 출력

-e 현재 system내에서 실행중인 모든 프로세스 정보를 출력

-f 프로세스 관한 전부의 정보를 출력

-l 프로세스에 관한 정보를 long(롱)으로 출력

-n name list system 내의 name list 화일의 이름을 지정

-u uidlist 지정한 사용자 ID번호 또는 login명을 갖고있는 프로세스에 관한 정보만을 출력


107. ptx - permuted(순열화된?, 교환된?) 색인 만들기


108. pwd - 현재 작업 디렉토리 보기


109. quota - 한 사용자에게 지정된 디스크 할당량보기


110. ranlib - archive를 random 라이브러리로 변화


111. rcp - 리모트 카피


112. rcs - RCS 파일 속성 바꾸기


113. rcsdiff - RCS revisions 비교


114. rev - 한 줄의 문자열 꺼꾸로


115. rlogin - 리모트 로그인


116. rm, rmdir - 파일, 디렉토리 지우기

% rm test.html : test.html 화일 삭제

% rm -r <디렉토리> : 디렉토리 전체를 삭제

% rm -i a.*

: a로 시작하는 모든 파일을 일일이 삭제할 것인지 확인하면서 삭제


117. roffbib - 도서목록형 데이터베이스 보기 또는 양식화


118. rsh - 리모트 쉘


119. rup - 로칼 머쉰의 호스트 상태 보기(RPC version)


120. ruptime - 로칼 머쉰의 호스트 상태 보기


121. rusers - 현재 접속자 보기 (RPC version)


122. rwall - 모든 사용자에게 알림(RPC)


123. rwho - 현재 접속자 보기


124. sccs - Source Code Control System (SCCS)

125. sccs-admin, admin - SCCS 사용 내역 파일을 만들고, 관리


126. sccs-cdc, cdc - SCCS 델타의 델파 주석을 바꿈


127. sccs-comb, comb - SCCS 델타 조합


128. sccs-delta, delta - SCCS 파일에 데해 델타를 만듬


129. sccs-get, get - SCCS 파일 버전확인


130. sccs-help, help - SCCS 오류나 경고 메시지 검색


131. sccs-prs, prs - SCCS 사용내역의 선택된 부분 보기


132. sccs-prt, prt - SCCS 파일에서 델타 테이블 정보를 봄


133. sccs-rmdel, rmdel - SCCS 파일에서 델타를 지움


134. sccs-sact, sact - SCCS 파일의 편집 상태를 봄


135. sccs-sccsdiff, sccsdiff - SCCS 파일들의 버전 비교


136. sccs-unget, unget - SCCS 파일의 미리 얻은 것(?)을 취소한다.


137. sccs-val, val - SCCS 파일 유요화


138. script - 화면 갈무리


139. sdiff - 라인 단위의 차이를 비교하는 diff 명령어

문법 sdiff [losw] file1 file2

options

-r 라인 내용이 같으면 왼쪽만 출력

-o output 사용자가 지정한 문법으로 file1과 file2를 합병하고 같은 내용의 라

인을 output으로 지정한 화일에 복사

-s 같은 내용의 라인을 출력하지 않음

-Wn 인수 n 만큼 출력 라인의 폭을 지정


140. sed - stream editor

문법 sed [-efn] files

options

-e script 편집 명령어의 script를 지정

-n 이 옵션 생략시 출력하지 않음

-f sfile 화일 sfile에 script를 취하여 편집

-files 편집할 화일 지정

141. sh - 유닉스 표준 쉘


142. size - 오브젝트 파일의 크기들을 보여줌


143. sleep - 지정한 시간 만큼 실행 보류

초단위로 정의된 시간을 n 초 동안 실행을 정지시키는 명령어

문법 sleep time


144. sort - 줄 정열과 검색

모든 화일의 라인을 함께 소트(sort)하여 그 결과를 화면 또는 지정한 장소에 출력하는 명령어

문법 sort [-cmu]

[-o output]

[-ykmem]

[-zrecsz]

[-dfiMnr]

[-btx]

[+pos1 [pos2]] [files]

options

-b 필드비교시 앞에 붙는 공백을 무시

-c 입력화일이 순서대로 소트 되어있는지를 검사하여 소트되어 있지 않

으면 출력하지 않는다

-d 사전식 순서비교

-f 대문자와 소문자를 구별하지 않는다

-i 인쇄불가능 문자를 무시

문자비교에 있어 ASCII코드 040-0176의 문자만 유효

-r 역순으로 소트

-o output 출력화일명을 output으로 지정

-m 화일을 합병(merge)한다

-u 화일내의 같은 라인은 한 라인만 남기고 삭제


145. sortbib - 도서목록형 데이터베이스 정열


146. spell, hashmake, spellin, hashcheck - 맞춤범 검사(물론 영어겠지요)


147. split - 파일 나누기

system의 화일을 분할하는 명령어

문법 split [-n] [file [name]]

options

-n 화일을 n라인씩 분할하며 이 옵션을 생략하면 1000라인씩 분할


148. strings - 오브젝트 파일이나, 실행 파일에서 문자열 찾기


149. strip - 오브젝트 파일에서 심벌 테이블과 중복된 비트 삭제


150. stty - 터미날 설정

단말장치의 옵션의 설정상황을 출력한다

문법 stty [-a] [-g] [options]

options

-a 모든 옵션의 설정사항을 출력

-g 현재의 설정사항을 출력


151. su - super-user, 임시적으로 새 ID로 바꿈


152. sum - 화일 check sum과 블럭수를 나타내는 명령어

문법 sum [-r] file

options

-r 알고리즘을 check sum계산에 사용

file sum 처리를 하는 화일명


153. symorder - 심벌 순서 바꿈


154. tabs - 터미날 tab 크기 지정


155. tail - 파일의 끝 부분 보기

% tail -n filename : n줄 만큼 아래에서부터 보여줌


156. talk - 다른 사용자와 이야기하기


157. tar - 여러 파일 묶기 또는 묶긴 파일 풀기

.tar, _tar로 된 파일을 묶거나 풀때 사용하는 명령어

(압축파일이 아님)


% tar cvf [파일명(.tar, _tar)] 압축할 파일(또는 디렉토리): 묶을때

% tar xvf [파일명(.tar, _tar)] : 풀 때

(cf) cvfp/xvfp 로 하면 퍼미션 부동


아카이브 화일을 자기테이프에 저장하는 명령어

문법 tar [crtuxNbf lmgvw] [file ... ]

options

c 새로운 테이프에 새로 저장

r 지정한 화일을 테이프의 마지막부터 저장

t 지정한 화일이 테이프에 검출될 때마다 화일명 및 정보를 출력

x 지정한 화일을 테이프에서 꺼집어 낸다


158. tbl - nroff 또는 troff의 도표 작성 도구


159. tee - 표준 출력으로 방향 전환


160. telnet - TELNET 프로토콜을 이용한 원격 리모트 호스트 접속


161. test - 주워진 환경이 참인지, 거짓인지를 돌려줌


162. tftp - 간단한 ftp.


163. time - 명령 실행 시간 계산


164. touch - 파일 날짜 관련 부분을 바꿈

파일이나 디렉토리의 timestamp를 업데이트시키는 명령어이다. 현존하는 특정 파일을 지정하지 않으면, 해당 이름의 비어있는 파일이 생성된다


165. troff - 문서 양식화 도구


166. true, false - 쉘 스크립트에서 사용되는 참/거짓을 리턴하는 명령


167. tsort - topological sort


168. tty - 현재 터미날 이름 보기


169. ue - MICROemacs


170. ul - 밑줄 속성 문자 표현


171. umask - 시스템 파일이 만들어질 때 허가권의 기본값을 정하기 위해 사용되는 명령어


172. unifdef - cpp 입력 줄에서 ifdef 부분 바꾸거나 지움


173. uniq - 중복되는 빈줄 지우기

문법 uniq [-dcu [+n] [-n]] [input [output]]

options

-c 각 라인 앞의 중복된 횟수를 나타낸다

-d 중복된 라인의 첫째 라인만 출력

-u 중복되지 않은 라인만 출력

input 입력화일 지정

output 출력화일 지정


174. units - 프로그램 변환도구


175. uptime - 시스템 부팅 기간 보기


176. users - 현재 접속 사용자 보기


177. uucp, uulog, uuname - 시스템 간의 복사

178. uuencode, uudecode - 이진 파일을 아스키파일로 인코딩, 반대로 디코딩


179. uusend - 리모트 호스트에 파일 보내기


180. uux - 리모트 시스템 명령 실행


181. vacation - 자동으로 편지 답장하기


182. vgrind - grind nice program listings


183. vi, view, vedit - ex 바탕의 편집기


184. vtroff - 문서 양식화 도구


185. w - 현재 누가 접속해 있으며, 무엇을 하고있는지


186. wait - 프로세스가 마치기를 기다림

프로세스의 종료를 기다린 후 그 결과를 출력하는 명령어

문법 wait [n]

options

n 대기하는 백그라운드 프로세서 ID를 지정


187. wall - 모든 사용자에게 알림

UNIX sysytem을 사용하는 모든 사용자에게 메세지를 전달하는 명령어

문법 wall login name


188. wc - 단어, 줄, 바이트 계산

화일에 있는 단어 ,라인,문자수를 계산하는 명령어

문법 wc [-clw] [file ... ]

options

-c 문자수만 계산

-l 라인수만 계산

-w 단어수만 계산


189. what - 파일에서 SCCS 버전 정보 알아냄


190. whatis - 명령의 간단한 설명 보여줌


191. whereis - 찾는 명령의 실행파일, 소스, 맨페이지가 어디 있는지 경로를 보여줌


192. which - 명령만 찾음.


193. who - 시스템에 접속되어 있는 사람만 보여줌


194. whoami - 현재 사용하고 있는 자신이 누군지 보여줌


195. write - 다른 사용자의 화면에 특정 내용을 알림

다른 사용자에게 메세지를 전달하는 명령어

문법 write user [line]

options

user 메세지를 보내는 사용자명

line 접속할 라인이나 terminal을 지정


196. xargs - 명령행 인자 처리 명령


197. xstr - extract strings from C programs to implement shared strings


198. yacc - yet another compiler-compiler: 파싱(형태소분석) 프로그램 생성기


199. yes - 항상 yes만 응답하는 명령


200. zcat - 압축 파일 내용보기  

posted by windyman
2009/07/14 00:04 금융IT
http://blog.naver.com/musicjava/19629014
posted by windyman
2009/07/13 22:16 경제란
7월들어 1430선에서 박스권을 형성하며 북한의 미사일에도 7.7 인터넷 대란에도 잠잠하던 주가와 환율이 13일 월요일 오전부터 12포인트 하락하더니 하루 종일 흐린 날씨처럼 크게 흔들리면서 나란히 1300대에 진입했다.

원·달러 환율이 1300원을 넘어선 것은 두 달 보름 만이고 코스피지수가 1400선 아래로 내려간 것은 이달 들어 처음이다.

지난 목요일과 금요일 기관과 외인의 매도공세를 지켜온 개인투자자만이 오늘도 선방하며 지수하락을 지켰다.
사용자 삽입 이미지

◆겹악재에 환율·주가 출렁의 이유?

월요일 증시가 크게 조정을 받은 것은 국내외 악재가 동시에 우리 금융시장을 덮쳤기 때문이란 분석이 지배적이다.

지난 주말 미국 뉴욕 증시가 경기회복 지연 우려와 기업실적 부진 등으로 혼조세를 보인 데다 미국의 20대 은행인 CIT그룹이 파산보호 신청을 준비 중이라는 소식이 국내 증시를 강타했기 때문이란 것.

이 여파로 인해 아시아 증시가 동반 하락을 했다. 특히 일본 닛케이평균주가(-2.55%), 대만 가권지수(-3.53%), 중국 상하이종합지수(-1.07%) 등 아시아 주요 증시가 급락하면서 국내 주가를 끌어내렸다.

여기에다 북한 김정일 국방위원장이 췌장암에 걸렸다는 확인되지 않은 언론 보도까지 겹쳐 EU의장국인 스웨덴에 방문중인 이명박 대통령의 자유무역 협상에 대한 한·EU(유럽연합) FTA(자유무역협정)가 타결됐다는 호재도 완전히 묻혀버렸다.

◆당분간 해외 변수에 촉각해야 하나?

어닝시즌과 썸머랠리를 앞둔 향후 장세에 대해 여의도 증시 전문가들은 2분기 실적 발표를 앞둔 만큼 앞으로 기업 실적이 시장 예상치를 밑돌면 주가와 환율이 추가 압박을 받을 가능성이 있다고 내다봤다.

일단 원·달러 환율은 박스권 상단으로 인식되던 1300원대가 뚫린 상황에서 기업들의 실적이 시장의 예상보다 악화한 것으로 나타나면 추가 상승 압력을 받을 것으로 환율 전문가들은 지적했다.

게다가 달러 강세와 이번 주 예정된 미국 기업 실적 등에 대한 부담으로 안전 자산 선호 심리가 강화될 것이고 1300선을 넘어선 환율과 1700원대를 넘어선 유가가  급격한 급등세를 보이지는 않아야만 오늘과 같은 폭락은 멈출 수 있을것이다.

더불어 디커플링되어 가던 국내증시와 해외 경기가 악재에 대해서는 같은 상황인식으로 증시의 불안 요인이 사라지기 전까지는 국내 증시가 조정을 받을 것으로 보인다.

과연 이번 주 예정된 골드만삭스 등 미국 금융회사의 실적발표 결과에 따라 국내 증시의 향방이 결정될 것인지 아니면 이명박 대통령의 또 다른 빅카드가 반전을 줄수 있을지 반등에 대한 모멘텀을 찾아야만 매수를 이어갈 수 있을것 같다.

◆당장 내일 손절매냐 물타기냐 ?

당장 내일 오늘 하락한 만큼에 대하여 현금을 투입하여 종목별 물타기를 해야 할 지 아니면 우량주와 손실폭이 적을 종목을 제외 한 5%이하로 급락한 종목에 대해 손절매로 돌아서야 할 지 판단이 흐려진다.

3월 이후 오랜만에 증시와 외환시장, 채권시장이 일제히 동반 약세를 보이는 것은 전형적인 안전자산 선호 장세라고 봐야 한다.

그렇다면 기업의 2분기 실적이 환율 영향으로 상당히 좋을 것으로 예상되기 때문에 미국 경제가 침체되지 않으면 증시는 박스권 장세를 유지할 것으로 보고 우량주를 저점에서 매수해야 할까.

◆무엇이 진실일까?

전문가들은 '김정일 쇼크'는 '울고싶은 데 뺨 때려준 격'으로 풀이했다. 지난 5월부터 1400선을 중심으로 등락을 거듭하며 에너지를 소진한 코스피시장이 김정일 위원장의 건강이상설을 하락을 위한 촉매제로 삼았다는 분석을 내놨다.

이는 에너지를 발산한 코스피시장이 외국인을 중심으로 북한 리스크에 대한 불안감이 조성되며 하락세로 가닥을 틀 것으로 내다보고 있다. 일단 코스피지수는 1300선을 저점으로 한 차례 밀린 뒤 방향성을 타진할 것이라는 전망이 지배적이다.

외국인은 지수선물시장에서 7770계약을 순매도하며 프로그램 매도세를 촉발하며 프로그램 순매도는 2290억원을 현물은 2321억원을 순매도하며 증시의 약세를 주도했다는 이유다.

또한 채권시장은 13일 장 중 외국인의 선물매도와 장 막판 환율 급등으로 약세로 마감됐다. 원/달러 환율 또한  30원 이상 급등하는 등 주식, 채권, 원화 모두 약세를 보인 '트리플 약세'가 오랜만에 연출됐다.

특히 북한 변수와 미국 금융시장 불안 등으로 인해 안전자산 선호가 강해지면 채권 시장이 다시 강세로 돌아설 가능성도 크다는 것이다.


posted by windyman
TAG 증시, 폭락
2009/03/15 22:33 IPTV
국내 주요 통신 · 방송 사업자의 결합서비스 추진전략
- 목 차 -

KT · KTF의 결합서비스 추진전략
SKT · SK브로드밴드의 결합서비스 추진전략
LG통신그룹 3사의 결합서비스 추진전략
케이블 MSO진영의 결합서비스 추진전략
결합서비스 시장 활성화를 위한 주요 사업자의 도전과제
향후 시사점

[표1] 주요 통신 및 케이블 사업자 가입자 현황 (단위: 만 명, 괄호 안은 2009년 목표치)


자료 : 각 사 취합, 2008. 12E 기준, * : 2009. 1E 기준

KT · KTF의 결합서비스 추진전략

현재' 유선전화 시장 1위, 초고속 인터넷 시장 1위, 이동통신 시장 2위'
미래'유선전화 시장 守成''초고속 인터넷 시장 守成 ''이동통신 시장 확대'



(자료: 통계청, 2008. 12E 기준)

KT와 KTF는 시내전화와 초고속 인터넷 시장에서 국내시장 점유율 1위이다. 따라서 KT로서는 경쟁 사업자들에 맞서 시장 방어 전략과 함께 한편으론 공격적인 영업으로 QPS 결합서비스 전략을 구사할 것으로 예상된다. KT는 기존 유선시장에서의 막강한 점유율을 바탕으로 이동통신 사업을 육성하는 것이 향후 컨버전스 시장에서 새로운 성장 동력을 확보할 수 있는 최적의 대안으로 꼽고 있다.

무엇보다 최근 결합상품 트렌드가 가족을 중심으로 이뤄진다는 점에서 KT는 KTF와 결합을 통해 SK텔레콤에 밀리는 이동전화 경쟁력을 한 단계 끌어올리는 동시에 유선시장을 방어하는데도 한 몫 할 것으로 기대하고 있다.

KT의 IPTV서비스는 주요 PP 및 CP와의 계약에 적극적 제휴를 통하여 다른 경쟁사보다 서비스를 빠르게 전개해 나가면서 교육/검색 서비스를 강화하여 2010년 200만명 이상의 가입자를 확보한다는 계획이다. 현재 온가족이 함께 즐길 수 있는 노래방 서비스, TV앨범 등이 시청자들로부터 좋은 반응을  얻고 있다.

최근 3년간 KT는 매출액은 11조원 대, 영업이익 2조원대 초반에 머무르고 있다. 대표적인 경쟁사업자인 SKT와는 연간 매출액 규모가 2조원 대 안팎으로 줄고 당기 순이익은 절반에 미치지 못하는 고전을 면치 못하는 모습이다. 그동안 독과점 형태로 제공해 오던 유무선 서비스 시장이 성숙 및 포화상태에 이르다보니 새로운 수익원을 창출할 수 있는 시장을 찾기 위해 전력을 다하고 있다.

이에 발맞추어 KT는 다양한 결합상품이 서비스 되고 있다. 초고속 인터넷 메가패스, 인터넷 TV, 유선전화, 와이브로를 비롯해 KTF의 3G(3세대) 이동통신 Show와  다양하게 묶어놓은 상품이 선보이고 있다. 또한 초고속인터넷 메가패스와 온라인 중등교육 서비스 크레듀엠을 결합한 메가 크레듀엠을 서비스 되고 있다. 메가 크레듀엠은 초고속 인터넷과 교육서비스의 이종 상품 간 결합으로, 사교육비 절감을 위한 고객 편의성을 증대시킨 점이 특징이다. KT는 이미 2007년 7월 비 통신 상품인 보험(메가슈랑스)와 2008년 7월 보안(메가패스 + KT텔레캅) 분야와 결합상품을 출시한 바 있다. KT는 앞으로 더욱 다양한 형태의 결합상품을 확대한다는 전략아래 분주히 움직이고 있다.

SKT · SK브로드밴드의 결합서비스 추진전략

현재'이동통신 시장 1위, 유선전화 시장 2위, 초고속 인터넷 시장 2위'
미래'이동통신 시장 守成''유선전화 시장 확대''초고속 인터넷 시장 확대'



(자료: 통계청, 2008. 12E 기준)

SKT는 무선 이동통신 가입자 50.5%를 확보하고 있는 국내 제 1의 사업자이다. KT가 유선시장에서 강자라면 반면, SKT는 무선시장의 지배적사업자이다. 그러나 이동통신 시장 점유율은 50%가 넘지만 초고속 인터넷이나 유선전화 시장에서는 인수한 하나로 텔레콤이 KT에 크게 미치지 못하고 있다.

따라서 중장기적으로 통신시장이 컨버전스 경쟁 구도로 흘러간다는 점을 감안할 때 유선시장의 경쟁력 강화는 필수적이다. 이 같은 전략 아래 2008년 9월 하나로 텔레콤을 인수하면서 취약분야였던 유선시장(전화 + 초고속인터넷)에 교두보를 확보한 상태이다. SKT는 지난해 하나로 텔레콤은 신규 회사명을 SK브로드밴드로 변경했고, 현재 초고속인터넷의 매출 비중이 56.5%를 차지하는 주력 서비스이며, 전화와 전용회선, IDC/솔루션의 사업 부문을 가지고 있다.

SK브로드밴드의 기본전략은 기존의 최대 강점인 이동통신사업자 SK텔레콤을 내세워 이동통신 결합상품(QPS) 및 인터넷 전화(VoIP) 결합상품 판매 활성화를 목표로 하고 있다. 이미 지난해 11월 출시한 Broad & All TPS 상품으로 시장을 적극 공략하겠다는 것이다. 즉, TPS(IPTV + 초고속 인터넷 + VoIP)를 월 33,000원에 제공하면서 가입 시 디지털 다기능 전화기를 무료로 제공하겠다는 것이다. 이를 통해 VoIP 가입자를 2009년에는 50만명(기업 20만명) 이상으로 대폭 늘린다는 전략이다. 유선전화 번호이동 가입자는 접속료 문제로 과금을 계획 중이나 정부에서 산정한 상호 접속료가 결정되면 시장 상황을 고려하여 망 내 할인 유지여부를 결정할 계획이다.

현재 초고속인터넷 시장점유율은 22.9%로 KT에 이어 2위다. 2008년 11월 VoIP 번호 이동과 12월 IPTV 실시간 스트리밍 방송 서비스를 개시는 유선통신 시장 변화에 주목하고 있다. 앞으로 초고속 인터넷보다 서비스 차별성과 로열티가 높은 이동전화가 결합상품의 중요 변수로 작용할 것으로 예상하고 있으며  자사 이동통신 장점을 활용한 QPS 전략을 더욱 강화 할 것으로 보인다.

결합서비스 발자취를 살펴보면, 2007년 7월 엔터테인먼트 콘텐츠 결합상품을  출시하였는데 시네마 게임클럽, 멜론 게임클럽 정액제 서비스가 그것이다. 영화, 음악, 게임 콘텐츠를 결합, 이용가격을 약 50% ~ 70%까지 대폭 낮추었다. 또한 8월 자사의 이동 전화와 계열사인 위성 DMB(TU 미디어)를 동시에 이용하면 각각 10%의 할인을 받을 수 있는 결합상품인 TU팩을 제공하고 있다.

실시간 IPTV의 경우 2009년 1월 1일 상용화와 함께 실시간 IPTV 상품 구조를 베이직, 프리미엄, 알라카르텔 상품으로 구성하고 있고, 가격은 타 IPTV 제공 사업자와 유사한 수준으로 서비스를 실시하고 있다. SK브로드밴드는 최대 강점인 VOD서비스를 활용하여 3월말까지 60개 이상의 채널을 확보한다는 계획이다.

한편 SK브로드밴드의 가치를 극대화하기 위한 방안으로 SK브로드밴드는 IPTV 사업 관련 콘텐츠 소싱 등의 역할을 담당함으로써 그룹 내 전략적 시너지 효과를 높이고 있다. SK브로드밴드는 SKT의 높은 시장 점유율을 기반으로 영업하게 되므로 상대적으로 큰 도움이 될 수 있다. 더불어 SKT의 2,400여 개 전국 대리점에서 고객 밀착형 마케팅을 할 수 있다는 강점이 있다.

LG통신그룹 3사의 결합서비스 추진전략


(자료: 통계청, 2008. 12E 기준)

LG통신 3사는 후발주자로서 TPS(Triple Play Service)서비스를 더욱 강화할 전망이다. LG통신 그룹은 시장 지키기보다는 경쟁사 고객을 유치하는데 초점을 맞추고 있다. 경쟁사보다 유선이나 무선통신 분야에서 모두 열세인 LG로서는 가장 공격적인 영업으로 시장 확보에 나서고 있다. 무엇보다 저렴한 요금이 강점이다.

IPTV서비스에 있어 LG데이콤은 HD콘텐츠 차별화와 영화, 다큐, 어린이 프로그램 등 어학공부를 중심으로 준비하고 있다.
한편 결합상품 내용을 살펴보면 LG텔레콤이 LG파워콤과 함께 지난해 7월 선보인 LG파워투게더 상품의 경우 할인의 범위를 LG데이콤의 인터넷전화까지 확대하였다. 이에 따라 LG텔레콤의 이동전화와 LG파워콤의 초고속인터넷 엑스피드, LG데이콤의 인터넷전화 myLG070을 묶어 LG파워투게더 할인에 가입할 경우 이동전화 기본료와 초고속인터넷 이용료는 각각 월 최대 50%를 할인받고 인터넷전화 기본료는 매월 1,000원씩 할인받을 수 있다. 지난해 하반기에는 LG파워투게더 할인 가입 가족 간 이동전화 통화료 50% 할인되는 상품을 출시하여 좋은 호응을 얻었다.

LG데이콤은 인터넷전화(myLG070), 인터넷TV(myLGtv), 초고속 인터넷(엑스피드)을 묶은 결합상품(DPS,TPS) 가입자가 20만명(2008년 2월 기준)을 돌파했으며, LG데이콤이 국내 기간통신사업자 최초로 2007년 6월 인터넷 집전화 myLG070을 선보인 저력이 있다. 인터넷TV 서비스인 myLGtv는 2007년 12월 출시하여 현재 대부분의 가입자가 DPS 결합상품 이용자이다.

후발주자인 LG데이콤으로서는 경쟁사업자 보다 비교우위를 가질 수 있는 100Mbps급 광랜(Fiber LAN) 제공과 함께 인터넷 전화(VoIP) 결합상품 개발과 저렴한 요금전략으로 가입자 확보 계획을 세우고 있다.

케이블 MSO진영의 결합서비스 추진전략

현재'케이블 방송 시장 1위'
미래'케이블방송 시장 守成''초고속인터넷·전화 시장 확대''MVNO 신규진입'



(자료: 통계청, 2008. 12E 기준)

케이블 MSO진영에서 결합서비스를 바라보는 입장은 기존 케이블방송 시장 방어와 초고속 인터넷 및 인터넷 전화 시장에 대한 시장점유율을 지키고 확대하는 전략으로 요약된다. 최대 경쟁 사업자인 통신 사업자에 맞서 결합서비스 제공을 위해 필수불가결한 이동통신망인 MVNO1)추진과 와이브로 음성탑재를 이용한 이동통신 서비스를 준비하고 있다.

주요 MSO가 제공하는 결합상품을 살펴보면 다음과 같다. 최근 MSO 순위 6위 사업자인 큐릭스 홀딩스를 M&A하면서 업계 최대 가입자를 확보하게 된 티브로드 홀딩스는 방송통신 융합 시장에서도 선두를 지키기 위해 지난해 TPS 결합상품을 출시하였다. 이를 위해 인터넷 전화 사업 강화, 전송망 증설, 서비스 품질 개선, 고객 서비스 향상에 주력하고 있다. 디지털 케이블 브랜드인 '아이디지털 DV'는 현재 비디오 채널 90~125개, 24시간 CD음질의 음악전문채널 30개를 비롯해 각종 데이터 방송을 서비스하고 있다. 티브로드는 현재 운영되고 있는 결합상품에 DV폰(VoIP) 상품을 추가한 TPS 상품을 판매하고 있다.

한편 수도권 최대 MSO C&M은 자사 디지털 케이블TV인 '씨앤앰 DV'를 필두로 기존 아날로그 가입자의 디지털 전환 가속화를 중점 추진하며, 100Mbps 광랜 가입자 확대와 VoIP를 TPS 상품 판매에 주력한다는 계획이다.

한편 또 다른 케이블 MSO사업자인 CJ헬로비전은 2009년 2월 중순 기준으로 실시간과 양방향 방송을 동시에 제공하는 디지털방송 헬로TV 가입자 70만명을  돌파하였다. 이는 단일 MSO로서 최대 가입자 확보라는 의미와 함께 통신사업자 진영의 IPTV서비스와의 본격 경쟁 속에서 프리미엄 가입자 확대라는 측면에서 긍정적이라 할 수 있다.

결합서비스 시장 활성화를 위한 주요 사업자의 도전과제

현재 시점에서 결합서비스 활성화를 위한 주요 사업자의 도전 과제를 살펴보면 다음과 같다.

첫째, 결합서비스 시장의 개화(開化) 여부이다. 실시간 IPTV서비스가 태동하면서 가장 주목 받는 부분이 바로 결합서비스 상품이기 때문이다. 결합서비스는 통신과 방송이 융합되면서 방송을 통한 수익기반을 확보한다는 측면에서 기존의 통신서비스에 국한된 플랫폼의 한계를 극복할 수 있기 때문에 통신사업자 입장에서 놓칠 수 없는 부분이다.

둘째, 낮은 APRU2)의 개선이다. 이는 IPTV의 확산을 어렵게 하는 요소로서 구조적으로 국내 유료방송 시장의 ARPU가 현저히 낮다는데 있다. 정부자료에 따르면 2005년 상반기 국내 케이블 방송 가입자의 평균 ARPU는 5,344원으로 3년이 흐른 지금 크게 개선되지 않는 모습이다. 이는 케이블 방송이 난시청 지역을 해소해주던 RO(Relay Operator)가 대거 SO(System Operator)로 전환되어 대부분 시청자의 월 이용요금이 낮았던 것에 기인한다. 최근 SO들이 디지털 케이블 가입자를 늘리면서 월평균 이용요금이 상승하고 있지만 여전히 낮은 수준에 머물러 있다. 이렇게 기존 가입자의 ARPU가 현저히 낮은 상황에서 결합서비스를 준비하는 후발 사업자들은 투자대비 수익에 부담을 느끼지 않을 수 없어 이를 극복하는 마케팅 전략이 요구된다.

셋째, 차별화된 콘텐츠 확보이다. 양질의 차별화된 콘텐츠 확보는 결합서비스를 활성화 시키는데 매우 중요하다. 콘텐츠 전략개발의 중요한 요소로서 지상파 채널의 확보, 대중인기 및 고급 전문 채널의 확보, 주요 채널의 독점 방송권, 영화 등의 VOD 콘텐츠, 주요 스포츠 콘텐츠 등 을 들 수 있다. 지난해 11월 17일 가장먼저 상용 서비스에 나섰던 KT는 현재 40개 채널, 올 해 1월1일부터 서비스에 나선 SK브로드밴드는 23개 채널, LG데이콤은 약 30개 채널 서비스를 제공중이다.

넷째, 최적의 네트워크 망(網) 품질 확보이다. 고도의 망 확보는 대규모 투자를 기본으로 한다. 각 사업자는 2012년까지 최소 9천억 원에서 1조 7천 억원에 이르는 대규모 투자를 계획하고 있다. 이처럼 대규모 투자로 품질이 보장된 안정된 동영상 서비스 제공이 보장된다면 가입자 유치에 탄력을 받을 것이다.

다섯째, 높은 소비자 전환비용이다. 이미 국내 유료방송 시장은 케이블 TV가 1500만 명 이상의 가입자를 확보하고 있고, 위성방송 또한 230만 명의 가입자를 확보하고 있다. 이러한 상황에서 각 사업진영에서는 기존 가입자를 전환시켜야 하는 부담이 따른다. 이에 따른 높은 마케팅 비용과 유통비용 부담을 극복해야 한다.

여섯째, 세분화된 고객 분석이 요구된다. 최근 글로벌 경기침체 등 경제 여건의 악화와 소비행태 변화, 고객가치의 변화는 주요 사업자들에게 어느 때 보다 더 효율적인 요금, 상품전략 수립을 통한 경쟁력 제고를 요구하고 있다. 이를 위해 정확한 고객 분석이 요구되며, 그 분석에 따라 한정된 자원을 효과적으로 배분하여야 할 것이다. 따라서 현재 미디어 시장은 저마다 다른 소비가치와 이용패턴을 가진 세분시장이 존재하는 만큼 각 사업자들은 일괄적인 마케팅 전략과 함께 시장 전체를 공략하기 보다는 자사에 적합하게 수용자 층을 세분화하여, 그 에 맞는 결합서비스 전략을 추구해야 할 것이다.

향후 시사점

결합서비스가 갖는 시사점을 살펴보면 다음과 같다. 2009년 현재 국내 통신· 방송 가입자 시장은 결합 서비스 제공하기 위한 초창기 시장구조를 가지고 있다. 그러나IPTV상용화와 인터넷전화(VoIP) 확산 등 본격적인 방송통신 융합시대가 도래하면서 가입자 유치를 위한 결합상품 경쟁은 더욱 빠르게 진행될 것이다.

현재의 결합상품 전략은 통신사 입장에서는 통합 결합상품의 활성화, 결합상품 및 뉴미디어 서비스 극대화를 위한 통신사 vs. 통신사, 통신사 vs. 콘텐츠 기업의 M&A를 통한 플랫폼과 유통시장 장악으로 이어질 수 있다. 또한 IPTV의 공격적인 마케팅 및 활성화와 함께 통합 네트워크와 다기능 단말기를 이용한 다양한 서비스 제공으로 확대될 전망이다.

결국 결합상품 전략은 향후 유·무선 융합 서비스의 발전으로 이어져 이용자 측면에서 통합된 네트워크와 다기능 단말을 이용한 다양한 서비스를 손쉽게 이용할 수 있다는 점에서 단순 통신비를 절감한다는 것 이상의 혜택을 제공하는 전략이 필요하다. 이는 TV라는 플랫폼에 최적화된 다양한 형태의 서비스와 콘텐츠를 제공하면서 소비자의 욕구에 부합하여야 한다는 점이 매우 중요한 이슈로 대두 될 것이다.

따라서 단순히 유무선 서비스를 묶어 판매하는 결합판매의 도입만으로는 시장 안착이 어려울 것으로 보여 특화된 틈새(Niche)시장 확보만이 성공 할 수 있는 지름길이라 할 수 있다.

장기적으로 결합상품은 개별상품의 ARPU가 감소하겠지만, 결합상품을 통한 전체적인 ARPU는 증가하고, 마케팅 비용의 감소로 이어져 수익성이 개선될 것으로 예상된다.

신규 서비스 개척에 있어 모든 사업자는 가입자 확대를 기반으로 하고 있다. 그러나  이러한 시장흐름은 사업자 중심의 서비스 수성전략 기반 속에 동종 사업 내 사업자 간 가입자 유치경쟁이 선행된 이후 신규 시장 개척의 수순으로 진행될 가능성이 높아 보인다. 그러나 시장이 어느 정도 성숙된 이후에는 각 사업자 간 경쟁이 더욱 치열하게 전개되면서 한쪽진영에서는 가입자를 지키기 위한 서비스 방어전략과 더불어 신규 시장 개척이라는 두 가지 측면의 사업추진 전략으로 진행될 가능성이 높아 보인다. 모쪼록 결합서비스가 활성화되어 침체되어 있는 미디어 시장에 촉매제가 되길 기대해 본다.

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

1. MVNO (Mobile Virtual Network Operator) : 가상이동통신망 운영사업자로서 주파수를 보유하고 있는 SK, KTF, LG텔레콤과 같은 이동통신 사업자의 무선네트워크를 빌려서 이동통신서비스를 제공한다. (주파수 미 보유) 또한 기지국이나 네트워크와 같은 이동통신 설비를 임대한 후 대체 가능한 설비 즉, 가입자관리 시스템, SIM카드, 교환국 등과 같은 설비와 결합하여 사업을 수행한다. 서비스료를 부과하는 것에 있어서 이동통신 사업자와 함께 협업하는 경우도 있고 독립적으로 진행하는 경우도 있다.
2. ARPU(Average Revenue Per User) : 가입자당 월평균 매출액

posted by windyman
2009/03/15 22:30 IPTV

1. 인터넷의 방송 대체 논란

‘방송 종말론’
오늘날 TV소비는 ‘선형적(Linear)’ 시청에서 ‘비선형적(非線型的?Non Linear)’ 시청으로 급속하게 변화하고 있다. 비선형적 시청은 TV프로그램을 주문형 비디오(VOD: Video On Demand)로 본다든지, 다운로드받았다가 보고 싶을 때 틀어 보는 등 방송 편성표를 무의미하게 만들 정도로 TV시청의 습관이 바뀌었음을 의미한다. 이에 따라 시청자는 그저 방송사가 정한 편성표에 따라 TV프로그램을 그저 쳐다만 봤던 입장에서, TV소비의 시간과 장소, 디바이스를 선택하는 적극적 소비자로 변모하게 된다. TV소비패턴의 변화는 전통적 개념의 방송(Broadcasting)이 사실상 소멸하는 것을 의미하며, 이에 따른 ‘방송의 종말론’이 언론과 연구소 등의 잇따른 발표로 인해 크게 주목받은 바 있다.

미 워싱턴포스트의 ‘The End of Television' 보도 (2005년6월6일자)
- 15년간 할리우드의 코미디 작가와 프로듀서로 일한 롭 롱(Rob Long)이 어느 날 TV프로그램 제작사 대표에게서 티보(Tivo)라는 디지털 비디오 녹화기(DVR: Digital Video Recorder)를 선물로 받음.
- 이후 롭 롱은 티보를 집에 설치해 사용한 결과, 일주일 만에 자신의 비디오 시청 습관이 변했음을 발견하였는데, 이는 광고수익을 기반으로 한 TV방송의 수익모델이 붕괴되고 있음을 의미하는 것이라고 기사는 분석함.

IBM Institute for Business Value의 ‘The End of Television as We Know It'
보고서(2006년1월)
- 미디어 산업은 전례 없는 복잡성과 역동적 변화와 혁신의 압력에 직면해 있음. 시장 진화는 두 가지 핵심적인 요인에 의해 이뤄지는데, 첫째는 채널 접속의 개방성이고, 둘째는 미디어에 대한 수용자의 참여 수준임.
- 기술과 유행을 좇는 일단의 소비자들은 특정 플랫폼에 국한되지 않은 콘텐츠, 미디어 소비의 이동성, 개인화된 요금 체계와 콘텐츠 배포의 전통적인 개념의 종식 같은 세상으로 우리를 이끌 것임.

빈트 서프(Vint Cerf)의 ‘TV 종말’ 예언(영 가디언지, 2007년8월27일 보도)
TV는 과거 음악 산업이 MP3플레이어의 등장으로 맞닥뜨렸던 상황과 유사한 붕괴의 시기에 다다르고 있음. 우리가 보는 모든 비디오의 85%는 이미 녹화된 것(Prerecorded)으로서 뉴스, 스포츠 경기, 돌발사건 같은 사안들은 TV 생방송(Live Television)으로 볼 필요가 있지만, 우리는 점점 더 많이 영상을 다운로드해서 보고 있음.

'인터넷의 방송 플랫폼 대체론'
전통적 방송의 개념이 소비 패턴의 변화로 인해 퇴색되는 가운데, 종래의 방송 플랫폼을 대신할 수 있는 유력한 플랫폼으로 인터넷이 자연스럽게 부상했다. 네트워크의 광대역화로 인해 월드와이드웹(www)과 웹캐스팅(webcasting)은 지상파, 위성, 케이블TV의 전통적인 방송망을 대신하여 TV드라마 같은 대용량의 동영상 콘텐츠를 배포하여 소비토록 하는 유통 플랫폼으로 인식되고 있는 것이다. 이는 ‘플랫폼으로서의 웹’(Web As A Platform)이란 개념이 확산되면서, 인터넷이 방송의 보조적 배포 수단이 아니라 그 자체로 독립적인 서비스 플랫폼의 지위를 얻게 된 것이라 할 수 있다.

웹캐스팅은 1999~2000년 인터넷 붐을 타고 우후죽순처럼 생겨났지만, 높은 원가구조와 빈약한 수익모델로 인해 IT붐이 꺼지면서 대부분 자연 소멸했다. 이후 2005년을 기점으로 인터넷의 동영상 서비스가 세계적으로 다시 각광을 받기 시작했는데, 이는 웹상에서 동영상을 쉽게 구현할 수 있는 플래시 등 ‘리치 인터넷’(RIA: Rich Internet Application) 기술의 확산과 함께, 인터넷 동영상 서비스의 원가를 좌우한 회선사용료의 감소와 CDN(Content Delivery Network) 같은 효율적인 콘텐츠 전송시스템의 발전으로 인한 것이다. 즉, 비용이 낮아지면서 전파가 아닌 인터넷으로도 TV서비스를 할 수 있다는 아이디어가 널리 실현된 것이다.

<표1> 2005년 하반기, 인터넷의 방송 대체 시도

AOL의 콘서트
실황중계
2005년7월 피츠버그, 런던, 파리, 로마, 베를린, 토론토 등 세계 주요 도시에서 진행된 <라이브8> 콘서트를 인터넷으로 미국 전역에 생방송 함.(2005년7월)
MTV의 유료
콘서트 중계
‘MTV 오버드라이브’의 인터넷 생중계를 콘서트당 30센트씩 과금하여 진행함.
푸드 네트워크의
사례
뉴욕의 요리 전문방송채널인 푸드 네트워크는 요리 방송시리즈를 인터넷으로만 내보냄.
HGTV의 사례
HGTV(Home and Garden TV)는 자신의 첫 집으로 이사하는 젊은이들에 관한 TV프로그램인 <My First Place>를 인터넷에서 먼저 방영함.
PBS의 사례
신기술 분야 개척자들을 다룬 방송시리즈를 제작하여 인터넷에서만 방영함.


한국에서는 2006년3월, 야후코리아가 월드 베이스볼 클래식(WBC)의 야구경기를 인터넷으로 생중계함으로써 인터넷의 방송 대체 가능성에 관한 논란을 야기했다. 미국과 한국간의 시차(時差) 관계로 낮 시간에 TV를 볼 수 없었던 많은 사람들이 야후코리아가 WBC의 야구 경기를 인터넷으로 생중계할 수 있었다.
※ 2006년3월14일 한국과 미국 전의 인터넷 중계 총 접속자 수는 160만 명이었다. 또 26일 한국 대 일본 경기에서는 순간 최대 22만 명의 동시 접속자 수를 기록했다. 한편 TNS코리아가 밝힌 3월14일 한일전의 TV시청자 수는 140만7000명으로 발표됐다.


'미디어 생산 및 소비의 비(非)선형성'
비선형(Nonlinear)적이란 미디어 콘텐츠의 생산→배포→소비로 이어지는 일련의 정형화된 프로세스가 붕괴된다는 것을 의미한다. 이는 영상 미디어의 소비자가 생산의 주체가 되고, 배포(Distribution)의 채널이 다양해지며, 양방향의 참여적 소비패턴이 등장함으로써 불특정 다수의 공중(the public)을 상대로 한 일방향 커뮤니케이션으로서의 방송의 의미가 희석되고 있음을 보여준다.

생산(production)은 ‘시민 저널리즘’ 혹은 ‘퍼블릭 액세스’라는 이름으로 종래의 방송에서도 시도된 바 있으나, 편성이 제한되고 영상 품질이 떨어진다는 평가로 인해 시민 참여 방송은 크게 활성화되지는 않았다. 그러나 값싼 캠코더의 보급과 유무선 인터넷망의 발전으로 인해 이른 바 개인에 의한 라이브 방송이 인터넷을 통해 등장하였고, 전 국민의 비상한 관심을 모은 미 쇠고기 수입파문을 통해 개인 방송이 크게 주목받게 되었다.

‘아프리카’의 개인 생방송 사례
인터넷 개인방송 서비스인 아프리카(www.afreeca.com)은 미국 쇠고기 파문으로 인한 옥외 촛불집회가 한창이던 2008년5월25일부터 6월1일까지 인터넷으로 생중계된 촛불 생방송의 누적 시청자 수가 400만 명을 넘었으며, 5월26일 하루에만 40만 명이 아프리카의 촛불 방송을 봤다고 밝힌 바 있음. 6월1일 하루 120만 명이 아프리카의 인터넷 생중계 사이트를 다녀갔고, 촛불집해 방송 수가 약 2500개, 동시에 최대 500개의 생중계 망이 열리고, 10만 명 이상의 동시 시청자 수를 기록했다는 것임.

와이브로와 개인 생방송
개인에 의한 옥외 라이브 인터넷 방송은 2.3㎓대의 주파수를 사용해 정지?보행 또는 시속 60㎞의 이동 상태에서도 약 1Mbps의 속도로 인터넷에 접속할 수 있게 한 광대역 무선인터넷인 ‘와이브로’가 있었기에 가능한 것임. 와이브로는 2006년6월 서울과 수도권 일부 지역에서 세계 최초로 시작되었으며, 서울 시내의 촛불집회에서는 이 와이브로가 라이브 인터넷 방송을 가능케 한 영상 업로드 망으로 사용되었음. 향후 상향 인터넷 속도가 높아질 경우, 고가의 이동위성방송중계차(SNG : Satellite News Gathering) 중계차가 없더라도 고화질의 인터넷 라이브 중계가 훨씬 수월하게 가능할 전망인데, 이동통신사들이 경쟁적으로 도입하려는 고속상향패킷접속망(HSUPA) 서비스가 이뤄질 경우 전국 어디에서나 휴대폰에 의한 라이브 방송이 가능할 것임. HSUPA(High Speed Uplink Packet Access)는 글자 그대로 속도를 이론상 최대 5.75Mbps까지 높인 휴대전화의 모바일 인터넷 서비스로 1Mbps 이상이 업로드만 가능하더라도 휴대전화로 찍은 영상을 그대로 인터넷으로 전송해 불특정 다수의 많은 사람들이 볼 수 있도록 할 수 있을 것임. 이는 와이브로에 의해 서울에서만 가능했던 옥외에서의 개인 라이브 방송이 HSUPA에 의해 전국적으로 가능할 것임을 말해주는 것임.

인터넷 방송의 활성화는 PC가 TV의 기능을 상당부분 수용함으로써 영상소비 패턴이 근본적으로 변화함을 보여준다. 즉, 종래의 TV개념에서는 다수의 수동적 소비자(Massive Passives)가 매우 피동적으로 영상미디어를 소비했다면, PC 이용자(User)들은 참여형(involved)의 적극적인 소비자가 되는 것이다.

참여형의 미디어 소비 패턴을 뜻하는 것으로 ‘몸을 앞으로 숙여서 이용하는 미디어(Lean Forward Media)'라는 표현이 있다. 등을 의자나 소파, 혹은 거실 벽에 기대고 보는(Lean Back Media) 미디어의 대표적인 유형인 TV 수상기는 소비자의 참여도가 적어 ’바보상자‘라고 일컬어지기도 한다. 반면, 앞으로 몸을 숙여서 이용하는 PC는 끊임없이 키보드와 마우스를 조작함으로써 클릭하고, 쓰고, 뒤져서(검색하고), 실행하는 작업을 해야 하는 만큼 수용자가 주인이 되는 미디어인 것이다. 이런 맥락에서 보면, 종래 TV에서 누렸던 영상소비가 인터넷 기반의 PC로 옮겨간다는 것은 과거 생산 도구로서의 PC가 엔터테인먼트 도구로서의 TV의 지위를 위협하고 있는 것으로도 해석할 수 있다.


2. 인터넷 영상 플랫폼의 다양한 시도
TV네트워크를 대체할 미디어 플랫폼으로서의 인터넷 서비스는 다음의 몇 가지 기준으로 구분할 수 있다. 첫째, 콘텐츠 성격이다. 방송사와 영화사가 제공한 프리미엄 콘텐츠 제공하는 서비스와 사용자 제작 콘텐츠(UGC 또는 UCC) 중심의 서비스로 구분된다. 두 번째는 사업 주체이다. 기성의 정통 미디어 기업이 사업을 론칭한 경우와 IT 또는 인터넷 기업이 주체가 된 경우를 구분해야 한다. 세 번째로 기술적 구현 방법으로 웹(www) 자체를 서비스 플랫폼으로 사용하느냐, 아니냐의 차이가 있을 수 있다.

위의 기준에 따라, 2005년 이후 현재까지 등장해 세계적인 관심을 모은 유튜브(Youtube), 훌루(Hulu), 주스트(Joost) 등 3개의 주요 인터넷 영상서비스 플랫폼을 특성별로 구분하면 다음과 같다.

<표> 인터넷 영상서비스 플랫폼의 구분
콘텐츠 성격
프리미엄 콘텐츠(방송사?영화사 등)
훌루(Hulu), 주스트(Joost)
사용자 제작 콘텐츠(UGC, VC2)
유튜브(YouTube)
사업 주체
기성 미디어 기업
훌루
신규 진출기업(IT 또는 인터넷기업)
주스트, 유튜브
기술적 구현 방법
리치 인터넷 기술 활용(웹 플랫폼)
유튜브, 훌루, 주스트2.0
전용 프로그램 설치(클라이언트 프로그램)
주스트 구(邱)버전


'유튜브의 성장과 그 한계'
유튜브는 20대의 두 젊은이가 인터넷 상에서 손쉽게 비디오 파일을 공유할 수 있게 하자는 뛰어난 아이디어에서 출발했으며, 미 벤처 캐피털의 투자가 가세하면서 짧은 시간 내에 ‘대박’을 터뜨린 벤처 성공신화이다. 매우 짧은 시간에 인터넷 동영상 서비스 분야에서 부동의 1위로 성장하였다.

유튜브의 설립과 성장사
o 2005년 2월, 29세의 채드 헐리(Ched Hurley)와 27세의 스티브 첸(Steven Chen)이 설립함.
o 2005년 11월, 세콰이어 캐피털(Sequoia Capital)이 350만 달러를 1차로 투자함.
o 2005년 12월, 1일 업로드되는 비디오 클립 수 약 8000개, 하루 방문자 300만 명 돌파하면서 업계의 관심을 모음.
o 2006년 4월, 세콰이어 캐피털이 2차로 800만 달러를 투자함.
o 2006년 6월, 1일 방문자 수 1억 회 이상, 월 25억 회의 비디오 플레이 수를 기록함.
o 2006년 10월, 구글이 16억5000만 달러에 인수함.
o 2008년 1월, 한 달 동안 7900만 방문자 수에 30억 회의 비디오 플레이 수를 기록함.
o 2008년 11월 현재, 영어?중국어?한국어 등 14개 언어로 22개 국가에서 서비스를 제공하고 있음.)

유튜브는 소수에게 고해상도 영상을 보여주기 보다는, 많은 사람들의 동시 접속에 무게를 두는, 즉 ‘영상 품질보다는 이용자의 다다익선(多多益善)’ 정책을 고수하였다. 사용자가 직접 업로드 한 비디오 콘텐츠(UGC)를 중심으로 한 서비스 정책을 추진한 결과, 사이트 개설 이후 단기간에 많은 트래픽을 모으는 데 성공하였다. 이와 관련해 유튜브의 위력을 보여준 사회적 사건이 잇따르게 된다.

어도비 플래시(Flash) 기술을 사용하여 기존 웹페이지의 상자(윈도) 안에서 혹은 전체화면으로 QVGA(320×240) 급 영상을 H.263 비디오 코덱을 사용하여 제공하였다. 이후 2008년 3월 이후 해상도를 최대 480×360까지 높였을 뿐, 유튜브는 HD(Hight Definition) 비디오 서비스를 제공하지 않았다. 압축효율이 높은 코덱인 H.264를 부분적으로 채택하였으나, 해상도를 높이기 위해 전면적으로 도입하지는 않았다.

유튜브에 의한 UCC 확산 파문의 사례
일명 ‘버스 아저씨(Bus Uncle)’ 사건
2006년 4월29일 밤 11시쯤 홍콩의 한 버스 안에서 50대 아저씨와 20대 청년이 언쟁하는 모습을 옆 자리의 한 대학생이 휴대전화로 촬영해 유튜브에 올린 사건임. 조용한 버스 안에서 큰 소리로 휴대전화 통화중인 50대 중년 남성에 대해 뒷자리에 앉아있던 20대 청년이 “조용히 좀 해주세요”라고 말하자, 중년 남성은 “나 스트레스 받고 있거든, 너도 스트레스 받지, 그런데 왜 나를 건드려? 너도 전화통화하면 되잖아” “나 아직 안 풀렸거든(未解決)”이라고 고래고래 소리를 질렀음. 이 동영상이 공개되자 비디오 플레이 수가 500만 회를 넘어설 정도로 사회적으로 관심을 끌었는데, 나중에 이 50대 남성은 12년 동안 실업상태이고 홍콩 변두리의 단칸방에서 약 22만원(약 1800 홍콩달러)의 정부지원금으로 살고 있는 51세의 로저 찬(陳乙東)씨로 확인됨. 이후 도하 언론이 ‘버스 아저씨’를 기사와 칼럼에 등장시키고, 교육당국은 이 비디오클립을 공중도덕에 관한 토론자료로 활용하면서 로저 찬씨가 일약 유명세를 타면서 한 레스토랑의 홍보담당으로 취직되기에 이르렀음.

그러나 유튜브의 UGC 정책은 지속적으로 불법복제 논란을 야기했으며, 급기야 바이어컴(Viacom)이 유튜브를 상대로 10억 달러의 손해배상 청구소송을 제기하기에 이른다. 바이어컴의 주장은 유튜브가 불법 복제된 영상 콘텐츠의 업로드를 방치하였고, 이로 인해 15만 건의 불법 비디오클립이 노출되어 15억 회 가량 시청되었다는 것이다.

미국의 저작권법인 DMCA(Digital Millennium Copyright Act.)에 따르면, 저작권자(copyright holder)가 요청할 경우 불법복제물을 즉각 지우도록 하고 있다. 유튜브는 TV쇼, 뮤직비디오, 음악콘서트 등의 저작물을 함부로 올리지 못하도록 경고하고, 24시간 활동하는 모니터링 팀을 가동하여 불법 저작물을 솎아내는 활동을 펴고 있지만 유튜브에 업로드되는 비디오 클립의 수가 너무 많아 신속하게 대응하는 데 어려움이 많다고 호소하고 있다.

2008년 11월, 720픽셀의 HD 콘텐츠를 제공한다고 발표함과 아울러 MGM, 라이온스 게이트 엔터테인먼트(Lions Gate Entertainment), CBS 등에서 광고가 섞인 비디오 콘텐츠를 전체 분량으로 공급받기로 했다. 유튜브의 이런 조치는 저해상도의 UGC 중심 서비스가 가진 한계를 벗어나고자, 고해상도의 전문 콘텐츠 서비스로 비즈니스 모델을 확장하는 것으로 해석된다.

2008년 한해의 유튜브 매출은 약 2억 달러로 추산되는데(포브스, 2008년7월), 광고매출은 전년 대비 별로 늘어나지 않은 것으로 알려졌다.


'훌루(Hulu)의 약진'
훌루는 2007년 8월 설립되어, 2007년 10월의 베타 서비스를 거쳐 2008년 3월 정식서비스를 시작하였다. 이후 수개월 만에 미국 내 온라인 비디오 서비스 분야에서 ’톱10‘에 들 정도로 비약적인 성장을 기록하게 된다.

※ 미국 내 '톱10‘ 온라인 비디오 서비스(2008.4.)


전통적인 미디어기업인 NBC 유니버셜(GE계열)과 루퍼드 머독의 뉴스 코퍼레이션이 2007년 3월 ‘구튜브(Gootube)' 극복을 표방하면서 합작법인(VC) 설립 계획을 발표하였고, 아마존닷컴의 부사장 출신인 제이슨 칼러(Jason Kilar)를 CEO로 영입하여 사업을 전개한다.

아직 서비스 명칭(Hulu)조차 정해지지 않았던 2007년 8월, 한 투자기업(Providence Equity Partners)이 1억 달러를 투자해 훌루닷컴 지분 10%를 소유하게 되었다. 이는 이 법인의 가치를 10억 달러로 평가한 것인데, 아직 눈으로 보여줄 웹사이트가 없었고, 하고자 하는 온라인 비디오 서비스의 브랜드조차 정하지 않았으며, 유튜브 등 경쟁자들의 서비스 개시시점보다 2년 이상 늦은 점을 감안할 때 이 같은 투자에 대해 의아해하는 사람들이 많았다. 그러나 이런 의구심은 훌루닷컴 사이트 오픈 이후 훌루서비스의 가치가 매우 높게 평가됨으로써 일거에 해소됐다.

유튜브와 비교할 때, 훌루 서비스의 첫 번째 특징은 유튜브와 동일하게 어도비 플래시의 RIA(Rich Internet Application) 기술을 적용함으로써 인터넷 브라우저상에서 새창을 띄우지 않고도 동영상 서비스를 즐기며 유튜브 보다는 고해상도 서비스에 주안점을 두고 있다. 두 번째 특징은 유튜브와는 다르게 UGC(또는 UCC)는 취급하지 않으면서 전문 제작의 프리미엄 영상 콘텐츠를 제공한다는 것이다. NBC, 폭스, 유니버셜 스튜디오, 20세기 폭스, 소니 픽쳐스 텔레비전, 워너 브러더스, MGM TV, 라이온스게이트 TV 등에서 콘텐츠를 수급해 2008년 8월 현재 400여편의 TV시리즈물과 100여편의 영화 콘텐츠를 제공하고 있다. 세 번째 특징은 각종 인터넷서비스에 동영상 플랫폼을 제공함으로써 서비스의 노출범위를 크게 넓힌 파트너십 전략을 들 수 있다. 뉴스콥의 마이스페이스닷컴, 야후, 마이크로소프트의 MSN, 타임워너의 AOL, 컴캐스트의 팬캐스트닷컴(Fancast.com) 등과 손을 잡고 훌루닷컴 서비스를 제공한다.

네 번째 특징은 사회적 소비(Social Consumption)에 관한 것으로 훌루의 동영상 콘텐츠를 이메일로 보내거나, 소셜 네트워킹 사이트 등의 가져다 붙여 놓을 수 있다는 점이다(Embedding Function). 기술적으로 볼 때 콘텐츠 자체를 복제해서 전송하는 게 아니라, 플래시 동영상의 링크값 또는 플레시 플레이어를 가져다 사용할 수 있게 한 것으로, 저작권을 보호하면서 이용을 활성화하는 두 마리의 토끼를 잡겠다는 전략이다. 마지막으로 다섯 번째 특징은 유튜브와는 달리 미국에서만 서비스를 진행한다는 점이다. 이는 저작권자와의 계약에 의해 미국 외의 지역에서는 서비스가 곤란하기 때문이다.

현재까지 훌루는 매우 성공적인 사업모델로 평가받고 있다. 라이브래일(LiveRail)이라는 시장조사업체가 2008년 3분기의 실적을 분석한 자료에 따르면, 월 비디오 플레이 수에서 훌루(8800만)는 유튜브(42억)에 상대가 못되지만, 훌루는 저작권이 분명한 고급 콘텐츠가 발생시킨 광고 인벤토리를 100% 광고용으로 활용하였다고 발표했다. 반면 유튜브의 광고 인벤토리 사용비율은 3%에 불과한 것으로 추정된다(유튜브는 불법복제물에 대한 저작권 침해 문제로 인해 마음껏 광고를 붙이지 못하고 있기 때문임).

또 2008년 훌루는 올해 미국에서만 약 9000만 달러의 매출을 기대하는데 비해, 유튜브는 전 세계적으로 2억 달러의 매출을 예상하고 있다. 유튜브 매출의 절반이 미국에서 창출되는 점을 감안하면, 훌루는 유튜브의 50분의 1에 해당되는 트래픽으로 유튜브의 미국 내 매출에 버금가는 실적을 올리는 ‘매우 실속있는 장사’를 하고 있는 셈이다.

'주스트(Joost)의 좌절과 방향 선회'
주스트는 ‘TV의 장점’과 ‘PC의 매력’을 뽑아내 갈아 만들었다(jouced)는 뜻으로, 인터넷전화(VoIP)인 스카이프(Skype)로 억만장자가 된 니클라스 젠스트룀(Niklas Zennstroem)과 야누스 프리스(Janus Friis)가 기획하고 투자하여 2007년5월 상용서비스를 시작하였다.

2006년 10월 ‘베니스 프로젝트’라는 명칭 아래 약 150명의 웹 개발자, 소프트웨어 엔지니어, 디자이너, 마케터 및 제휴 전문가 등이 네덜란드 암스테르담에 모여 사업을 준비하였고, 2007년1월16일 ‘주스트’라는 서비스 명칭과 사업계획을 공개하게 이른다. 2007년2월 바이어컴과 CBS가 주스트에 투자하면서, 주스트와의 파트너십 체결을 발표하였고, 이밖에 MTV네트웍스, BET, 파라마운트 픽처스 등이 콘텐츠를 제공하기로 약정했다. 2007년5월 드디어 상용서비스를 개시한다.

주스트 서비스는 스카이프에 적용했던 P2P(Peer To Peer) 기술을 활용하여 대용량 영상콘텐츠의 전송비용을 최소화한 모델로서, 주스트 전용 프로그램을 다운로드받아 PC에 설치해 이용하는 모델이다. 즉, 주스트 프로그램만 설치하면 일반 인터넷망(best efforts network)을 통해 고해상도의 영상서비스를 즐길 수 있게 한 것이다.

주스트가 밝혔던 ‘주스트 서비스의 8가지 특징.
① 방화벽이 있어서 서비스가 가능하다. (No firewall)
② 하드웨어에 의한 로드밸런싱이 필요없다. (No Hardware Load-balancers)
③ 이용성이 높다, 이것이 TV다.(High Availability, This is TV)
④ 대역폭이 상당하다, 이것이 TV다.(Lots of Bandwidty, This is TV)
⑤ 이더넷만으로 된다.(Ethernet Only)
⑥ 급속도로 보급할 수 있다.(Rapidly Provisionable)
⑦ 비즈니스의 요건을 갖췄다.(Business Requirements)
⑧ 비용 효율적이다.(Cost-effective)

한 가입자의 PC에서 주스트에 접속하면, 주스트 서버는 트래픽만 통제할 뿐 실제 데이터는 다른 가입자의 PC에서 보내주는 방식이다. 즉, 동영상 서비스를 위해 상당규모의 서버팜(Server Farm)을 구성하여 로드밸런싱 등을 위해 하드웨어시스템을 갖춰야하는 부담을 크게 덜 수 있는 일종의 그리드CDN(Grid CDN) 방식으로 콘텐츠 전송 비용을 획기적으로 낮추고자 했으며, 이에 따라 P2P기능의 클라이언트 프로그램(주스트 뷰어)을 반드시 설치토록 할 수 밖에 없었다.

<그림> 주스트의 P2P TV 아키텍처


2008년 10월14일, 주스트는 기존의 클라이언트 프로그램 설치방식의 서비스 모델을 폐기하고, 유튜브·훌루와 동일하게 ‘플래시 기반의 웹 비디오 서비스’(Flash-based download-free web video service)로 전환함. 주스트는 이를 ‘주스트2.0’이라고 명명함으로써 기존 서비스와 차별화했다.

주스트는 주스트2.0을 발표하면서 “처음부터 다시 시작한다”(restarting from scratch)고 발표했다. 즉, 주스트 전용 뷰어를 다운로드받아 PC에 설치해야만 서비스를 이용할 수 있게 한 P2P기반의 ‘전용 프로그램 다운로드 모델’을 명시적으로 포기하면서, 훌루와 유튜브 모델로 선회한 것이다. 이와 관련해 주스트는 상용서비스 개시 이후 1년 동안 주스트 전용 프로그램의 다운로드 수가 100만개에도 미치지 못하는 등 서비스가 지지부진했고, 핵심 엔지니어가 타 기업으로 이적하는 등 내홍도 겪은 것으로 알려졌다.

게다가 주스트가 P2P 기반 전용 프로그램 서비스를 포기한 데에는 미국 네트워크 사업자들의 차별대우가 한 몫을 한 것으로 전해졌다. 즉, AT&T의 경우 일반 인터넷 기업들에게는 전송비용을 기가바이트(gigabyte) 당 2센트를 받는데 반해, 트래픽 유발 정도가 심한 주스트 같은 P2P 서비스 업체에 대해서는 기가바이트 당 5센트를 요구하였다는 것이다.(비즈니스위크, 2008년10월 보도)


3. 인터넷 비디오 서비스의 성공요인
유튜브·훌루·주스트의 3개 사례를 종합할 때, 앞으로 인터넷의 동영상 서비스는 아래의 두 가지 요인에 의해 성패가 갈릴 것으로 전망된다.

'어떤 콘텐츠를 제공하는가'
온라인 영상서비스에 있어서 가장 중요한 성공요소는 콘텐츠이다. 또한 콘텐츠 서비스는 반드시 저작권 문제를 해결해야 함. 유튜브가 아직까지도 수익모델로서 정착하지 못한 것은 콘텐츠의 중요성을 간과했기 때문으로 판단된다. 사용자 제작 콘텐츠(UGC 또는 UCC)는 콘텐츠의 품질과 불법복제에 따른 저작권 이슈에서 자유로울 수 없기 때문에 ‘콘텐츠가 왕이다(Content is King)'는 말은 사용자가 중시되는 인터넷 영상서비스 시대에서도 여전히 유효한 명제라고 할 수 있다.

'누가 사용자 경험을 풍요롭게 하는가'
RIA(Rich Internet Application)는 무거운 프로그램을 PC에 설치하지 않고서도 웹상에서 보다 풍요로운 사용자 경험(UX: User Experience)을 누릴 수 있도록 해주는 애플리케이션, 기술, 솔루션을 모두 의미한다. 유튜브, 훌루, 주스트가 모두 어도비사의 RIA 기술인 플래시를 적용한 것은 향후 인터넷 동영상 서비스에서 RIA와 UX가 가장 중요하게 고려되어야 할 것임을 보여준 사례이다.

'플랫폼으로서의 웹(Web as a Platform)‘과 ’서비스로서의 웹(Web as a Service)‘의 관점에서 보면, 중요한 것은 웹 그 자체이다. 즉, 운영체제와 브라우저의 종류에 상관없이 웹에서 모든 것을 할 수 있게 하는 서비스 플랫폼이 앞으로도 지속적으로 성장할 것이다. 플래시는 선으로 그림을 그리고 선 안에 색깔을 채워넣는 벡터(Vector) 기반이어서 이미지의 확대와 축소에 따른 이미지 손상이 없고, 파일 전체를 PC에 다운로드하지 않고도 웹상에서 곧바로 스트리밍(Streaming)을 할 수 있는 장점이 있다. 이와 관련해 마이크로소프트(MS)의 실버라이트(Silverlight), 어도비의 플렉스와 쇼크웨이브, 자바FX, 애플 퀵타임 등 유사한 기능의 RIA 제품이 시중에 나와 있어, 이들 RIA 제품간의 경쟁도 보다 치열하게 전개될 것으로 전망된다.

'누가 사회적 소비를 만들어내는가'
인터넷 비디오서비스는 ‘단순히 보여주는 것’이외에 인터넷의 상호작용성(Interactivity)을 활용해 사회적 소비(Social Consumption)의 연쇄작용을 만들어내야 성공할 수 있다.

유튜브·훌루닷컴·주스트는 온라인에서 가족·친구·연인과 동영상 콘텐츠를 상호 공유할 수 있는 다양한 기능을 제공함으로써 TV의 일방향 커뮤니케이션의 한계를 극복하고 있다. 즉, 비선형(非線型) 소비의 다양한 욕구를 충족시킴으로써 이용자의 충성도를 높이는 것이 인터넷 비디오 서비스에 있어서 매우 중요한 부분이다.

posted by windyman
2009/02/24 17:59 금융IT
엄청난 해킨토시 배포판이 나왔다. Boot-132를 이용한 리테일 10.5.6설치를 제외한 사실상 최초의 배포판이 아닐까 생각한다.

이름하여 iPC OSx86 10.5.6 Universal Final, PPF 패치가 차근차근 추가되다 5까지 추가된 버젼이다.

이름에서 알수 있듯이 사실상 최종버젼인데, 특이한 점은 실제 리테일 버젼에다가 내가 원하는대로 커스터마이징 하여 설치할 수 있다는것이다.

기본 탑재된 커널이 바닐라 커널이고 정보보기에서도 거의 리테일 버젼과 흡사한 모습을 보여준다.

그리고 다음과 같은 수많은 부가 드라이버와 패치를 제공한다.

less..

사용자 삽입 이미지

less..

사용중인 X61-A43에 설치하기 위해서는 다음과 같은 옵션을 선택하면 된다.

Language Translation
- Korean (한국어 버젼 맥을 사용하기 위해)

Chipset Drivers
- Intel ICHx SATA Drivers

Audio Drivers
- AD1984 (아직 이어폰은 지원안하지만 TP에서 소리가 남)

Ethernet Drivers
- Intel 82566MM/DC (이더넷 지원)

Wireless Drivers
- IO80211Family.kext (Intel계열이 존재하지만 안된다고 보시면 됩니다. 아데로스무선랜의 경우 이것을 선택)

USB Drivers
- PCGenUSBEHCI (이것을 설치하지 않으면 노트북 왼편의 USB가 동작하지 않음)

Power Management
- All (스피드스텝등의 전원관리 기능이 추가)
위의 프로그램을 설치하면 아이폰 개발시 시뮬레이터가 오류를 내뱉는 문제가 있었습니다. 다음을 다운받아 사용합시다.

Fixes and Patches
- Dual Boot Time Sync (듀얼 부팅사용시 시간이 안맞는 문제점을 해결)
- PS/2 Device Support All (노트북 자체의 키보드와 빨콩 지원)
- Patch DSDT

특이사항으로는 패키지 문제시 패닉을 방지해 준다는 Seatbelt를 설치하면 오히려 DMG 설치시 패닉이 일어나는 현상이 있었다.

DMG 패키지 설치시 커널 패닉이 난다면 /System/Library/Extensions/seatbelt.kext 를 지워버리자.
posted by windyman
 <PREV 1 2 3 4 5 ... 38    NEXT>