[리눅스서버] rsync로 서버이전시에 서버에 있는 DATA 소유권/권한 관련 문제
서버이전시에 서버에 있는 DATA를 옮기다 보면 소유권/권한 관련 문제들이 자주 발생 합니다.
DATA 이전 후에 맞춰 주는 방법도 있으나, 좀 더 간단한 방법이 있습니다.
기존 서버에 있는 DATA를 이전 할 때 해당 DATA의 소유권 및 권한을 그대로 복사 하게 되면,
DATA복사 이후의 소유권과 권한을 맞춰주는 작업은 따로 진행 하지 않아도 됩니다.
rsync명령은 보통 파일 백업시에 사용 하는 명령인대 보통은 rync.conf파일을 편집해서 자동으로 백업 할 때 사용을 합니다.
그러나, 이전 작업시에 사용하기에는 rsync를 설정하고 하는 적용시키는 시간이 더 걸리는 문제가 있습니다.
아래에 있는 명령은 별다른 셋팅 없이 해당 서버에서 DATA를 소유권과 파일 권한/디렉토리 권한을 그대로 옮기는 명령 입니다.
rsync -avr -e "ssh -p SSH포트"
아이디@소스서버IP:소스디렉토리 타겟디렉토리
a옵션은 Archivibg 옵션으로 파일의 소유권/권한을 유지하는 옵션입니다.
v옵션은 Verbose 옵션으로 자세한 정보를 보여주는 옵션 입니다.
r옵션은 Recursive 옵션으로 하위 디렉토리를 포함하는 옵션 입니다.
u옵션은 update only 새로운 파일을 덮어쓰지 않는 옵션입니다.
t옵션은 변경시간 전송 (이것이 없으면 전송한 시간으로 바뀜)
e옵션은 SSH를 사용하기 위한 옵션으로 “”안에 ssh접속 관련 정보를 넣어주면 됩니다.
--delete 옵션은 서버쪽에는 없고, 클라이언트측에는 있는 파일이 있을경우 해당 파일을 삭제하는 옵션 입니다.
위의 옵션으로 보면 약간의 옵션 조절 만으로 원하는 방식으로 DATA의 동기화 및 이전 작업을 진행 할 수 있게 됩니다.
만약 하위 디렉토리는 포함 하지 않는방식으로 진행을 한다면, 간단하게 r옵션만을 제거 하면 해당 디렉토리의 하위 디렉토리는 포함하지 않습니다.
rsync -av -e "ssh -p SSH포트"
아이디@소스서버IP:소스디렉토리 타겟디렉토리
예) 0.0.0.1번 서버의 /home/httpd의 DATA를 0.0.0.2번 서버의 /home/httpd로 이전시 명령 (SSH포트는 22000번)
0.0.0.1번 서버에서 작업시 에는 타겟 디렉토리에 접근하기 위해서 SSH로 접근을 해야 하기 때문에 아래와 같이 진행 합니다.
rsync -avr -e "ssh -p 22000" /home/httpd
USERID@0.0.0.2:/home/ 0.0.0.2번 서버에서 작업시 에는 소스 디렉토리에 접근하기위해 SSH에 접근 해야 하기 때문에 아래와 같이 진행 합니다.
rsync -avr -e "ssh -p 22000"
USERID@0.0.0.1:/home/httpd /home/