일련의 심볼릭 링크가 포함된 폴더가 있다고 가정해 보겠습니다.
ussdv103:en195d; default$ pwd
/oradba/app/oracle/admin/database1
ussdv103:en195d; default$ ls -ltr
exp -> /oradba/app/oracle/acfsmounts/global/STREAM2a/database1/exp
dpdump -> /oradba/app/oracle/acfsmounts/global/STREAM2a/database1/dpdump
backup -> /oradba/app/oracle/acfsmounts/global/STREAM2a/database1/backup
그런 다음 다음 명령을 실행하여 다른 STREAM 디렉터리에 연결했습니다.
unlink $ORACLE_BASE/admin/database1/backup
unlink $ORACLE_BASE/admin/database1/dpdump
unlink $ORACLE_BASE/admin/database1/exp
mkdir -p /oradba/app/oracle/acfsmounts/global/STREAM1a/database1/backup
mkdir -p /oradba/app/oracle/acfsmounts/global/STREAM1a/database1/dpdump
mkdir -p /oradba/app/oracle/acfsmounts/global/STREAM1a/database1/exp
ln -s $ORACLE_BASE/acfsmounts/global/STREAM1a/database1/backup $ORACLE_BASE/admin/database1/backup
ln -s $ORACLE_BASE/acfsmounts/global/STREAM1a/database1/dpdump $ORACLE_BASE/admin/database1/dpdump
ln -s $ORACLE_BASE/acfsmounts/global/STREAM1a/database1/exp $ORACLE_BASE/admin/database1/exp
그런 다음 다음 명령을 사용하여 이전 STREAM 디렉터리의 데이터를 새 STREAM 디렉터리로 복사합니다.
cp -p -r /oradba/app/oracle/acfsmounts/global/STREAM##/database1/ /oradba/app/oracle/acfsmounts/global/STREAM1a/.
하지만 이전 STREAM 디렉터리의 위치를 반영하도록 ##을 바꿔야 했기 때문에 명령은 다음과 같습니다.
cp -p -r /oradba/app/oracle/acfsmounts/global/STREAM2a/database1/ /oradba/app/oracle/acfsmounts/global/STREAM1a/.
이전 STREAM 디렉터리에 대한 정보를 캡처하는 방법앞으로내 복사 명령이 연결 해제되도록자동으로바꾸다##이전 STREAM 디렉터리의 올바른 위치는 무엇입니까? 이전 심볼릭 링크를 할당한 다음 복사 명령에서 참조할 수 있는 Unix/Linux 변수가 있습니까?
답변1
링크 정보를 읽고 이전 파일 대상을 변수에 저장하려면 readlink 명령을 사용하십시오.
OLDBACKUP=`readlink $ORACLE_BASE/admin/database1/backup`
OLDDUMP=`readlink $ORACLE_BASE/admin/database1/backup`
OLDEXP=`readlink $ORACLE_BASE/admin/database1/exp`
NEWBACKUP="/oradba/app/oracle/acfsmounts/global/STREAM1a/database1/backup"
NEWDUMP="/oradba/app/oracle/acfsmounts/global/STREAM1a/database1/dpdump"
NEWEXP="/oradba/app/oracle/acfsmounts/global/STREAM1a/database1/exp"
unlink $ORACLE_BASE/admin/database1/backup
unlink $ORACLE_BASE/admin/database1/dpdump
unlink $ORACLE_BASE/admin/database1/exp
mkdir -p $NEWBACKUP
mkdir -p $NEWDUMP
mkdir -p $NEWEXP
ln -s $NEWBACKUP $ORACLE_BASE/admin/database1/backup
ln -s $NEWDUMP $ORACLE_BASE/admin/database1/dpdump
ln -s $NEWEXP $ORACLE_BASE/admin/database1/exp
cp -p -r $OLDBACKUP $NEWBACKUP
cp -p -r $OLDDUMP $NEWDUMP
cp -p -r $OLDEXP $NEWEXP