블로그 > 폴라리스 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 |
이 글에는 트랙백을 보낼 수 없습니다
0