본문으로 건너뛰기

리눅스 백업 설정

백업만 잘 되어 있다면 언제든 실수로 파일을 지웠거나 해킹에 의한 데이터 망실 또는 랜섬웨어에 걸리더라도 언제든 복구가 가능할 것입니다.
그렇기에 서버관리자는 서버를 운영함에 있어 백업을 항상 염두해 계셔야 합니다.

DR 백업 서비스 이용 방법은 FTP 를 이용하여 파일을 전송하는 방법과 CIFS 마운트 (samba) 를 이용하여 데이터를 전송하는 방법이 있습니다.
그 두 가지 방법중 원하는 방법을 선택하여 스크립트를 만들고, cron 스케쥴러에 등록을 하면 설정한 주기로 데이터가 자동으로 백업 되어 집니다.

주의사항

백업 스크립트로 백업을 하실 경우에는 서버 관리자가 보고 있지 않은 상황에서 백업 명령이 일괄 처리되기 때문에 백업 공간이 꽉 차있는 상태에 있거나 백업 대상이 없는 경우, 스케쥴러가 동작하고 있지 않은 경우 등 여러가지 상황을 이유로 백업이 되지 않는 경우가 생길 수 있습니다.
백업 스크립트를 작성해서 운영하실 경우, 주기적으로 백업이 잘 되고 있는지 확인하시기 바랍니다.

본 매뉴얼에서는 리눅스에서 DR (Disaster Recovery) 백업 서비스 이용하는 방법을 설명 드립니다.

FTP 전송

FTP 접속을 하기 윈한 client 파일을 설치합니다.

# yum -y install lftp

관리 콘솔에서 확인한 '백업 서버 호스트명'과 '백업 계정명'을 이용하여 DR백업 서버에 접속합니다.
접속 후 사용 가능한 명령어는 아래와 같습니다. 더욱 다양한 옵션은 man lftp 명령을 통해 확인이 가능합니다.

ex) lftp -u [계정명] [백업서버 호스트]]

 # lftp -u testuser dr1.iwinv.kr
비밀번호: {비밀번호}



lftp testuser@dr1.iwinv.kr:~> ls // 파일 리스트 출력
-rw-r--r-- 1 1002 500 1843 Jul 09 01:52 README



lftp testuser@dr1.iwinv.kr:/> get README // 파일 다운로드
1843 bytes transferred



lftp testuser@dr1.iwinv.kr:~> put iwinv.zip // 파일 전송
1034 bytes transferred



lftp testuser@dr1.iwinv.kr:/> mkdir 20190709 // 백업서버에 디렉토리 생성
mkdir 성공, `20190709' 만들었습니다


lftp testuser@dr1.iwinv.kr:/> cd 20190709 // 백업서버에서 디렉토리 이동
cd 성공, cwd=/20190709



lftp testuser@dr1.iwinv.kr:/20190709> lcd /home // 운영서버에서 디렉토리 이동
lcd 성공, 지역 cwd=/home



lftp testuser@dr1.iwinv.kr:/20190709> mirror -Ra // 데이터 전송 (운영서버 디렉토리 내용을 백업 서버로 전송)
Total: 3 directories, 4 files, 0 symlinks
New: 4 files, 0 symlinks
442 bytes transferred



lftp testuser@dr1.iwinv.kr:/> exit // 종료
주의 사항

위 예제를 대신하여 mirror -Rae 라고 입력하면 erase 옵션이 추가되므로, 원본 서버 (로컬) 에 없는 파일은 백업 서버 (원격지) 에서도 지워주게 됩니다.

R (reverse) 옵션과 e (erase) 옵션은 실수로 인한 데이터 망실 가능성이 있으므로 충분한 테스트를 거쳐 사용하시기 바랍니다.

CIFS (samba) 마운트

  1. samba 디렉토리를 마운트 하기 위해서는 cifs-utils 패키지가 필요합니다.
 # yum -y install cifs-utils
  1. 마운트할 디렉토리를 생성합니다.
 # mkdir /backup
  1. 삼바 디렉토리를 로컬 디렉토리로 마운트 합니다.

ex) mount -t cifs -o username=[계정명],password='[패스워드]',vers=3.0 //[백업서버 호스트명]/[계정명] [마운트할 디렉토리]

# mount -t cifs -o username=testuser,password='12345678',vers=3.0 //dr1.iwinv.kr/testuser /backup

# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 25G 1.4G 24G 6% /
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 8.4M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
tmpfs 380M 0 380M 0% /run/user/0
//dr1.iwinv.kr/testuser 100G 48K 100G 1% /backup
  • 운영 서버에 따라 vers=2.0 또는 vers=3.0 으로 접속 합니다.
    버전이 낮은 OS 의 경우 환경에 따라 vers=3.0 이 아닌 sec=ntlmssp 로 연결이 가능 합니다
    이경우 df 명령으로 서비스 제공받는 용량이 (quota size) 확인되지 않으나, iwinv 관리 콘솔에서 실시간 확인이 가능합니다.
  1. cp 나 scp, rsync 등의 명령으로 파일을 복사합니다.
# rsync -avzPog /home/ /backup/20190709/
  • 옵션 추가 설명
    위 예제에서 --delete 옵션을 추가하게 되면 원본 서버 (로컬) 에 없는 파일은 백업 서버 (원격지) 에서도 지워주게 됩니다.
    사용시 데이터 원본 위치랑 백업 디렉토리 위치를 변경해서 사용하지 않도록 주의해야 합니다.
  1. 백업이 완료된 후, 디렉토리를 언마운트를 합니다.
# umount /backup
주의사항

백업 종료시 언마운트를 하지 않고 마운트를 해 놓은채 매일 백업스크립트를 이용하여 백업할 경우
네트워크 순단이나 데몬 재시작 등 여러가지 이유로 인해 마운트가 해제되고, 백업이 되지 않을 수 있습니다.
백업 스크립트 상단에 마운트, 하단에 언마운트 명령을 이용하여 작성 하는것을 권해드립니다.