관리 메뉴

Hacking Arts

[Solaris] Backup - 2 (ufsdump , ufsrestore , dd and cpio) 본문

Computer & ETC/Solaris

[Solaris] Backup - 2 (ufsdump , ufsrestore , dd and cpio)

Rakehell 2014. 8. 23. 02:31

<대게 명령어에 따라 사용하는 type>

tar -> 파일들

ufsdump -> file-system 단위

dd -> Disk단위

cpio -> 특정 file


<ufsdump>

ufsdump [[0123456789]unvloSf] dump_name [file system이나 백업할 것이 위치한 곳]

-> ufsdump는 incremental backup 명령어로 증가분에 대해 백업이 가능하다!

-> ufs(unix file system) 에서만 사용 가능하다.

-> HDD를 umount 한 후에 backup을 하는것이 좋음 이유는 file의 내용이 변화할 수 있기 때문이다.


ex)pwd : /etc

     ufsdump 0uf /dev/rmt/0n -> tape device안에 /etc 안의 파일들을 dump 파일로 backup함


★u : /etc/dumpdates file에 backup을 시작한 시간과 번호(0~9)가 입력됨

   f : backup 장치명을 적는다.

★숫자 : 0<1<2<3... 0번이 백업되어있는 기록을 /etc/dumpdates file안에 내용을 기록해둠 그다음 1uf를 돌리면 0번을 제외한 증가분에 대해서 백업을 시작하고 그 내용을 /etc/dumpdates에 다시 기록해줌 이런식으로 0~9번으로 난이도 같은 것으로 표시 해줌


<ufsrestore>

-> ★★★ ufsrestore를 사용하기전에 자신이 백업을 할 file이 위치한 곳에 이동해야 된다!

-> ★★    ufsrestore의 명령어의 경우 ufsdump로 증가분 백업을 했을때는 가장 처음에 했던 큰 backup을 풀고 그다음 차근차근 순서에따라 해야됨!!


ufsrestore [irtx]vf [dump_name]

ex)

ufsrestore rvf /dev/rmt/0 : backup한 내용을 전부 restore한다.

ufsrestore xvf /dev/rmt/0 [file명] : file한개만 뽑아서 복구

ufsrestore tvf /dev/rmt/0 : backup한 내용을 복구하지 않고 보기만 함

ufsrestore ivf /dev/rmt/0 : interactive file복구 방식 프롬프트로 떨어져서 dump파일 안에들어감


<ufsdump로 root file system을 이전 하는 예>

 

# init 0

ok> setenv auto-boot? false  ; system의 자동부팅을 false로 변경

ok> reset-all ; 설정한 parameter 값을 저장하고 적용하여 booting

ok> boot cdrom –s ; cdrom을 이용하여 single mode로 booting

# ufsdump 0f /dev/rmt/0 /dev/rdsk/c0t0d0s0 ; root file-system full backup

# init 5 ; system의 전원까지 종료

HDD 교체

ok> boot cdrom -s

# format ; 새로 교체한 hard disk partition을 분할한다.

# newfs /dev/rdsk/c0t0d0s0 ; 분할한 partition에 새로운 unix-file-system 생성

# fsck -y /dev/rdsk/c0t0d0s0 ; file-system의 무결성 검사

# mount /dev/dsk/c0t0d0s0 /a ; 새로 추가한 hard disk를 mount
# cd /a 
# ufsrestore rvf /dev/rmt/0 ; tape에 backup 받아놓은 기존의 root file-system
   의 내용을 복원(copy본을 만들어 놓는 것과 같다.)
# installboot /usr/platform/`uname -m`/lib/fs/ufs/bootblk /dev/rdsk/c0t0d0s0
   ; booting이 될 수 있도록 bootblk를 install
# cd /
# umount /a
# init 6 ; rebooting

<cpio>
command | cpio option >> filename

ex)

# find . -print | cpio -ovcB > /dev/rmt/0n   ( 현재부터 모든 것을 backup ) 
# cpio -ivcB test_file < /dev/rmt/0n    ( test_file만 restore ) 
# find . -mtime -7 -print | cpio -ovcB > /dev/rmt/0n  
( 7일 동안 변경된 file backup ) 
# find . -name 'file*' -print | cpio -ovcB > file.list 
(현재부터 file*로 시작되는 모든 list backup) 
# cpio -ivt < file.list  (file.list 의 모든 것을 restore) 
# find /etc -print | cpio -dpmv /p3
(/p3/etc로 cp로 복사가 불가능한 file까지 모든 file이 복사된다.)

 

<dd>

Disk단위로 백업하는 명령어로

dd [if=filename] [of=filename] [bs=n]

주로 사용되는 명령어로

[if=filename] : 입력 file을 적는다

[of=filename] : 출력 file을 적는다

[bs=n] : block size를 적는다 default는 512byte


★★★★★쓰는 가장 중요한 이유 DISK를 슬라이스 단위로 옮길때 root파일시스템에잇는 bootblk도 심어 주기때문에 그렇다!!

 

ex) dd if=/dev/dsk/c1t0d0s2 of=/dev/dsk/c1t1d0s2 bs=8192k

Controoler 1번의 t0 disk를 t1 disk로 block size를 8192k로 지정하여 복사하는 명령어이다.