RSS구독하기:SUBSCRIBE TO RSS FEED
즐겨찾기추가:ADD FAVORITE
글쓰기:POST
관리자:ADMINISTRATOR
Linux  2006/09/08 14:07
출처 블로그 > 폴라리스
원본 http://blog.naver.com/neodays/20015909378
1. 실행 파일
아래의 소스를 복사해서 lbup 파일로 /usr/local/bin같은 곳에다 만듭니다.
(퍼미션은 적당히...)

2. 백업 프로파일 만들기
"/usr/local/backup/lbup"이라는 디랙토리를 만들고 여기에 일/주/월 백업 목록을 만듭니다.
daily.prof
weekly.prof
monthly.prof
(백업 프로파일을 만들때 줄 처음의 '#'은 코맨트 입니다.)
백업 대상이 파일인 경우는 파일명까지 디랙토리인 경우는 디랙토리까지 넣어줍니다.(너무 당연한가?)

3. 크론등록
전 크론에 등록해 놓고 씁니다만 이 부분은 알아서들 하시길


4. 작성된 압축파일들은 lbup 디랙토리에 저장되고 이전의 백업파일들은 뒤에 번호가 자동으로 붙어서 관리됩니다.

[소스]
#!/bin/bash
#######################################################################
# lbup - Linux Backup System                                          #
#                                                                     #
# version 0.0.4                                                       #
#                                                                     #
# March 31, 2003                                                      #
#######################################################################

# To set basic environment and default values for variables
defaultpath="/usr/local/backup/lbup"
profile="default.prof"
destroot="/usr/local/backup/lbup/root"
defaultoption="day"

# Function named
checksystem() {

  echo -n "[c] checking user name to run this shell script .................... "
  if [ $USER='root' ]; then
   echo "ok"
  else
   echo "failure"
   exit 0
  fi
 
  echo -n "[c] checking option to select profile ..*........................... "
  case $option in
   -month)
     echo "ok"
     profile="monthly.prof"
     ;;
   -week)
     echo "ok"
     profile="weekly.prof"
     ;;
   -hour)
     echo "ok"
     profile="frequently.prof"
     ;;
   -day)
     echo "ok"
     option="-day"
     profile="daily.prof"
     ;;
   -help)
     echo "ok"
     echo "    - usage: lbup [-month|-week|-day|-hour]"
     echo "        -month: monthly backup"
     echo "        -week : weekly backup"
     echo "        -day  : daily backup(default)"
     echo "        -hour : frequently backup"
     echo "        -help : to see this screen"
     exit 0
     ;;
   *)
     echo "none"
     echo "    - proper usage: lbup [-month|-week|-day|-hour]"
     echo "    - I will use the profile of [-day] as default."
     option="-day"
     profile="daily.prof"
  esac
  backupfile="lbup$option.tar.gz"

  echo -n "[c] checking backup file to resolve old version .................... "
  if [ -f $defaultpath/$backupfile ]; then
   echo "exist"
   count=1
   dupname="lbup$option-$count.tar.gz"
   while [ -f "$defaultpath/$dupname" ]
   do
     count=`expr $count + 1`     
     dupname="lbup$option-$count.tar.gz"
   done
   mv $defaultpath/$backupfile $defaultpath/$dupname
   echo "    - rename last back-up file to $dupname"
  else
   echo "ok"
  fi
 
  echo -n "[c] checking destination directory ................................. "
  if [ -d $defaultpath ]; then
   echo "ok"
  else
   echo "failure"
   echo "    - create a directory for destination: $defaultpath"
   mkdir $defaultpath
  fi

  echo -n "[c] checking profile file .......................................... "
  if [ -f $defaultpath/$profile ]; then
   echo "ok"
   cp $defaultpath/$profile $defaultpath/default.prof
  else
   echo "not found"
   exit 0
  fi

}

# Start of program
echo
echo "= LBUP - Linux Backup System ==========================================="
echo
option=$1
checksystem
echo
echo "[STATUS]"
# Retrive backup list from the profile file
comd="tar cfz $defaultpath/$backupfile"
cat "/dev/null" > $defaultpath/temp.list

for backup in `grep -v ^# $defaultpath/$profile | cat -`
do
  detect=`echo "$backup" | grep '^#'`
  if [ -z $detect ]; then
   echo -ne "  .................................................................."
   if [ -f $backup ]; then
     echo -ne $"\\033[0;36m" "OK" $"\\033[0;0m" "\r"
     echo -n "$backup " >> $defaultpath/temp.list
     #cp $backup $destroot$backup
   elif [ -d $backup ]; then
     echo -ne $"\\033[1;37m" "check" $"\\033[0;0m" "\r"
     echo -n "$backup " >> $defaultpath/temp.list
   else
     echo -ne $"\\033[1;31m" "SKIP" $"\\033[0;0m" "\r"
   fi
   echo "  $backup  "
  fi
done
echo
filelist=`cat $defaultpath/temp.list`
rm $defaultpath/temp.list

execcomd=`echo $comd $filelist`
exec $execcomd
2006/09/08 14:07 2006/09/08 14:07
이 글에는 트랙백을 보낼 수 없습니다
웅쓰:웅자의 상상플러스
웅자의 상상플러스
전체 (379)
게임 (5)
영화 (2)
기타 (23)
맛집 (5)
영어 (2)
대수학 (3)
형태소 (5)
Hacking (9)
Linux (112)
HTML (48)
Application_developing (48)
Web_developing (102)
Window (11)
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
  1. 2016/01 (1)
  2. 2015/12 (3)
  3. 2015/10 (3)
  4. 2015/03 (2)
  5. 2015/01 (4)