본문 : http://www.ischo.net -- 조인상 //시스템 엔지니어

+++++++++++++++++++++++++++++++++++++++++++++++++++++++


출처 : http://www.systemadmin.pe.kr


1장 시스템의 시작 그리고 끝
unix의 처음 시작은 /stand/unix 라는 프로그램이며 시스템의 power 버턴을 누르고
한참후에 Starting Unixware …. 라는 메시지와 함께 unixware log 가 그래픽으로
시작되는 부분이 바로 os 의 시작점입니다.
그전은 H/W 에 관련된 부분이며 BIOS 에서 수행 되어지는 부분입니다.
unixware 의 그래픽 화면이 나오는 부분에서 엔터키를 누르면
[boot] 라는 메시지가 나오며 시스템이 시작을 정지 합니다.
계속적으로 시스템을 시작 시키려면 boot 또는 go 라고 하면 시스템이
시작 됩니다.
이상태에서는 여러가지 작업을 할 수 있습니다.
시스템 level 상태
level 상태는 시스템의 운용 상태를 말합니다.
level 상태 0번  시스템이 정지되어 있는 상태
1번 또는 s,S  시스템을 단독으로 사용하는 상태
2,3번  시스템을 네트웍에 참여 시켜 여러 사람이 함께 사용할 수 있는 상태
5번  시스템이 정지된 상태이며 일부 시스템은 h/w 상태로 만듬
6번  시스템을 정지 시켰다 시작 시키는 상태

level 상태별로 실행 시키는 디렉토리
각 레벨별로 /etc/rc0.d ~ /etc/rc6.d 번 아래의 프로그램을 실행 시킵니다.
만일 0번 상태다 하면 /etc/rc0.d 번 아래의 파일을 실행시키며 2번일경우
/etc/rc2.d 번 아래의 파일을 실행 시킵니다.
각 디렉토리 아래에 놓여져 있는 파일들은 반드시 다음의 규칙을 따름니다.
대문자 S 또는 K 이며 다음에 두자리의 숫자가 놓여집니다.뒤의 숫자는
프로그램이 실행되는 순서를 나타내며 작을 수로 다른 프로그램보다 먼저
실행이 됩니다.
예) /etc/rc2.d/S99dtlogin 과 S69inet 파일이 있다면S69inet 파일을 먼저 실행시킵니다. 역으로 K 는 프로그램을 종료시킬 때 쓰여집니다.


시스템의 level 상태를 변화 시키는 방법
init 라는 프로그램을 사용하며 init 레벨상태 라고 합니다.
예) init 0  /etc/rc0.d 아래의 파일을 실행시키는데 K 로 시작되는 파일을 실행 합니다.
init 1  /etc/rc1.d 아래의 파일을 실행시키는 데 K 로 시작되는 파일을 실행시키고 S 로 시작되는 파일을 실행합니다.
init 2  /etc/rc2.d 아래의 파일을 실행시키는데 S 로 시작되는 파일을 실행 시킵니다.
init 3  /etc/rc3.d 아래의 파일을 실행시키는데 S 로 시작 되는 파일을 실행 시킵니다.

부팅시 init 0 init 1  init 2  init 3 등으로 실행됩니다.

현재의 레벨 상태를 확인하는 방법
who -r 로 확인합니다.
. run-level 3 11월 7일 14시44분 3 0 S  3번이 현상태, 0번이 최초상태, S 가 시작 상태로 나타내며 현상태의 레벨을 3번입니다. 레벨이 변경된 시각을 표시합니다.
시스템을 종료하는 방법
프로그램을 종료하시고
sync
init 0

하시면 시스템이 간단하게 종료 합니다.


















4 장 Network Adapter

IP 확인할 때 사용
# ifconfig –a
lo0: flags=4049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
inet 127.0.0.1 netmask ff000000
inet/perf: recv size: 4096; send size: 8192; full-size frames: 1
inet/options: rfc1323
net0: flags=4043<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 165.244.175.49 netmask ffffffc0 broadcast 165.244.175.63
inet/perf: recv size: 24576; send size: 24576; full-size frames: 1
inet/options: rfc1323
ether 00:50:da:c1:66:91

 여기서 lo0 는 localhost 를 나타내는 부분이며 loopback test 할때 쓰인다.
Net0 라고 표기된 부분이 진정한 network 부분이다.
Inet 165.244.275.49 는 네트웍 카드에 정해진 ip를나타냄


IP , netmask, router 를 수정할 때
# netcfg 명령을 수행하면
1.Network Configuration Manager 메뉴가 화면상에 보임
2. 화면상에 TCP/IP 를 마우스로 클릭한다.
3. 메뉴에서 protocol 을 클릭한다.
4. 아래 부메뉴가 나오면 Modify protocol configuration.. 을 선택한다.
5. IP 또는 netmask default router 을 바꾸어 주는 메뉴가 나옵니다.
6. 원하는 IP 로 바꾼후 ok 버튼을 누른다.
7. 메뉴를 빠져나온 상태에서 시스템을 rebooting 합니다.
# ifconfig 명령으로 ip를일시적으로 수정할 때
# ifconfig net0 inet 111.234.10.2(바꾸려는 IP)
# ifconfig 명령으로 netmask 를일시적으로 수정할 때
# ifconfig net0 netmask 255.255.255.0 (바꾸려는 netmask)

네트웍을 임시로 down/up 할 경우
# ifconfig net0 down  네트웍을 down
# ifconfig net0 up  네트웍을 up


default router 을 확인할 때
# netstat –r n 명령을 실행하면 default 라는 부분을 볼 수 있음
Routing tables
Destination Gateway Flags Refs Use Interface
default 165.244.175.1 UGS 0 0 net0
127.0.0.1 127.0.0.1 UH 4 708 lo0
165.244.175/26 165.244.175.49 UC 1 0 net0
165.244.175.49 127.0.0.1 UGHS 25 14 lo0
224/8 165.244.175.49 UGS 1 4 net0

defauktrouter (게이트웨이,또는 라우터) 의 등록
# route add default 165.244.175.1 (라우터 번호) 1

defaultrouter (게이트웨이,또는 라우터) 의 삭제
# route delete default 165.244.175.1 (라우터번호)

hostname (시스템 이름) 을 확인 할 경우
# hostname 또는 # uname –n

hostid (시스템 마다 고유의 번호) 확인법
# uname –i

arp ( mac address 와 ip 의 상관 table ) 확인방법
# arp –a
? (165.244.175.4 at 0:0:21:20:95:be (802.3)

네트웍 상의 packet 개수 확인법
# netstat 1 ( 숫자 1은 1초당 보여준다는 의미임)

시스템에 서비스 되어지는 demon 확인 및 접속된 외부 client 들의 ip 확인법
# netstat –a
 예) 현재 telnet 으로 login 되어있는 외부 장비들의 ip 를 체크
# netstat –a |grep telnet
tcp 0 2 cjk.com.telnet 165.244.175.48.1026 ESTABLISHED

시스템에 login 되어있는 사용자를 확인
# finger
# who –u
# w

시스템에 ftp 관련 서비스로 접속한 사용자 확인
# ftpwho

DNS client 셋팅 방법 (즉 ping www.yahoo.co.kr 이렇게 인터넷 URL으로 ping 을 할 수 있는 방법)

/etc/resolv.conf 파일안에 다음처럼 nameserver 를 설정하면됨

nameserver 156.147.1.1 (지방별로 nameserver 는 다름 pc(win98) 의 DNS 설정부분을 참조)




















5 장 TCP/IP Administration

네트웍 통신을 위하여 네트웍에 관련된 damon 들을 이용하여 통신을 합니다.
모든 통신 프로 토콜을 정의 하는 부분은 /etc/inet/inetd.conf 파일이며 통신시
필요한 port 는 /etc/services 파일에 기록 됩니다.
예) /etc/inet/inetd.conf
~
~
ftp stream tcp nowait root /usr/sbin/in.tcpd in.ftpd -a
telnet stream tcp nowait root /usr/sbin/in.tcpd in.telnetd
~
~
위와 같이 기록이 되어있으며 외부로부터 맨왼쪽에 ftp나telnet 에 해당되는 서비스
의뢰가 오면 in.ftpd 또는 in.telnetd 가 시작이 되어 서비스를 시작합니다.
만일 telnet 을 사용하지 않을 경우에는
# telnet stream tcp nowait root /usr/sbin/in.tcpd in.telnetd
과 같이 # 으로 막고 시스템을 rebooring 하던지 아니면 inetd 프로그램을 재기동
하시면 됩니다.
[/etc/inet] # ps -ef|grep inetd
root 1924 1917 TS 80 0 10시14분 ? 0:00 /usr/sbin/inetd

[/etc/inet] kill –1 1924
이렇게 하면 rebooting 을 하지 않아도 됩니다.

서비스 port 설정 /etc/services 파일
각각의 통신 protocol 과 port 를 설정합니다.
형식 ] 서비스명 port번호/protocol
예) telnet 23/tcp  telnet 의 port 설정 과 protocol (tcp or udp )설정


Passwd 없이 현재 시스템에서 타 시스템으로 login 할경우

이방법은 보안상 사용하지 않는 것을 원칙으로 합니다.
현재 login 되어있는 시스템은 ABC 타시스템은 BBC 일경우
ABC 시스템에서 BBC 로 login 할경우 rlogin 이란 명령으로 login 하면
Passwd 없이 login 합니다.
이렇게 될경우 반드시 BBC 시스템에 ABC 시스템에 관련된 정보를 가지고 있어야
합니다.
BBC 시스템의 /etc/host.equiv 파일이나 자신의 홈 디렉토리의 .rhosts 파일을
다음과 같이 설정하면 됩니다.
/etc/hosts 파일에 ABC 시스템의 IP 를 설정합니다.
# vi /etc/hosts
~
165.278.3.10 ABC
~

다음 /etc/host.equiv 파일안에는 다음처럼 설정이 되어야 합니다.
형식은 [호스명 유저명]
# vi /etc/host.equiv
ABC root

위의 내용은 ABC 시스템의 root 사용자에게만 허용한다는 뜻입니다.
Host.equiv 파일에 등록하지않고 각 사용자의 홈디렉토리 아래의 .rhosts 파일에 등록 하셔도
됩니다.
형식은 [ 호스트명 ]
# cd
# vi .rhosts
ABC

Host.equiv 파일과 .rhosts 파일과의 다른점은 hosts.equiv 는 전체 user에 관련된 내용이고
.rhosts 파일은 개인적으로 설정할 수 있습니다.
위와 같이 설정을 하고
ABC 시스템의 root 사용자에서
rlogin ABC 하면 password 없이 login 이 됩니다.

상대방 시스템의 파일을 가져오거나 보낼경우
상대방 시스템에 /etc/host.equiv 나 .rhosts 파일에 위와 같이 등록 하여 있어야 합니다.
[형식] rcp 복사할화일 복사될화일
/etc/hosts 파일에 상대방 시스템의 이름과 IP 가 등록이 되어있어야 합니다.
BBC 167.2.3.5
와 같이 등록이 되어있어있을경우
# rcp BBC:/etc/passwd /tmp  BBC 시스템아래의 /etc/passwd 파일을 현시스템의 tmp 아래 놓는 다.
# rcp /etc/hosts BBC:/tmp  현시스템의 /etc/hosts 파일을 BBC 시스템의 tmp 아래로 복사한다.

상대방 시스템의 파일을 실행시킬경우
[형식] rsh 상대방시스템 실행시킬파일명
/etc/hosts 파일에 상대방 시스템을 등록한후
# rsh BBC /usr/bin/ls –al  BBC 시스템아래의 /usr/bin/ls 파일을 실행합니다.

내부 외부로 메일을 보낼경우

내부사용자 (/etc/passwd 파일에 등록된 사용자) 에게 메일을 보낼경우
[형식] mailx 사용자
# mailx lp
주제: 잘모름  제목을 적습니다.
잘모른다니까!  내용을 적습니다.

^D  내용을 다적었으면 끝낼 때 (ctrl + d )

외부 사용자에게 (/etc/resolv.conf 파일에 KRNIC DNS 가 등록이 되어야함)
메일을 보낼경우
# mailx chojaekoo@lge.com
주제:잘살아보세
정말 잘살아보세
^D









6장 sco administration tool
sco admin 명령으로 여러가지 작업을 할 수 있습니다.
Console 상에서 작업을 하면 마우스로 제어를 하실수 있으며
일반 단말기에서 telnet 을 하시면 text 로 작업을 하실수 있습니다.
Text mode 시 TAB key 를 가지시고 항목을 이동 하실 수 있습니다.
반드시 root 상태에서 하셔야 합니다.
Scoadmin 의 주메뉴로 가려면 명령어 상태에서
# scoadmin 이라고 명령을 내립니다.
원하는 메뉴로 마우스로 이동하여 클릭을 하면 그항목의 메뉴를 실행합니다.
메뉴에서 빠져 나오려면 HOST 를누르시고  EXIT 를 누르면 주메뉴로 나옵니다.
Scoadmin 주메뉴에서 빠져 나오려면 File  EXIT 를 누르면 됩니다.
메뉴로 들어가지않고 직접원하는 메뉴를 실행하려면
# scoadmin account manager 라고 하면 되며 앞글자 Acct 만 적으셔도 됩니다.
Scoadmin 전체 항목을 확인하고 싶으시면
# scoadmin –t 라 명령을 실행하면
Account Manager
Address Allocation Manager
Application Installer
~
~
이렇게 많은 항목들을 보실 수 있습니다.

SCO 의 도움말을 보고 싶으시면
# scohelp 라고 실행 하시면 됩니다.
Help 의 전체 메뉴가 화면에 나옵니다.










7장 사용자 및 그룹계정 관리
group 등록
1. scoadmin 버전
scoadmin  계정관리자  그룹  새로운그룹 그룹명 입력, 그룹 ID 입력  확인을 누르면 등록이됨
2. 명령어 버전
[형식] groupadd -g 그룹번호 그룹이름
예) groupadd –g 1000 handsome  그룹번호가 1000번인 handsome 그룹


등록된 그룹의 변경
1. scoadmin 버전
scoadmin  계정관리자 바꾸고자 하는 그룹선택메뉴에서 그룹 변경  바꾸고자 하는 부분수정  확인
2. 명령어 버전
[형식] groupmod -g 그룹번호 그룹이름
예) groupadd –g 1330 handsome  handsome 그룹의 ID 를 1330 으로 수정

group 삭제
1. scoadmin 버전
scoadmin  계정관리자  바꾸고자 하는 그룹선택메뉴에서 그룹 삭제 
원하는 그룹선택  확인
2. 명령어 버전
[형식] groupdel 그룹이름
예) groupdel handsome


사용자 등록
1. scoadmin 버전
scoadmin  계정관리자  사용자  새로운 사용자 추가  로그인명,사용자id,
login shell 등 설정 확인
2. 명령어 버전
[형식] useradd -u (사용자id) -g (그룹id) -d (홈디렉토리명) –m(홈디렉토리를 만듬) -s (shell) -c “” (설명문) 사용자
예) useradd -u 1000 -g 1330 -d /home/hihi -m -s /bin/ksh -c “재구꺼..” cjk1004

위와 같이 복잡하게 user 를 등록하지 않으셔도 됩니다.
/etc/default/useradd 라는 파일을 보시면 기본적으로 설정되어있는 값이 있기 때문에
useradd cjk1004 만하셔도 자동으로 등록이 됩니다.

사용자 변경
1. scoadmin 버전
scoadmin  계정관리자  사용자  변경login shell,hom dir 등 변경 확인
2. 명령어 버전
[형식] usermod -u (사용자id) -g (그룹id) -d (홈디렉토리명) –m(홈디렉토리를 만듬) -s (shell) -c “” (설명문) 사용자 중에 아무거나 원하는 것
홈디렉토리와 shell 을 바꿀경우
예) useradd -d /home/hihi2 -s /bin/csh cjk1004
사용자 삭제
1. scoadmin 방법
scoadmin  계정관리자 삭제를 원하는 사용자선택 사용자 메뉴  삭제  확인
2. 명령어로 삭제
[형식] userdel 사용자명
예) userdel cjk1004

만들어진 user 및 password 등 user 의 정보를 저장 방법
형식] ap –dv 사용자명1 사용자명2 …. 사용자명n > 파일명
예) cjk1004 의 user 와 ssamjan 의 user 를 acct.passwd 파일에 저장하기
# ap –dv cjk1004 ssamjan > acct.passwd

만들어진 파일로 사용자의 복구
형식] ap –ro -f 파일명 사용자명1 사용자2 … 사용자n
예) 위에서 만든 acct.passwd 파일에서 cjk1004 를 복구하기
# ap -ro -f acct.passwd cjk1004
혹여 복구시 ux:ap: 오류 :user ID …. Is currently being aged
라는 메시지가 나오면서 복구가 되지않으면
/etc/security/ia/ageduid 파일을 삭제해 주시고 다시 등록 하세요..

passwd 변경 및 수정

1. passwd 지우기
[형식] passwd -d 사용자명
예) passwd -d cjk1004  사용자의 passwd 를 지웠으며 그사용자가 login 시
바꿀수 있게 됩니다. 반드시 root 에서 실행하셔야 합니다.
2. password 변경
[형식] passwd 사용자명  root 에서만 가능

사용자가 만든 디렉토리나 파일을 찾아내기
[형식] find / -user 사용자명 -print
예) find / -user cjk1004 -print | more

특정한 그룹이 만든 디렉토리나 파일을 찾아내기
[형식] find / -group 그룹명 -print
예) find / -group handsome -print | more

telnet 으로 login 하는user 가 바로 root 접속하지 못하게 하기
/etc/default/su 파일안에 CONSOLE=/dev/console 이라고 명기된 부분의 맨앞에 # 으로 막는다 #CONSOLE=/dev/console

특정한 사용자를 특정한 날짜 이후로 사용못하게 하기
[ 형식 ] usermod -e mm/dd/yy 사용자명
예) usermod -e 11/01/00 cjk1004  cjk1004 사용자를 2000년11월1일 이후로 사용하지 못하게 함
명령의 해제방법
[형식] usermod –e “” 사용자명
예) usermod -e “” cjk1004










8장 ~ 9장 파일 시스템 관리

디스크의 파일 시스템 구성 확인
[형식] prtvtoc –f 파일명 디스크 장치명
예) prtvtoc -f DISK0 /dev/rdsk/c0b0t0d0s0  반드시 s0 로 0번을 주셔야합니다.
cat DISK0
#SLICE TAG FLAGS START SIZE
0 0x5 0x201 63 8803557
1 0x2 0x200 1285200 2104515
2 0x3 0x201 224910 1060290
3 0x0 0x0 0 0
4 0xb 0x200 3389715 5285385
5 0x0 0x0 0 0
6 0x0 0x0 0 0
7 0x1 0x201 63 34
8 0xd 0x201 97 15968
9 0x0 0x0 0 0
10 0x9 0x200 16065 208845
11 0x0 0x0 0 0
12 0x0 0x0 0 0
13 0x0 0x0 0 0
14 0x0 0x0 0 0
15 0xf 0x201 8675100 16065

 slice 0~ 15 번까지 총 16개의 slice 로 나눠지며 0번은 전체 사이즈를
나타냅니다.
 TAG 와 PLAGS 는 어떠한 용도로 사용한다는 내용이 있습니다.
 Start 는 시작하는 섹터 번호 이며 size 은 섹터의 사이즈 입니다.
Size 는 512 byte 이므로 위의 숫자에서 * 512 를 하시면 실제kbyte 로 보실수 있습니다.

파일 시스템 확인 방법
파일시스템 종류에는 bfs,sfs,memfs,ufs,vxfs 등 여러가지가 존재 합니다.
파일시스템 확인방법은
[형식] fstyp 장치명
예) fstyp /dev/rdsk/c0b0t0d0s4
vxfs

파일 시스템 mount 방법
[형식] mount -F 파일시스템명 장치명 mount할 위치
예) mount –F vxfs /dev/dsk/c0b0t0d0s4 /home

파일시스템 umount 방법
[형식] umount 마운트명
예) umount /home

어떤 파일을 어떤 사용자가 사용하는지 확인하는 방법
[형식] fuser 옵션 파일/장치명
예) fuser -u /home (or /dev/dsk/c0b0t0d0s4)
파일이나 장치를 사용하는 user 를 자동적으로 kill 시키는 방법
fuser -ku /home (or /dev/dsk/c0b0t0d0s4 )

mount 되어있는 파일시스템 확인법
df -k  사이즈를 kbyte 로 보여줌
파일시스템 용량(KB) 사용 가용 이용율 마운트포인트
/dev/root 1052257 876572 175685 84% /
/dev/stand 104422 6078 98344 6% /stand

mount 되어있는 파일 시스템의 inode 사이즈 확인법
참고로 inode 는 파일 및 디렉토리와 1:1 매칭이 되므로 inode 개수가 파일갯수임
df -i
마운트 Dir 파일시스템 iused ifree itotal %iused
/ /dev/root 52474 46522 98996 53%
/stand /dev/stand 16 391 407 3%

mount 되어있는 파일 시스템이 어떤 파일 시스템인지 확인법
df -V
df -F vxfs -V /dev/root
df -F bfs -V /dev/stand

mount 되어있는 전체 disk 의 공간확인법
# dfspace
/ : Disk space: 171.56 MB of 1027.59 MB available (16.70%)
/stand : Disk space: 96.03 MB of 101.97 MB available (94.18%)
~
~
/DATA2 : Disk space: 166.66 MB of 2909.99 MB available ( 5.73%)

Total Disk Space: 5120.99 MB of 12548.32 MB available (40.81%).  전체 용량의 몇%가 남음

Mount 되어있는 파일시스템의 disk 사용량 조사 방법
[ 형식 ] du -sk 디렉토리명/파일명  디렉토리 및 파일 사이즈를 1024byte 로 표시
예) du –sk /home
용량을 많이 사용한 디렉토리별로 sort 해서 보여주는 방법
du -k /home | sort -nr |more

파일시스템의 오류 검사 및 자동 복구
[형식] fsck -y (모든질문에 yes 대답,생략가능) –F (파일 시스템) -o (옵션,생략가능) 장치명
예) fsck -y -F vxfs -o full /dev/rdsk/c0b0t0d0s4
*** 파일시스템 check 시 파일시스템은 umount 하시고 check 하셔야 좋습니다.

케리터와 블록장치
/dev/dsk/c0b0t0d0s0 로 되어있는 장치를 블록 장치라고하고
/dev/rdsk/c0b0t0d0s0 처럼 rdsk 로 되어있는 장치를 케릭터 장치라고 합니다.
파일시스템 체크등에는 rdsk 장치를 사용하고 마운트 할때는 dsk 로 사용합니다.
ls –al /dev/dsk/c0b0t0d0s0 /dev/rdsk/c0b0t0d0s0
brw------- 1 root sys 7679, 0 10월 20일 10시29분 /dev/dsk/c0b0t0d0s0
crw------- 1 root sys 7679, 0 10월 20일 10시29분 /dev/rdsk/c0b0t0d0s0
| |__> minor number |__-> device 번호
|_ _------ major number

이파일은 특수장치명라 일컬으고 major 와 minor 는 장치의 구성 번호를 나타냅니다.
-- device 번호 는 아래와 같이 실제 Hardware와 매칭이 됩니다.
c : controller번호
b : bus 번호
t : target 번호
d : lun 번호
s : slice 번호
p : 파티션번호

파일 /디렉토리 링크 하는 법
1.) 하드 링크  보이지 않는 링크로 동일 파일 시스템에서 존재 합니다.
형식] ln 링크할 파일명 링크이름
예) ln /etc/ddddvvv sdsd

2) 심볼릭 링크  링크된 것이 보임
형식] ln –s 링크할파일명 링크이름
예) ln -s /etc/ddddvvv sdsd
링크를 없애는 방법
형식] unlink link이름
예) unlink sdsd
또는 rm
특정 사이즈 이상/이하의 파일 탐색
[형식] find 어느디렉토리부터 -size (+/-) 사이즈(512byte) –exec (실행한다) ls –al {} \;
예) find / -size +1000 -exec ls -al {} \;  / 아래부터 1000 block (512,000byte) 이상되는 파일을 찾는다.

floppy disk mount 하는 방법
mount -F dosfs /dev/dsk/f03ht /mnt
umount 시는
umount /mnt

cd rom mount 하는 방법
mount -F cdfs -o ro /dev/cdrom/cdrom1 /mnt  cdrom 은 read only 로 마운트 하여야함
umount 시는
umount /cdrom






10 ~11장 주변장치 이용
tape 장치명
/dev/rmt/ctape 평범한 백업 으로 장치 사용후 헤드위치를 원위치 한다
/dev/rmt/ntape 장치 사용후 헤드의 위치를 현재의 위치에 둔다
/dev/rmt/rtape 장치의 위치를 기록한고 처음 위치로 테이프를 돌린다.
/dev/rmt/nrtape 장치의 위치를 기록하고 처음으로 테이프를 돌리지않는다.
/dev/rmt/utape 장치 사용후 tape 를 꺼낸다.

cdrom 장치
/dev/cdrom/cdrom1
tapecntl 명령으로 tape 구동하기
tapecntl -r 테이프를 초기화 시킨다.
tapecntl -w 테이프를 거꾸로 돌린다.
tapecntl -e 테이프의 내용을 지운다
tapecntl -c 3 테이프를 압축 모드로 만든다
tapecntl -c 0 테이프를 압축 모드에서 평범한 모드로 전환한다.

floppy 명칭
/dev/dsk/f015ht 1.2M 5.25inch
/dev/dsk/f03ht 1.44M 3.5inch
/dev/dsk/f03ef 2.88M 3.5inch

tar 명령으로 백업 ,확인 , 복구
- 백업 할경우
tar cvf /dev/rmt/ctape2 /usr /ORACLE /irais_data  절대 path 로 백업을 한다.
tar cvf /dev/rmt/ctape2 .  . 아래 즉 현재의 디렉토리를 전부다 copy
tar cvf /dev/rmt/ntape2 usr  usr 디렉토리를 상대로 받고 헤드위치를 정지
tar cvf /dev/rmt/utape2 /etc/passwd  백업을 받고 tape 을 튕겨 나오게 함
- 확인 할경우
tar tvf /dev/rmt/ctape1

- 백업 복구
tar xvf /dev/rmt/ctape2  tape 안에 있는 모든 데이터를 복구 합니다.
여기서 주의 하실 사항은 만일 백업시 /usr 처럼 / 가 앞에 나와있는 형태
즉 절대 디렉토리로 받을 경우에는 복구시 반드시 그 디렉토리 아래에
파일이 복구 됩니다.
tar xvf /dev/rmt/ctape2 /etc/scsi/pdiconfig
또는 tar xvf /dev/rmt/ctape2 etc/scsi/pdiconfig
한 개의 파일을 복구 할 때 사용하며 반드시 백업 하였을 때의
디렉토리명 으로 작성합니다.

vxdump 방법으로 파일 시스템 백업
root 를 백업합니다.
df -k / 로 파일 시스템이 마운트 되어있는지 확인 합니다.
파일시스템 용량(KB) 사용 가용 이용율 마운트포인트
/dev/root 1052257 872601 179656 83% /

----------- 백업 방법 -----------------------
아래에 /dev/rroot 라는 부분이 있습니다 . 위의 마운트 되어있는
부분을 보시면 /dev/root 라고 되어있죠.차이점은 r 이 하나더 붙습니다.
만일 /dev/dsk/c0b0t0d0s1 이란 부분을 받으시려고 한다면
/dev/rdsk/c0b0t0d0s1 이라고 하셔야 됩니다.
그이유는 rdsk 또는 rroot 처럼 r 을 사용한다는 뜻은 버퍼를 사용하지
않고 백업을 받는 다는 뜻인데 현재 /dev/root 혹은 /dev/dsk/c0b0t0d0s1
처럼 r 이 붙어 있지 않는 화일은 이미 사용중이기때문이죠
이방법은 반드시 vxfs 화일 시스템에서만 가능합니다.
화일시스템 타입을 확인하시려면 df -V 로 보시면 됩니다.

# vxdump 0uf /dev/rmt/ctape2 /dev/rroot
vxdump: Date of this level 0 dump: Tue Nov 7 14:54:52 2000
-- 중간 생략 ----
vxdump: level 0 dump on Tue Nov 7 14:54:52 2000
vxdump: Closing /dev/rmt/ctape2
vxdump: vxdump is done

---------- 백업 확인 방법 ----------------
# vxrestore tvf /dev/rmt/ctape2
Verify tape and initialize maps
Tape block size is 63
Dump date: Tue Nov 7 14:54:52 2000
Dumped from: the epoch
level 0 dump of / on /dev/rmt/ctape2
Extract directories from tape
Initialize symbol table.
dir 2 .
dir 3 ./lost+found
dir 4 ./etc
--- 중간 생략 ---

----- 백업 복구 방법 ----------------

# vxrestore xvf /dev/rmt/ctape2

----- 백업을 확인시 메뉴얼 하게 확인하고 복구하는 방법----

[/tmp]vxfsrestore ivf /dev/rmt/ctape2
Verify volume and initialize maps
Media block size is 126
Dump date: 1999년 1월 16일 토요일 오후 03시 03분 30초
Dumped from: the epoch
Level 0 dump of / on djsun:/dev/dsk/rroot
Label: none
Extract directories from tape
Initialize symbol table.
vxfsrestore > ls <-- ls 라는 명령으로 확인합니다.
.:
147 #UNTITLED# 31 .sh_history 15113 kernel/
2 *./ 60432 .tt/ 26 lib
2 *../ 22673 .wastebasket/ 3 lost+found/
92 .Xauthority 144 a 45321 mnt/
36 .ab_library 21 a.c 18891 net/
7569 .cetables/ 146 a.out 3793 nsmail/
30 .cshrc 37923 aaa/ 35 nsr
24 .desksetdefaults 42 backup 49160 oh/
45327 .dt/ 33 bin 11328 opt/
23 .dtprofile 37771 cdrom/ 37 os.bk
45324 .fm/ 15104 dev/ 45322 platform/
34001 .hotjava/ 3786 devices/ 49097 proc/
26449 .jws/ 22657 etc/ 52873 sbin/
27 .login 3787 export/ 18 system/
43 .netrc 41552 floppy/ 56649 tmp/
37777 .netscape/ 56656 hak/ 41675 tmp_dir_X86YM_/
29 .openwin-init 22667 home/ 3776 usr/
39 .profile 33995 home1/ 7552 var/
38 .raplayerrc 145 icheck.sh 30219 vol/
28 .rhosts 11345 java/ 26443 xfn/

vxfsrestore > cd /etc % 디렉토리를 변경합니다
vxfsrestore > pwd % 현제 디렉토리를 확인합니다.
/etc
vxfsrestore > ls %현재 디렉토리 목록을 확인합니다.
./etc:
22657 ./ 22720 netmasks
2 *../ 22721 networks
22856 .group.lock 22797 nodename
22847 .login 22758 nscd.conf

vxfsrestore > add passwd %passwd 파일을 restore 목록으로 등록시킴
Make node ./etc
vxfsrestore > add shadow % shadow 파일을 restore 목록으로 등록시킴
vxfsrestore > ? % help 목록을 보여줌
Available commands are:
ls [arg] - list directory
cd arg - change directory
pwd - print current directory
add [arg] - add `arg' to list of files to be extracted
delete [arg] - delete `arg' from list of files to be extracted
extract - extract requested files
setmodes - set modes of requested directories
quit - immediately exit program
what - list dump header information
verbose - toggle verbose flag (useful with ``ls'')
help or `?' - print this list
If no `arg' is supplied, the current directory is used
vxfsrestore > what % 백업 정보를 보여줌
Dump date: 1999년 1월 16일 토요일 오후 03시 03분 30초
Dumped from: the epoch
Level 0 dump of / on djsun:/dev/dsk/rroot
Label: none
vxfsrestore > extract % restore 목록에 저장한 파일을 disk 로 내려 받 음.(복구)
Extract requested files
You have not read any volumes yet.
Unless you know which volume your file(s) are on you should start
with the last volume and work towards the first.
Specify next volume #:
Specify next volume #: 1
extract file ./etc/passwd
extract file ./etc/shadow
Add links
Set directory mode, owner, and times.
set owner/mode for '.'? [yn] y
vxfsrestore > exit
exit: unknown command; type ? for help
vxfsrestore > quit

% 이렇게 하면 passwd 와 shadow 파일을 테이프에서 디스크로 복구
하게됩니다.

sun#/tmp]ls -al
총 88316
drwxr-xr-x 6 root root 308 1월 16일 15:09 ./
drwxr-xr-x 38 root root 1536 1월 15일 18:03 ../
drwxrwxrwx 2 root other 104 1월 16일 10:59 .X11-pipe/
drwxrwxrwx 2 root other 104 1월 16일 10:59 .X11-unix/
drwxrwxrwx 2 root root 107 1월 16일 10:59 .pcmcia/
-rw------- 1 root tty 45187072 1월 16일 15:04 a.dump
drwxrwxr-x 2 root sys 147 1월 16일 10:59 etc/
-rw-rw-r-- 1 root sys 5576 1월 16일 10:59 ps_data
[djsun#/tmp]cd etc
[djsun#/tmp/etc]ls -al
총 32
drwxrwxr-x 2 root sys 147 1월 16일 10:59 ./
drwxr-xr-x 6 root root 308 1월 16일 15:09 ../
-r--r--r-- 1 root other 859 12월 26일 11:59 passwd
-r-------- 1 root sys 588 12월 30일 18:31 shadow

이렇게하면 매뉴얼 단위로 백업이 됩니다.




























12장 프로 세스 관리
프로세스란 모든 실행 프로그램이 메모리 상에 존재 하는 것을 프로세스라 하며
그 프로 세서당 고규의 번호를 PID 라고 일컬으고 부모의 번호를 PPID 라고 한다.

ps 명령
ps  현재 자신의 프로세스를 확인
PID CLS PRI TTY TIME COMD
1787 TS 70 pts001 0:00 ksh
3387 TS 59 pts001 0:00 ps
ps –f  프로세스의 정보를 full 로 확인
UID PID PPID CLS PRI C STIME TTY TIME COMD
root 1787 1785 TS 70 0 14시51분 pts001 0:00 -ksh
root 3400 1787 TS 59 0 15시54분 pts001 0:00 ps -f
ps -e  자신뿐만 아니라 전체사용자의 프로세스 확인
PID CLS PRI TTY TIME COMD
0 SYS 79 ? 0:10 sysproc
1 TS 70 ? 0:00 init
-- 중간 생략 --
ps -u  어떤 사용자의 프로세스 확인
ps –fu lp
UID PID PPID CLS PRI C STIME TTY TIME COMD
lp 3445 3443 TS 80 0 15시56분 pts/2 0:00 -sh

ps -t  어떤 단말에서 실행되고있는 프로세스 확인
ps -ft pts/2
UID PID PPID CLS PRI C STIME TTY TIME COMD
lp 3445 3443 TS 80 0 15시56분 pts/2 0:00 -sh


forground process란
사용자가 명령을 내리고 그명령이 실행 되는 상태
이 상태에서는 오직 하나의 프로그램만이 실행이 됩니다.

background process 란
프로그램을 뒤어서 실행할경우 보통 & 가 뒤에 붙습니다.
이것을 이용하면 프로그램을 여러 개 한 단말기에서 실행할 수 있습니다.
예) find / -name core.[0-9]* -print &
forground 프로그램을 background 에서 수행하게 해주는 방법
예) find / -name core.[0-9]* -print  명령을 실행합니다. 이상태에서는 key-in 안됨
^Z  ctrl key 와 Z 키를 누릅니다.
[1] + Stopped find / -name core –print  프로그램이 정지 됩니다.
bg  background 로 프로그램을 돌린다.
[1] find / -name core -print&
jobs  현재 작업 정보를 보여준다.
[1] + 수행중 find / -name core –print
fg  background 로 동작하는 프로세스를 forground 로 동작
find / -name core -print
damon 프로세스
메모리 상에 항상 동작하고 있다가 외부로부터 요청이 오면 동작하는 프로세스
주로 initd 프로그램이 동작하며 외부에서 telnet 시 in.telnetd 를 실행 시켜줘서
telnet 서비스를 실행해 줍니다.

프로세스를 종료 시키는 방법
현재 단말기에서 동작시키는 프로그램이라면 delete key 를 누르므로 인해서
정지가 되지만 자신이 구동시키지 않은 프로세서 또는 데몬 프로세서를 종료하는 방법은
kill 이란 방법으로 종료 합니다.
예) 우선 프로세서를 확인합니다.
ps –ef |grep in.telnet
root 1785 1575 TS 80 0 14시51분 ? 0:01 in.telnetd
root 3443 1575 TS 80 0 15시56분 ? 0:00 in.telnetd
kill -9 1785  프로세스 ID 1785 를 강제 종료 합니다.

단말기를 logoff 또는 단말기의 power 를 갑자기 종료시켜도 프로그램은 종료되지않게하고싶을 때
단말기가 없어지만 현재 단말기에서 실행하는 프로그램도 같이 종료 됩니다.
단말기를 logoff 하여도 프로그램을 계속 실행 시키고 싶으시면 nohup 을 사용하세요
형시] nohup 프로그램명 &
예) nohup find / -name core –print &

이프로그램을 정지 시키시려면 ps –ef|grep find 로 찾으셔서 kill -9 로 종료 하시던지
아니면 시스템을 강제 종료 하시면 되는데 kill 로 종료 하시는 것이 나을 겁니다.

특정한 시간에 프로그램을 동작하고 싶으실 때
cron 을 이용하시면 됩니다.
/var/spool/cron/crontabs 아래의 파일을 보면 사용자 이름이 보이실 겁니다.
사용자 이름으로 되어있는 파일들이 각 사용자가 설정해 놓은 crontab 파일입니다.
cat 을 사용하여 파일을 보면 아마 다음처럼 기록이 되어있을 겁니다.
cat /var/spool/cron/crontabs
0 1 2 7 0-6 $TFADMIN /usr/lib/sa/sa1
이화일에는 특정한 형식이 정해져 있습니다.
맨왼쪽에 0 이란 자리의 뜻은 분을 뜻합니다. 단위는 0~59 까지를 설정할 수 있습니다.
두번쨰 1 이란 자리의 뜻은 시를 뜻합니다. 단위는 0-23 까지를 설정할 수 있습니다.
세번째 2 란 자리의 뜻은 일을 나타냅니다. 단위는 1- 31 까지를 설정할 수 있습니다.
네번째 7 란 자리의 뜻은 월을 나타냅니다. 단위는 1 – 12 까지를 설정할 수 있습니다.
다섯째 0-6 란 자리의 뜻은 요일을 나타내벼 0을 일요일로 해서 6을 토요일까지 0-6 까
까지 설정 할 수 있습니다.
여섯째 $TFADMIN /usr/lib/sa/sa1 은 실행 시킬 명령이면 반드시 full patch 를 정해줘야
합니다.
반드시 자리를 한칸씩 띄우면서 설정하며 * 는 모든 값을 가진다의 뜻이고 0,1,2 처럼 , 로
구분되는 것은 1일때도 2일때도 3일때도 라는 뜻이며 0 – 59으로 연결되면 0~59까지 실행된다는 뜻입니다.
위를 확인해보면 일요일부터 토요일안에 ,7월,2일,1시,0분에 프로그램 $TFADMIN /usr/lib/sa/sa1 을 실행 시키라는 명령입니다.

crontab 수정 방법
우선 사용자로 로그인을 합니다.
crontab -l 이란 명령을 사용하면 현재 사용자의 crontab 에 정의되어있는 부분을 보여줍니다.
crontab -l > /tmp/hihi  crontab 의 내용을 hihi 라는 임시 파일로 저장합니다.
vi /tmp/hihi  임시 파일을 수정합니다.
crontab < /tmp/hihi  수정한 내용을 crontab 에 재적용합니다.

이렇게 수행하지 않으시고 /var/spool/cron/crontabs/ 아래의 파일을 직접 수정하셨으면
cron 이란 프로세서를 다시 구동 시키셔야 합니다.



13장 프린터 설치
프린터 설치
scoadmin  프린터 설치 관리자  프린터  지역 프린터 추가  이름을 설정하시고,
관련된 프린터의 모델을 설치하고연결유형에서 시리얼이냐,패러럴이냐 선택 확인

lpstat -t 명령으로 현재 프린터가 잘동작되는지 확인
lpstat -o 명령으로 현재 프린터의 spool 내용 확인




























14 장 성능 체크
성능에 관련되어 중점적으로 보는 부분이 cpu 상태 , memory 상태 , disk io 상태
프로세스의 과부화 상태 등을 확인할 수 있습니다.
rtpm 이란 명령을 사용하여 문자 그래픽으로 cpu 성능등 다수를 확인 할 수 있음
sar 란 명령을 사용하여 시스템 상태를 확인
형식] sar 옵션 초단위설정 보여질 횟수 설정
sar 1 2  1 초당 2번 cpu 상태 표시
UnixWare LGS330 5 7.1.0 i386 11/07/00

17:17:30 %usr %sys %wio %idle %intr
17:17:31 2 5 0 93 0
17:17:32 0 1 1 94 4
Average 1 3 0 94 2

위와 같이 표기되며 %idle 을 확인하여 10% 이하면 시스템에 과부하라고 판단

sar -P ALL 1 2  cpu 개별로 확인
sar -r 1 2  memory 의 현재 여유,swap 의 현재 여유
memory * 4096이 현재 여유있는 메모리 Kbyte 이며 전체
메모리의 10% 이내일경우 메모리 증설을 고려해야함
sar -d 1 2  disk 의 busy 상태 확인 %busy 상태가 50% 넘으면
해당되는 디스크에 과부하
프로세서의 cpu 점유도 확인
# ps -efo pcpu,comm,pid,args|pg
%CPU COMMAND PID COMMAND
0.10 sysproc 0 sysproc
0.00 init 1 /sbin/init
-- 중간 생략 ---
위의 % CPU 를 확인하여 50% 이상 되는 프로세스를 확인

프로세서의 memory 사용량 확인
# ps -efo vsz,pid,comm,args|pg
VSZ PID COMMAND COMMAND
0 0 sysproc sysproc
184 1 init /sbin/init
1716 708 ifor_pmd /etc/ifor_pmd
-- 중간 생략 --
위의 VSZ 를 확인함 단위는 kbyte 임


sysdef 로 시스템의 환경변수 확인
sysdef
*
* i386 Kernel Configuration
*
*
* Tunable Parameters
*
256 number of buffer headers allocated at a time (NBUF)
15744 maximum kilobytes for buffer cache (BUFHWM)
--- 중간 생략 ----

swap 상태 확인
# swap –l  swap 의 block (512kbyte) 확인시
path dev swaplo blocks free
/dev/swap 7679,2 0 1060288 1060288
# swap –s  swap 의 사용량 확인 (단위는 kbyte)
total: 0 allocated + 206712 reserved = 206712 blocks used, 1344368 blocks available













15장 시스템 보안
시스템의 보안상태는 4 가지가 있습니다.
low , Traditionnal , Improved , High 와 같이 있으며 각각 사용자가 loging 시 몇번까지, 패스워드의 길이 , 파일생성시 기본적으로 정의되느 권한등을 정의 하며 현재 시스템에 설정되어있는 보안을 확인하기 위해서는
secdefs –v 명령으로 확인하실수 있습니다.

low  사용자의 passwd 가 필요없으며 반드시 passwd 를 설정할 필요가 없습니다.
사용자를 삭제하였다 다시 등록될 때 전에 사용했었던 uid 를 사용할 수있습니다.
보안과 거리가 먼 상태를 말합니다.
traditional  패스워드의 기간만료를 설정하지 않아도 되지만 설정하라고 권고만 합니다.
또한 모든 네트웍 서비스를 사용할 수 있습니다.
전에 사용하였던 사용자의 uid 를 다시 사용하 실 수 없습니다.
Improved  로긴시 로긴횟수에 제한을 두고 패스워드 만료가 반드시 설정되며 일부 네트
웍 서비스에 제한을 둡니다.
전에 사용하였던 사용자의 uid는 사용할 수 없는 제한을 둡니다.
high  상당히 높은 보안구성이며 패스워드의 길이 패스워드 변경기간 ,사용자의 로그인시
실패수 ,사용자의 로그인후 사용기간등이 엄격하게 통제가 되며 전에 사용하였던 사용자의 uid 는 절대 사용할 수 없는 등 보안에 까다롭게 제한을 둡니다.
보안에 관련된 사항은 /etc/default/login 과 /etc/security 디렉토리안에 설정이 됩니다.

파일 / 디렉토리의 사용자 및 그룹 권한을 확인
[형식] getacl 파일명
getacl /etc/shadow
# 파일: /etc/shadow
# 소유자:root
# 그룹:sys
사용자::r--
그룹::---
클래스:---
기타:---
(*.222.18.148)