미니옵빠의 code stubs

리눅스 - cron 이용한 로컬 백업 스크립트 본문

OS/Linux

리눅스 - cron 이용한 로컬 백업 스크립트

미니옵빠 2011. 8. 28. 19:30
출처 i`m a Kelevra But thats Ok | 시공포착
원문 http://blog.naver.com/storm99m/150000856368

리눅스 서버 2대에 사용중이다.

 

일주일간의 주요 파일과 /home 밑의 각 파일을 백업하고 7일지난후에 자동으로 삭제해주는

 

초간단. 쉘 스크립트.

 

cron에 백업하고 싶은 시간대에 넣어주는 센스만 발휘하자.

 

       #!/bin/bash
       export Today="`date '+%y-%m-%d'`"
      
     
       ########### Old BackupData Delete ####
       dirlists=`/bin/ls -t /backup/home 2>/dev/null`
       i=1
       for dir in $dirlists ; do
         if [ "$i" -ge 7 ] ; then
          /bin/rm -rf /backup/home/$dir
        fi
        i=$(($i+1))
      done
     
     
      ################ New Today Mkdir ####
      /bin/mkdir -p /backup/home/$Today
      d /backup/home/data/$Today
     
      ################ HomeData backup ####
      tar cvfpz /backup/home/$Today/way.tar.gz /home/way
     
      ################ System Backup ####
      tar cvfpz /backup/home/$Today/system_backup.tar.gz /usr/local/apache/conf/httpd.conf /usr/local/proftpd/etc/proftpd.conf /etc/passwd /        etc/mail/access
     
     
      ############# Make Link####
      rm -f /backup/linkhome
      ln -s /backup/home/$Today /backup/linkhome
    

 

 

이상 쉘스크립트이고

 

cron에 어떻게 등록하는지 모르는 사람을 위해 한자 더적어보면

(cron 에 관한 자세한건 참고도서나 superuser.co.kr 에서 찾아보길.)

 

\crontab -e

 

아랫줄 추가

00 07 * * * su - root -c '/root/bin/nam_back.sh' >& /dev/null

 

하고 저장 후 테스트 해보기위해서는 root/bin/에 스크립트(명)을 실행해본다.

 

가장 간단한 테스트 방법이다. 그럼 결과는 /back/밑에 있을것.


 

---------------------------------------------------------

 

몇몇 분이 퍼가셨는데 위는 단순히 html 등의 서버상의 파일만 백업합니다.

간단하게 mysql 파일도 백업한것을 올려두었으니 참고하세요.

백업은 다른 물리적파티션(다른하드에)하는것이 가장좋다고들 하지만

여유가 없기에 일단은 같은 내부의 다른파티션에 백업하고 있습니다.