rsync -avzru --exclude=*.sql --exclude=*.zip root@xxxxxxxx::web ./
rsync를 사용하여 백업시
특정 파일 또는 디렉토리를 제외하고 백업을 하려면
--exclude=*.확장자
--exclude=파일명(디렉토리명)
http://devanix.tistory.com/246 여기서 참조.
[ ssh를 사용하여 tar아카이브 백업 ] | ||||
♧ OpenSSH(www.ppenssh.org)는 안전한 원격 로그인, 원격 실행, 그리고 네트워크 인터페이스를 통해 원격지로 파일을 복사할 수 있는 툴들을 제공.
▶ 원격 시스템의 파일을 → 로컬 시스템으로 복사.
☞ 원격지 시스템에서 실행한 tar 명령어(파일을 압축된 아카이브로 생성)의 표준출력 스트림을 파이프로 보내고 ssh 명령어를 통해 로컬시스템으로 전달한 뒤 로컬의 tar 명령어로 풀어냄. (로컬 디렉토리에 동일한 파일이 있을 경우 덮어쓰기 함)
▷ 로컬 시스템의 파일을 → 원격 시스템으로 복사.
☞ 원격지 시스템에 있는 특정 디렉토리로 이동하기 위해 cd명령 추가.
▶ 원격 시스템에서 전송받은 압축 파일을 풀어내지 않고 tgz 파일로 저장.
☞ server1에 devanix사용자의 홈 디렉토리에서 myfile로 시작하는 모든 파일을 압축한 뒤 로컬 시스템에 myfiles.tgz로 저장.
▷ 로컬 시스템의 압축한 파일을 원격 시스템에 tgz파일로 전송.
|
[ rsync를 사용하여 파일 백업] | ||||
♧ rsync는 체크섬을 사용하여 원격지 파일과 로컬 파일을 작은 블록 단위로 비교해 백업을 수행.
rsync 명령어는 원격 쉘 프로그램인 ssh를 이용하거나 원격 서버에서 실행되는 rsyncd데몬을 통해 동작할 수 있다.
▶ ssh를 통해 원격 디렉토리와 동일한 로컬 디렉토리(미러)를 만드는 rsync 예제 :
☞ (-a 옵션) : 원격지 디렉토리 이하의 모든 파일을 재귀적으로 복사. ☞ (-v옵션) : 명령어가 실행되는 동안 보다 상세한 정보 출력. ☞ (-z 옵션) : 압축 옵션. ☞ (--delete) : rsync 원격 시스템에 존재하지 않은 파일은 로컬에서도 삭제. (rsync는 기본적으로 변경된 파일만 백업하기 때문에, 원격지에서 파일이 삭제된 경우, 아무런 조치를 취하지 않는다. 따라서 --delete 옵션을 사용해 더 이상 백업할 필요가 없는 파일을 삭제해 준다)
▶ 매주 rsync를 이용하여 백업.
☞ 원격시스템 server1의 /home/devanix/data 디렉토리의 모든 파일이 로컬 디렉토리 /var/backups/current-backup으로 복사. ☞ 당일 변경된 모든 파일은 /var/backups/backup-Monday와 같은 형태로 복사. ☞ 한 주 동안, 과거 7일간의 변경사항이 반영된 7개의 디렉토리가 생성 된다.
▶ 하드링크를 이용해 백업.
☞ 지난 backup-old 디렉토리 내용을 지우고, ☞ 기존의 backup-current 디렉토리 백업내용을 backup-old 디렉토리로 이동. ☞ 이렇게 2주가 지난 backup-old 디렉토리는 지난주 백업된 backup-current로 대체될 것이다. ☞ 새로운 백업은 rsync를 --link-dest 옵션과 함께 실행해 만든다. 원격시스템 server1의 data/ 디렉토리에서 새로 백업한 파일이 이전 백업(이제는 backup-old에 저장)과 동일한 경우, 해당 파일을 backup-current에 backup-old 디렉토리 간에 하드링크를 생성.
▷ 두 디렉토리간 하드링크를 통해 많은 디스크 공간을 절약할 수 있다. 만약 양쪽 디렉토리에 file1.txt 파일을 가지고 있다면, 다음 명령어를 통해 해당 파일의 inode가 하나의 동일한 물리적 파일을 향하는 것을 확인할 수 있다.
|
'Server Story.... > script' 카테고리의 다른 글
find 하여 특정 기간만큼 삭제 time awk (0) | 2014.09.15 |
---|---|
Windows 2003 ipsec command (0) | 2014.01.12 |