export와 동시에 압축하기

내 이 세상 도처에서 쉴 곳을 찾아보았으나, 마침내 찾아낸, 컴퓨터가 있는 구석방보다 나은 곳은 없더라.

export와 동시에 압축하기

다음과 같이 하면 export를 받은 후 압축하지 않고 export와 동시에 압축을 할 수 있다. export 파일 크기가 크고 디스크 용량이 충분하지 않을 때 사용하면 유용하다.

1. named pipe를 만든다.

$ mknod /tmp/expimp_pipe p

2. pipe로부터 들어오는 데이터를 압축한다.

이 명령은 백그라운드로 실행되도록 한다.

$ compress < /tmp/expimp_pipe > exp.dmp.Z &

3. pipe에 데이터를 쓴다.

$ exp system/pw owner=scott direct=y file=/tmp/expimp_pipe

pipe를 이용해 export 하는 동시에 compress로 압축 저장해 백업을 받는 스크립트는 다음과 같이 작성할 수 있다. (named pipe는 미리 만들어두어야 한다.)

#!/bin/ksh
date=$(date +"%m%d")
pipe=/tmp/expimp_pipe

target_file=dump${date}
compress < $pipe > ${target_file}.dmp.Z &
exp system/pw owner=user1 direct=y file=$pipe log=${target_file}.log

mv *.dmp.Z /tempdata/orabackup

echo
echo backup completed...
echo