본문 바로가기

Dev/Dev:: Linux

[Day007] Linux 7일차 - Quiz 및 데이터 백업


  문제) 매일 오전 6시 20분에 타임서버(time.bora.net)을 이용하여 시간이 동기화 되도록 설정해 주세요.


      ]# crontab -e

      20  06  *  *  *  rdate -s time.bora.net


      ]# date 091106192013    =>  시간 변경 후 1분후 시간 확인




    => 데이타 백업 : 증분(incremental)백업,업데이트(update)백업,증가분(differential)백업 : 압축프로그램을 이용


      ※ 백업 관련 정보를 사용  =>  날짜정보를 활용

       ]# date +%Y%m%d      =>  date에 의해 출력될 패턴을 지정

       20130911


       ]# date --date '2 months ago' +%Y%m%d    =>  2달전 date 정보를 패턴에 맞게 출력

       20130711

      

       ]# date +%a     =>  요일 출력 

       수 


       ]# today=$(date +%Y%m%d)     =>  시스템변수 today에 데이타를 저장


       ]# echo $today       =>  echo 명령을 이용하여 시스템변수 today의 데이타를 화면에 출력



       ]# tar cvzf etc_$today_fullbackup.tar.gz /etc   => /etc 디렉토리를 백업

          => 압축파일명 :etc_20130911_fullbackup.tar.gz




     ※ 증분백업를 위한 ShellScript 프로그램 작성 => tar 명령에 -g 옵션을 활용



       ]# vi backup.sh

       #!/bin/bash

       backup_dir=/backup

       time=$(date +%Y%m%d%H%M)

       day=$(date +%a)

       backup_source=/home


       if [ ! -d $backup_dir ]

       then

               mkdir $backup_dir

       fi


       if [ $day = "일" ]

       then

               rm -f $backup_dir/home.backup.list

               tar -g $backup_dir/home.backup.list -czf $backup_dir/home_$time.full-backup.tar.gz $backup_source

       else

               tar -g $backup_dir/home.backup.list -czf $backup_dir/home_$time.backup.tar.gz $backup_source

       fi       



      ]# chmod 700 backup.sh

       ]# ./backup.sh 



       ]# crontab -e

       30  04  *  *  *  /root/backup.sh







  문제) 위에서 백업 데이타들중 3달전 백업파일을 삭제하는 프로그램을 

        작성하고 crond을 이용하여 매달 첫째주 일요일에 실행되도록 설정하세요.


]# vi backup_remove.sh


$time=$(date --date '3 months ago' +%Y%m)

       $backup_dir=/backup

       rm -rf $backup_dir/home_$time*


       ]# chmod 700 backup_remove.sh


       ]# crontab -e


       00  06  1-7  *  0  /root/backup_remove.sh