- 백업( Backup) 의 개념
데이타나 정보가 지닌 가치를 보존하는 것으로 외부의 침입자로부터 보호, 예기치 못한 사 고로부터의 복원, 시스템 백업은 매일 해야 한다.
(주의) 백업시간 && 복구시간
백업은 복구를 위해서 존재한다. 하지만 백업은 거의 매일 같이 하고, 복구는 일년에 한번 있을까 말까하는 작 업이다. 백업시간이 긴 형태로 작업을 하면 보통은 복구시간은 줄어 들고, 백업시간을 짧게 하는 방식을 택하 면 보통은 복구시간이 길어 진다. 따라서 백업시간과 복구시간은 적당하게 조절할 필요가 있다.
- 백업( Backup ) 의 종류
- 백업 ( Backup ) 명령어
(주의) 백업을 받을땐 절대 경로로 받지 않는다.
절대경로로 받으면 압축을 풀때 그 경로로 압축이 풀린다.
만약 현재파일과 백업된 파일을 비교하려고 백업된 압축을 풀면 현재 파일에 오버라이트 되어버려 현재 파일을 다 날려버릴 수 있다.
# ls /backup
2017-09-06.list 2017-09-06-full.tar.gz
# ls /backup
2017-09-06.list 2017-09-06-full.tar.gz 2017-09-07.tar.gz
- 복구
( Full Backup )
# cd /home
# tar -g /backup/2017-09-06.list -xvzf /backup/2017-09-06-full.tar.gz
( Incremental Backup )
# cd /home
# tar -g /backup/2017-09-06.list -xvzf /backup/2017-09-07.tar.gz
( 복구 순서 )
2017-09-06-full.tar.gz -> 2017-09-07.tar.gz -> 2017-09-08.tar.gz ...
오래된것부터 차례대로 순서에 맞게 받아야한다.
[예] 데이터 마이그레이션 /test1/* ------ migration ------> /test2/*
cp 명령어로 옮기면 될까?
# ls -al /test1 /* 여러 파일을 만들어서 확인 */
|
합계 120 drwxr-xr-x 3 root root 4096 9월 7 04:38 . drwxr-xr-x 30 root root 4096 9월 7 04:37 .. -rw-r--r-- 1 root root 176 9월 7 04:38 .file4 drwxr-xr-x 2 root root 4096 9월 7 04:38 dir1 -rwxrwxrwx 1 root root 1904 8월 21 03:42 file1 lrwxrwxrwx 1 root root 5 9월 7 04:38 file2 -> file1 -rwxr-xr-x 1 user01 user01 93560 9월 7 04:38 file3 |
|
# cp -r /test1/* /test2
# ls -al /test2
|
합계 116 drwxr-xr-x 3 root root 4096 9월 7 04:41 . drwxr-xr-x 30 root root 4096 9월 7 04:37 .. drwxr-xr-x 2 root root 4096 9월 7 04:41 dir1 -rwxr-xr-x 1 root root 1904 9월 7 04:41 file1 lrwxrwxrwx 1 root root 5 9월 7 04:41 file2 -> file1 -rwxr-xr-x 1 root root 93560 9월 7 04:41 file3 |
|
-> file1의 퍼미션이 다르다.
-> file3의 소유자 그룹소유자가 다르다.
-> 모든 파일의 생성 시간이 새로 쓰여졌다.
-> .file4 숨김 파일은 복사되지 않았다.
/* 이러한 오류는 서비스 할때 치명적인 오류로 작용할 수 있다. */
(해결방법) /test1/* 을 백업받고 /test2 에 압축을 푼다
# cd /test1
# tar cvf - . | ( cd /test2 ; tar xvf - ) /* - : stdout (monitor) */
-> 현재폴더에 있는 것을 tar 명령어로 압축한다. 압축은 - ( monitor ) 로 한다.
-> cd /test2 로 가서 앞에 모니터에 압축해놓은 것을 해제한다.
-> 파일을 만드는 것보다 시간을 줄일 수 있다.
[확인] 마이그레이션이 잘 됬는지 확인
# find /test1 | wc -l # find /test2 | wc -l
# diff --recursive /test1 /test2
[예] tar 명령어를 이용한 운영체제 전체 백업
운영체제를 백업할때 /proc , /mnt , /media , /tmp 디렉토리는 할 필요가 없다.
-> 임시파일과 마운트는 딱히 할 필요가 없다.
(명령어 형식)
# tar cvzpf /backup<백업파일명>.tar.gz --exclude=<제외할 디렉토리> --absolute-name /
(수행)
# mkdir -p /RootBackup /* 백업 파일을 저장할 디렉토리 생성 */
# tar cvzf /RootBackup/full_backup.tar.gz \
> --exclude=/proc --exclude=/tmp \
> --exclude=/media --exclude=/RootBackup \
> --absolute-name /
(주의) /* --exclude=/RootBackup -> 백업받을 디렉토리는 백업받지 않는다. 추가하지 않으면 데이터가 full 날 수 있다. */
- rsync 서비스
|
Options -a, --archive archive mode; same as -rlptgoD (no -H) -v, --verbose increase verbosity -z, --compress compress file data during the transfer --delete delete files that don't exist on the sending side -r, --recursive recurse into directories -I, --ignore-times don't skip files that match in size and mod-time -p, --perms preserve permissions -o, --owner preserve owner (super-user only) -g, --group preserve group -t, --times preserve times -D same as --devices --specials |
|
|
EXAMPLES A simple rsyncd.conf file that allow anonymous rsync to a ftp area at /home/ftp would be: [ftp] path = /home/ftp comment = ftp export area A more sophisticated example would be: uid = nobody gid = nobody use chroot = no max connections = 4 syslog facility = local5 pid file = /var/run/rsyncd.pid [ftp] path = /var/ftp/pub comment = whole ftp area (approx 6.1 GB) [sambaftp] path = /var/ftp/pub/samba comment = Samba ftp area (approx 300 MB) [rsyncftp] path = /var/ftp/pub/rsync comment = rsync ftp area (approx 6 MB) [sambawww] path = /public_html/samba comment = Samba WWW pages (approx 240 MB) [cvs] : |
|
# vi /etc/rsyncd.conf
|
uid=nobody /* 사용자 아이디 */ gid=nobody /* 그룹 아이디 */ use chroot=no /* yes : 지정된 경로 이외에 다른 경로로 접속 못하게 함 */ max connections=5 /* 최대 접속자 수 : 0은 무제한을 나타냄 */ timeout=60 /* Client의 접속이 idle상태일 때 접속을 끊어버릴 초 단위 시간 */ [Backup] /* rsync 서비스명 */ comment=Rsync Backup Server /* rsync 서비스에 대한 설명 */ path=/backup1 /* 미러링될 데이터의 경로 (대상파일경로) */ read only=no /* yes : 다운로드 가능 / no : 업로드 가능 */ |
|
# chkconfig rsync on
# service xinetd restart
[확인]
# cat /etc/services | grep rsync
|
..... rsync 873/tcp # rsync rsync 873/udp # rsync ...... |
|
- Client
# rsyn -avz --delete -e ssh IP::Backup /bakup1
'Linux > Linux Server' 카테고리의 다른 글
FreeRadius OTP 인증 서버 만들기 (0) | 2019.03.21 |
---|---|
raw 디스크 부팅시 자동 연결 (0) | 2019.03.21 |
스케줄링 관리 (0) | 2017.09.05 |
사용자 그룹 관리 (0) | 2017.09.05 |
부팅과정 (0) | 2017.09.04 |