홈 › 리눅스 운영 › 12 / 13

백업·복구 (설정·릴리스·DB 덤프)

섹션 7진행 0 / 13

6. 연습 문제

문제 1. 대상 정하기

/opt/myapp 아래에서 백업할 것과 뺄 것을 나누고 이유를 한 줄씩 쓰세요.

conf/ 와 current/app.jar 는 넣습니다. 복원 불가하고 롤백에 필요합니다. logs/ 와 run/ 은 뺍니다. 재생성되고 크며 열린 파일이라 불완전합니다. releases/ 는 현재 것만 current 로 대신합니다.

문제 2. 검증 두 줄

x.tgz 와 x.tgz.sha256 이 있을 때 손상 여부를 확인하는 명령 두 줄을 쓰세요.

bash
sha256sum -c x.tgz.sha256
tar tzf x.tgz > /dev/null

첫 줄은 내용 변경, 둘째 줄은 잘림을 잡습니다.

문제 3. 설정 되돌리기

어제 백업에서 application.yml 만 꺼내 운영과 비교하는 명령을 쓰세요.

bash
tar xzf /backup/myapp/myapp-20260910_023000.tgz -C /tmp/r ./conf/application.yml
diff /tmp/r/conf/application.yml /opt/myapp/conf/application.yml

파일 하나만 꺼내면 빠르고 운영은 건드리지 않습니다.

문제 4. cron 두 줄

매일 02:30 백업, 03:00 원격 동기화를 myapp 계정으로 실행하고 로그를 남기는 cron.d 내용을 쓰세요.

text
PATH=/usr/local/bin:/usr/bin:/bin
30 2 * * *  myapp  /opt/myapp/bin/backup.sh run >> /var/log/myapp/backup.log 2>&1
0 3 * * *   myapp  rsync -az /backup/myapp/ backup-host:/backup/app1/ >> /var/log/myapp/backup.log 2>&1

rsync 가 비밀번호 없이 되려면 myapp 계정의 ssh 키가 백업 서버에 등록돼 있어야 합니다.

문제 5. RPO 계산

DB 덤프를 6시간마다 하고 설정은 매일 백업합니다. 각각의 RPO 와, RPO 를 1시간으로 줄이려면 무엇을 바꿔야 하는지 쓰세요.

DB 는 최대 6시간, 설정은 최대 24시간을 잃을 수 있습니다. 1시간으로 줄이려면 cron 을 0 * * * * 로 바꾸되 덤프 시간과 디스크 사용량이 감당되는지 먼저 확인합니다. 설정은 바꿀 때마다 4.1 의 한 줄 백업을 습관화하면 RPO 가 사실상 0 입니다.