커널 컴파일을 안전하게 하는 방법에 대한 간단한 설명 입니다.

레드햇 기반에서는 rpm -Ihv 로 쉽게 커널을 올리실 수 있습니다.

1. rpm으로 커널을 올리는 방법

updates.redhat.com에서 최신 버전의 커널을 받아옵니다.
# rpm -Ihv 새로받아온커널.rpm으로 설치를 마칩니다.
# lilo.conf나 grub.conf 에 새로운 커널을 로드할 수 있는지 확인하고 재부팅합니다.

2. 커널 소스를 받아서 컴파일하기

# 커널다운로드(ftp.kernel.org) 및 /usr/src/로 이동
# bzip2 -d new_kernel.tar.bz2
# tar xvf new_kernel.tar
# ln -s new_kernel linux (새로운 커널을 linux로 링크)
# cd /usr/include
# mv asm asm.old
# mv linux linux.old
# ln -s /usr/src/linux/include/asm-i386 asm
# ln -s /usr/src/linux/include/asm-generic asm-generic
# ln -s /usr/src/linux/include/linux linux

커널 컴파일

# cd /usr/src/linux

커널 컴파일은 상당히 많은 옵션에 대한 이해가 필요합니다.
옵션에 대한 이해보다는 기존에 사용하던 옵션을 그대로 사용하면서
새롭게 옵션을 지정할 수 있는 방법에 대해서 말씀드리겠습니다.

기존에 사용하던 커널옵션은 /boot/config-2.4.20-20.9 처럼 옵션이 저장되어 있습니다.
이 파일을 새로 받아서 압축을 해제한 커널 디렉토리로 복사를 합니다.

# cp /boot/config-2.4.20-20.9 /usr/src/linux/linux
# make mrproper
# make menuconfig
menuconfig 화면이 나타나면 하단의
Load an Alternate Configuration File을 선택해서 좀전에 /boot 에서 복사한
커널옵션값이 저장된 파일을 불러옵니다. 위에서 linux라고 복사했습니다.

# make dep
# make bzImage
# make modules
# make modules_install
# make install (새로운 커널이 grub 또는 lilo에 자동으로 등록됨.)
마지막으로 grub이나 lilo에 정상적으로 등록이 되었는지 확인 후 재부팅을 합니다.
2005/07/04 11:45 2005/07/04 11:45
보안 스캐닝툴인 nmap을 이용하여 서버의 open된 서비스의 버전을 확인 할 수 있습니다.

최신의 nmap를 다운 --> http://www.insecure.org/nmap/

설치시 별도의 옵션 사항이 없으므로 리눅스의 경우 rpm으로 간단하게 설치 할 수 있습니다.

[root@op isseo]# rpm -Uvh nmap-3.48-1.i386.rpm
준비 중... ########################################### [100%]
1:nmap ########################################### [100%]

아래는 현재 서버의 열려있는 서비스의 포트와 프로그램의 종류를 보여주는
명령 입니다.

[root@op isseo]# nmap -O -F localhost

Starting nmap 3.48 ( http://www.insecure.org/nmap/ ) at 2003-10-27 15:55 KST
Interesting ports on op (127.0.0.1):
(The 1206 ports scanned but not shown below are in state: closed)
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
80/tcp open http
505/tcp open mailbox-lm
3306/tcp open mysql
Device type: general purpose
Running: Linux 2.4.X|2.5.X
OS details: Linux Kernel 2.4.0 - 2.5.20
Uptime 9.282 days (since Sat Oct 18 09:08:36 2003)

Nmap run completed -- 1 IP address (1 host up) scanned in 8.527 seconds

아래의 -A 옵션을 이용하여 서비스되는 프로그램의 버젼을 확인 하실 수 있습니다.

[root@op isseo]# nmap -A -T4 -F localhost

Starting nmap 3.48 ( http://www.insecure.org/nmap/ ) at 2003-10-27 15:59 KST
Interesting ports on op (127.0.0.1):
(The 1206 ports scanned but not shown below are in state: closed)
PORT STATE SERVICE VERSION
21/tcp open ftp ProFTPD 1.2.6
22/tcp open ssh OpenSSH 3.4p1 (protocol 1.99)
80/tcp open http Apache httpd 1.3.27 ((Unix) PHP/4.3.1)
505/tcp open ssl OpenSSL
3306/tcp open mysql MySQL 3.23.55-log
Device type: general purpose
Running: Linux 2.4.X|2.5.X
OS details: Linux Kernel 2.4.0 - 2.5.20
Uptime 9.286 days (since Sat Oct 18 09:08:36 2003)

Nmap run completed -- 1 IP address (1 host up) scanned in 52.104 seconds

nmap를 이용하면 일일이 버전 체크를 할 필요 없이 편리하게 관리할 수 있습니다.
2005/07/04 11:44 2005/07/04 11:44
특정 URL이나 IP일 경우나 특정한 브라우저를 이용하여 DoS(Denial of Service, 서비스거부)
공격이 들어온다면 httpd.conf 에서 SetEnvIf, SetEnvIfNoCase 등과 Allow, Deny 설정으로
간단히 막을 수 있겠지만 일정한 유형이 없다면 해결점을 찾기가 쉽지가 않습니다..

이경우 Apache용 mod_dosevasive 모듈로 DoS 공격을 쉽게 막을 수 있습니다..
아래는 설치와 설정 예입니다.

1. mod_dosevasive 설치

http://www.nuclearelephant.com/projects/dosevasive/
에서 mod_dosevasive (현재 최신버전은 1.8)을 받아온다.

1) 기존에 사용하던 apache 1.3.x에 모듈만 추가할 때

mod_dosevasive.tar.gz 을 푼다음 apxs로 설치

----------------------------------------------
# tar xvfz mod_dosevasive.tar.gz 
# cd mod_dosevasive
# /bin/apxs -iac mod_dosevasive
...
[activating module `dosevasive' in /usr/local/apache/conf/httpd.conf]
cp mod_dosevasive.so /usr/local/apache/libexec/mod_dosevasive.so
chmod 755 /usr/local/apache/libexec/mod_dosevasive.so
...
----------------------------------------------

httpd.conf의 LoadModule, AddModule는 apxs가 알아서 추가해준다.

2) apache 1.3.x부터 새로 컴파일할 할 때

mod_dosevasive.tar.gz 을 apache_source_홈/src/modules 에 푼 다음
기존에 apache 컴파일하는 것과 동일한 방법으로 하되, --add-module=... 옵션만
추가해준다.

----------------------------------------------
./configure --prefix=/usr/local/apache \
--enable-module=all --enable-shared=max \
--add-module=src/modules/dosevasive/mod_dosevasive.c  <-- 추가함
make
make install
----------------------------------------------

3) apache 2.x에 모듈만 붙일 때

/bin/apxs -iac mod_dosevasive20.c

2. 설정

httpd.conf 에 아래 설정이 있는지 확인한다.

apache 1.3.x
----------------------------------------------
...
LoadModule dosevasive_module libexec/mod_dosevasive.so
...
AddModule mod_dosevasive.c
----------------------------------------------

apache 2.x
----------------------------------------------
LoadModule dosevasive20_module modules/mod_dosevasive20.so
----------------------------------------------

httpd.conf에는 다음과 같이 설정을 추가한다.
( 단, 아래 설정 중에 apache 2.x일 때는 < IfModule mod_dosevasive20.c> 로 )
----------------------------------------------
< IfModule mod_dosevasive.c>
  DOSHashTableSize  3097
  DOSPageCount    3
  DOSSiteCount    50
  DOSPageInterval   1
  DOSSiteInterval   1
  DOSBlockingPeriod  30
< /IfModule>
----------------------------------------------
DOSHashTableSize  3097

hash table의 크기. IP, URI등을 분석하기 위한 공간으로 쓰이는 것 같은데 정확히는
모르겠다. 접속이 많은 서버이면 수치를 높인다.

DOSPageCount    3
DOSPageInterval   1

DOSPageInterval에서 지정한 시간(초단위)동안 같은 페이지를 3번 요청한 경우
해당 클라이언트 IP를 블럭킹한다. 블럭킹되는 동안에 사용자에게는 403(Forbidden)
코드가 전송된다.

DOSSiteCount    50
DOSSiteInterval   1

DOSSiteInterval에서 지정한 시간동안 어느 페이지나 이미지든 요청 건수가 50번을 넘는
경우 해당 클라이언트 IP를 블럭킹한다. 403코드 보내는 것은 마찬가지.
HTML 내에 이미지가 10개이면 요청 건수는 HTML포함하여 11번이 되므로 이미지가 많은
사이트는 숫자를 크게한다.

DOSBlockingPeriod  30

블럭킹된 IP는 30초동안 접속을 할 수 없다.

3. 모듈 사용을 중지하려면

차단 기능을 이용하지 않기 위해

DOSPageCount 0
DOSSiteCount 0

와 같이 하면 모듈 내부의 default값을 이용해서 동작하므로 LoadModule, AddModule를
주석 처리하는 방법을 써야 합니다. 또는 Count값을 상당히 큰 수를 지정할 수도 있습니다.

4. 차단하는지 테스트

간단한 테스트 툴로 test.pl을 제공한다.
12번째 줄에

printf("%03d ", $_ );

를 추가하고

apache를 실행시킨 다음 perl test.pl을 해보면 200 OK, 403 Forbidden 된 것을 쉽게
확인할 수 있을 것입니다.

DOSPageCount, DOSSiteCount 수치를 너무 낮게 하면 정상적인 접속에 대해서도 차단될 수
있으므로 주의해야 한다. 수치를 낮추고, 같은 페이지를 reload(Ctrl+R)를 여러번 하면
바로 403 페이지가 뜹니다.

ab, lynx 등으로 게시물 조회수를 순간적으로 올린다거나, 시스템 로드를 증가시키는
것까지도 어느정도 막을 수 있을 것입니다.
2005/07/04 11:44 2005/07/04 11:44
'<' 와 '>' 를 이용하는 블럭 단위로 탭간격을
조정할 수 있습니다.

탭 들이려면 : 줄수(n) < <
탭을 밀어내려면 : 줄수(n) > >

줄수를 입력하지 않고 v(isual block) 를 이용하여
블럭을 선택하고 해도 같은 결과가 나옵니다.
2005/07/04 11:43 2005/07/04 11:43
아래의 스크립트 화일을 만들어서 실행만 시키시면
backup_home_root라고 설정되어 있는 폴더에 *.tar.gz
의 형태로 개별적으로 백업이 됩니다.
backup_home_root는 임의적으로 다른 폴더로 설정하시면
됩니다.


#!/bin/sh

# 디렉토리 설정하실때 끝에 꼭 / 넣어주세요.
home_root="/home/"
backup_home_root="/backup/"

cd $home_root

echo "백업 중입니다"
for home_name in $(ls)
do
if [ -d "$home_root/$home_name" ] ; then
echo "tar -cvzf $backup_home_root$home_name.tar.gz $home_name"
tar -czf "$backup_home_root$home_name.tar.gz" "$home_name"
fi
done
2005/07/04 11:43 2005/07/04 11:43
IP aliases 설정시 ifconfig 명령어로 잡아주고 부팅시 자동으로 하기 위해
rc.local에 넣는 방법외에 아래와 같은 편리한 방법이 있습니다.

/etc/sysconfig/network-scripts/ 디렉토리의 ifup-aliases 스크립트를 이용합니다.

eth1 인터페이스를 ip aliases 한다고 가정하면
/etc/sysconfig/network-scripts 디렉토리에 ifcfg-eth1-range0
라는 설정 파일을 만듭니다.

설정 파일의 내용은 다음과 같습니다.

IPADDR_START=192.168.0.1
IPADDR_END=192.168.0.3
CLONENUM_START=0
NETMASK=255.255.255.0
BROADCAST=192.168.0.255

IPADDR_START는 eth1:0 ~ 에서 부터 할당될 IP 시작 주소
IPADDR_END 는 eth1:n 까지 할당될 IP 끝 주소입니다.
즉 위의 경우는 eth1:0, eth1:1, eth1:2, eth1:3 까지
1~3 IP가 각각 할당됩니다.

NETMASK나 BOARDCAST 의 경우는 모든 alias 된 인터페이스에 공통입니다.

다 설정하신 다음 /etc/rc.d/init.d/network restart 하시면 적용됩니다.
재부팅시에도 자동으로 설정됩니다.

설정의 변경 확인은 ifconfig -a로 확인 하시면 됩니다.
2005/07/04 11:42 2005/07/04 11:42
아래의 스크립트를 이용하여 네트웤 디바이스의
수신 송신 상태를 모니터링 할 수 있습니다.


#!/bin/sh

if [ "$1" != "" ]; then
# ethnet device
ETH="$1:"
CHECK=/proc/net/dev
CAT=/bin/cat

GREP="/bin/grep ${ETH}"
SED="sed -e s/${ETH}//"
UPTIME=/usr/bin/uptime

# parcket user check
set `${CAT} ${CHECK} | ${GREP} | ${SED}`

# Transmit packet
let "in1 = $1"
let "out1 = $9"

echo "측정중입니다. 기다려주세요"
sleep 10

set `${CAT} ${CHECK} | ${GREP} | ${SED}`

let "in0 = $1"
let "out0 = $9"

let " in = ($in0 - $in1)/(10*1024)"
let " out = ($out0 - $out1)/(10*1024)"
echo "수신(in) $in kbyte/s"
echo "송신(out) $out kbyte/s"


else
echo "USAGE: $0 [ethernet device no]"
echo "ex) ./$0 eth0"
fi

exit 0

실행결과는 다음과 같습니다.

[root@op isseo]# ./test.sh eth0
측정중입니다. 기다려주세요
수신(in) 5 kbyte/s
송신(out) 6 kbyte/s
2005/07/04 11:41 2005/07/04 11:41
#up2date --register

There was an SSL error: [('SSL routines', 'SSL3_GET_SERVER_CERTIFICATE', 'certificate verify failed')]

위와 같은 에러메세지가 발생 했을 때 아래와 같은 명령어로
표준 시간을 업데이트 하시면 됩니다.

#rdate -s time.kriss.re.kr

서버의 시간이 맞지 않아 발생되는 에러들이 간혹 존재합니다.
2005/07/04 11:40 2005/07/04 11:40

Xmanager 설정

FAQ 2005/07/04 11:39
Xmanager는 네트워크로 연결된 UNIX와 VMS 호스트의 응용 프로그램을 윈도우상에서 사용할 수 있게 해 주는 X 서버 소프트웨어입니다. UNIX 워크스테이션과 엔터프라이즈 서버를 모든 데스크탑에서 사용할 수 있게 해 주는 최고의 인터네트워킹 솔루션이며, 기업 전산 환경에 반드시 필요한 소프트웨어입니다. Xmanager를 활용하면 한 대의 UNIX 또는 VAX시스템을 전직원이 동시에 사용할 수 있으며, 시스템 구축 비용을 대폭 절감할 수 있습니다.

Xmanager를 다운을 받기 위해서 http://www.netsarang.co.kr 에 가보면 Xmanager를 다운을 받을수가 있습니다.. Xmanager 라이센스가 있기때문에 정품을 구입하셔야 하지만 평가판으로 한달간 쓸수
프로그램도 제공합니다.

다운을 받고 리눅스에서 해당한 x윈도우에서 환경설정을 해주면 됩니다.

리눅스 runlevel 설정

/etc/inittab 파일에서 runlevel을 5로 설정합니다.
id:5:initdefault:


gdm 환경 설정 (gdm을 사용하는 경우)

/etc/X11/gdm/gdm.conf 파일의 [xdmcp] 섹션에서 Enable의 값을 1로 설정합니다.
Enable=1


kdm 환경 설정 (kdm을 사용하는 경우)

/etc/X11/xdm/xdm-config 파일의 다음 라인을 코멘트로 막습니다.
DisplayManager.requestPort: 0 ==>
!DisplayManager.requestPort: 0

/etc/X11/xdm/Xaccess 파일의 다음 줄에 코멘트 기호(#)를 삭제합니다.
#* #any host can get a login window ==>
* #any host can get a login window

kdmrc 파일을 찾아서 다음과 같이 설정합니다.
[XDMCP]
Enable=true

kdmrc 파일의 위치는 다음과 같습니다. 배포판 kdmrc 파일 위치
RedHat7.2 /etc/kde/kdm/kdmrc
Mandrake8.1 /usr/share/config/kdm/kdmrc
SuSE 7.3 /etc/opt/kde2/share/config/kdm/kdmrc
한컴2.2 /etc/X11/xdm/kdmrc와 /usr/share/kdm/kdmrc
wowlinux7.3 /etc/kde/kdm/kdmrc
이 외의 경우에는 slocate, find명령으로 kdmrc 파일을 찾아서 설정하시기 바랍니다.

재부팅 한 후 Xmanager를 실행합니다.
2005/07/04 11:39 2005/07/04 11:39
일반적으로 특정 사용자의 프로세스를 한번에 종료하기 위해서는
아래와 같이 ps, awk, kill 명령을 조합해서 사용합니다.

# kill -9 $(ps -fu 사용자명 | awk '{print $2}')

하지만, 이렇게 하면 속도도 느릴 뿐 아니라 한 번에 성공하기가
힘들다고 합니다..

다른 방법으로 아래와 같은 방법도 있습니다.

# su - 사용자명 -c 'kill -9 -1'
2005/07/04 11:38 2005/07/04 11:38
자주 사용되는 명령어는 아니지만, 유용하게 사용될 수 있는 명령어입니다.
가령, CD-ROM을 사용한 후에 unmount 하려고 할 때 사용하고 있어서 unmount
할 수 없다고 할 때가 가끔 있을 겁니다.
이런 경우, 아래와 같이 정말로 CD-ROM을 사용하고 있는지 확인해 볼 수
있습니다.

# fuser /cdrom

이렇게 해서, 결과가 나오면 사용하고 있다는 것이고 -k 옵션을 사용하여
종료시키고 unmount 시키면 됩니다.
2005/07/04 11:37 2005/07/04 11:37
아래는 실제로 ps -aux를 실행 시켰을 때 나타나는 화면입니다.

[root@op etc]# ps -aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 1392 72 ? S Oct18 0:04 init
root 2 0.0 0.0 0 0 ? SW Oct18 0:00 [keventd]
root 3 0.0 0.0 0 0 ? SW Oct18 0:00 [kapmd]
root 4 0.0 0.0 0 0 ? SWN Oct18 0:00 [ksoftirqd_CPU0]
root 5 0.0 0.0 0 0 ? SW Oct18 0:02 [kswapd]
root 6 0.0 0.0 0 0 ? SW Oct18 0:00 [kscand]
root 7 0.0 0.0 0 0 ? SW Oct18 0:00 [bdflush]
root 8 0.0 0.0 0 0 ? SW Oct18 0:00 [kupdated]
root 9 0.0 0.0 0 0 ? SW< Oct18 0:00 [mdrecoveryd]
root 13 0.0 0.0 0 0 ? SW Oct18 0:00 [kjournald]

위 예제에서 제일 상단의 키워드 값에 대한 설명은 아래와 같습니다.

USER : process 소유주
PID : Process ID
%CPU : CPU TIME 과 경과 시간
%MEM : 사용된 메모리의 추정치
SZ : 현재 사용중인 가상메모리 또는 페이지.
RSS : 현재 사용중인 Real 메모리
TT : 현재 사용중인 process의 소유자가 사용중인 터미널 포트
S : 현재 프러세서의 STAT(상태)를 의미합니다.
------------------------------------------------------
R - running 중인 상태
S - sleeping중인 상태
I - intermediate상태
T - Signal 의 영향으로 중지된 상태
X - 메모리가 wait중인 상태
Z - 좀비 프로세서
-------------------------------------------------------
START : process 시작 시간
TIME : 총 사용된 CPU time
COMMAND : 실행된 명령어의 이름
2005/07/04 11:37 2005/07/04 11:37
#uptime
9:40pm up 23 days, 8:32, 3 users, load average: 0.23, 0.54, 0.59

그리고 현재 디렉토리의 용량보기
#du -s -h
S는 summary 이고
H 는 human readable 사람이 보기 쉬운 이 옵션은 많이 사용 합니다.
2005/07/04 11:36 2005/07/04 11:36
아래는 ldd를 사용하여 /bin/login프로그램이 어떤
라이브러리로 구성되어 있는지를 알 수 있습니다.
주의할 점은 반드시 절대경로로 써야 합니다.

[root@op bin]# ldd /bin/ls
libtermcap.so.2 => /lib/libtermcap.so.2 (0x40022000)
libacl.so.1 => /lib/libacl.so.1 (0x40027000)
libc.so.6 => /lib/i686/libc.so.6 (0x42000000)
libattr.so.1 => /lib/libattr.so.1 (0x4002d000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

절대경로를 모를경우 아래와 같이 which를 사용하시면 됩니다.

[root@op bin]# which ls
alias ls='ls --color=tty'
/bin/ls
2005/07/04 11:36 2005/07/04 11:36

·bash 유용한 팁

FAQ 2005/07/04 11:35
cd im* -> im으로 시작하는 디렉토리로 이동
ctrl-t -> 두개 문자 변경
ctrl-u, ctrl-k 왼쪽의 문자들만 삭제
ctrl-k ->오른쪽의 문자들만 삭제
cd - 전에 있던 디렉토리로
ctrl-r -> 히스토리 검색
ctrl-l clear screen

vipw는 /etc/passwd용 vi 입니다. 아래와 같이
명령어만 치시면 바로 passwd 파일 편집 화면을 보여줍니다.
[root@op bin]# vipw

root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
2005/07/04 11:35 2005/07/04 11:35
디렉토리 안의 모든 파일들의 확장자를 한꺼번에 바꾸고
싶을때가 있습니다.

.html을 .php로 바꾼다고 하면

rename html php *.html

하시면 됩니다
2005/07/04 11:35 2005/07/04 11:35
우리가 압축파일을 풀 때 디렉토리가 생길 지 알고 풀었더니 디렉토리가 생기지 않고
파일들이 모두 풀려서 황당한 경우가 있었을 겁니다.
이때 일일이 삭제를 해야하는 데 번거로울 때가 있습니다.
아래는 이때 사용하실 수 있는 유용한 팁입니다.

1. tar로 묶여있는 파일일 경우...
# rm -rf `tar -tvf 문제화일.tar|awk {'print $6'}`
여기서 주의할 점으로 처음과 끝에 있는 `는 물결무늬에 있는 것이고.
그리고 가운데 있는 '는 작은 따옴표입니다. 주의하시길...

2. tar.gz 혹은 tgz 파일일 경우...
# rm -rf `tar -tvzf 문제화일.tar|awk {'print $6'}`

3. bzip2 파일일 경우...
# rm -rf `tar -tvlf 문제화일.tar|awk {'print $6'}`

이렇게 해주시면 잘못 풀린 것들이 제거가 될 것입니다.
2005/07/04 11:34 2005/07/04 11:34
여러가지 작업 (특히 소스 코드 변경시)중 디렉토리
안의 모든 파일들 안의 어떤 문자열을 다르게 바꾸고
싶을때가 있습니다.

가령 php 3에서 php 4로 업그레이드 해서 이제부터는
모든 php3파일 안의 link를 .php 로 바꾸고 싶다던가
할때죠.

이때는

replace php3 php -- 'ls'

이렇게 해주시면 됩니다. 에러가 나오는 줄들은
디렉토리는 읽어들이지 못하기 때문이구요.
일반 파일들은 정상적으로 수행됩니다
2005/07/04 11:33 2005/07/04 11:33
GNU rm으로 파일의 삭제시 특수문자나 공백 등이 있다면
"로 묶어 주어 지워주지만,

파일이름이 -이나 --등으로 시작되는 경우 예를들어
rm --test.txt의 경우에는 --test.txt를 옵션으로 인식해
버려서 삭제가 안됩니다.

이것은 거의 모든 프로그램이 getpot 함수를 사용하여
전달되는 argument들을 parsing하기 때문입니다.

rm 코딩시 처음 -와 --를 옵션으로 인식하도록 하였으므로
옵션이 아무것도 없다는 것을 프로그램에 알려주어야 합니다.

이는 '--' 옵션의 사용므로 가능하며 이후의 모든것은 옵션이
아니라는 뜻이되죠.

위의 예에 적용해 보자면

rm -- --test.txt
하면 정상적으로 삭제가 될것입니다.

이와 마찬가지로 -나 --로 시작하는 파일들의 경우
모두 -- 옵션을 주어 사용하시면 됩니다.

ex) touch -- --test.txt 혹은 vi -- --test.txt
2005/07/04 11:32 2005/07/04 11:32

솔라리스백업&복구

FAQ 2005/07/04 11:31
다음은 간단한 백업 요약서이다. (under construction)

1.백업 사이즈 보는법
# ufsdump S /usr
65029120


2.전체 백업
# ufsdump 0ucf /dev/rst0 /


3.부분 백업
# ufsdump 9ucf /dev/rst0 /


4.리모트 시스템에서의 전체 백업
# ufsdump 0ucf anyon:/dev/rst0 /stud2

복구


다음은 간단한 파일 시스템 복구법이다. (under construction)

1.전체 복구
# cd /var/tmp
# ufsrestore ivf /dev/rst0

ufsrestore>



2.수동으로 복구
# cd /var/tmp
# ufsrestore xvf /dev/rst0
2005/07/04 11:31 2005/07/04 11:31