2014-03-20

우분투 > iptime NAS-II 폴더 백업

1. 삼바 서버로 우분투 서버를 사용하고 있고 권한 설정으로 보안 설정이 되어 있다.
1-1. 우분투 서버에서 iptime의 NAS-II 공유폴더 모든 권한 폴더의 파일을 백업 할때.

2. iptime의 NAS-II 공유폴더를 보안 폴더 설정 되어 있다. 

1의 폴더를 매일 2로 백업 하기 위한 작업은 다음과 같다. 
우선, 윈도우 공유 폴더를 우분투에서 마운트 한다.
 mount -t cifs //192.168.10.190/업무폴더 ./shared/ -o username=XXXX,password=XXXX -o iocharset=utf8

1-1
마운트 할 폴더 만들기
mkdir /mnt/cwnas/public

마운트 테스트
mount -t cifs //192.168.10.190/공용폴더 /mnt/cwnas/public/ -o iocharset=utf8

부팅시 자동 마운트 설정
nano /etc/fstab
//192.168.10.190/공용폴더 /mnt/cwnas/public cifs username=$$$,password=$$$,iocharset=utf8,sec=ntlm 0 0
##모든권한의 공유폴더이기때문에 사용자와 비밀번호는 '$$$' 처리한다.

 nano /etc/fstab
 UUID=ffad23d6-0360-4b3a-8a4b-ec57f26f4611 none swap sw 0 0 /dev/md1 /mnt/md1 ext4 defaults 1 2
//192.168.10.190/업무폴더 /mnt/cwnas/ cifs username=XXXX,password=XXXX,iocharset=utf8,sec=ntlm 0 0 ## 추가할 라인 마운트가 되었다면 백업 스크립트를 작성한다.

nano /usr/bin/cwexbackup.sh
#! /bin/bash
# script to create a tar backup file
# of the ubuntu server device
# directory to place backups
BACKUPDIR=/mnt/cwnas/backup 

# file name YYYY-MM-DDHH:MM:SS.tgz
BACKUPNAME=`date +%F%T`.tar

# remove dashes and colons from file name
BACKUPNAME=${BACKUPNAME//[-|:]/}

# root directroy for the backup
SOURCE=/mnt/md1/gr/insa/

# number of sets to kepp : 백업 파일 갯수 지정
NUMSETS=5 

# perform the backup
tar -cvpzf $BACKUPDIR/$BACKUPNAME $SOURCE

# delete older files greater than $NUMSET
cd $BACKUPDIR LINS=$((NUMSETS + 1))
if [[ $(ls $BACKUPDIR | wc -l) > $NUMSETS ]]
then
 stat -c "%Y %n" * | sort -rn | tail -n +"$LINS" | \
 cut -d ' ' -f 1 --complement | xargs -d '\n' rm
fi
 작성된 스크립트의 실행 적용을 위해 chmod를 설정 해 준다 chmod +x /usr/bin/cwexbackup.sh 작동 테스트를 해 본다.
 /usr/bin/dbbackup.sh
 이제 자동으로 스크립트가 실행 되게 설정한다.
 nano /etc/crontab
 00 18 * * * root /usr/bin/cwexbackup.sh 
18시 00분에 스크립트를 실행하라는 것이다.
M(시간) h(시간) * * * (실행할 사용자권환) (실행할 파일이나 할 명령어)
 급한데로 마운트를 해서 파일을 압축하여 백업 하는 방법을 사용해 보았다.
복사된 파일은 날짜 기준으로 파일명이 정해지고 5개가 초과 되면 오래된 파일부터 삭제 되는 스크립트이다.
즉, 매일 1회씩 실행되는 스크립트이니 6일전의 파일은 삭제가 되고,
최근 5일간의 파일이 보관되어 있는 시스템이다.