리눅스 서버로 2, 3 중으로 자동 백업을 하고 있습니다.

하지만 서버의 위치가 한곳에 있다보니 데이터 소실의 위험이 있어 여러 곳에 서버를 두어 백업을 공유하고는 싶지만

서버 관리 비용이 만만하지 않아,, ESATA HDD를 이용해서 수동으로 백업한후 내열 데이터 금고에 보관하고자 합니다.

 

이 보관은 3일에 한번씩 시행하고자 합니다.

 

물론 자동 백업은 crond에 의해 하루에 한번씩 5개의 하드에 보관이 되고 있고,, 수동 esata hdd  백업도 하게 됩니다.

 

 

shell script  function time 시간계산 등등 backup영 만듬...mason_eBackup.sh

beep

 

ESATA하드 꼽고
ESATA 하드 마운트하고,

BACKUP2 디렉토리 삭제하고

BACKUP1 -> BACKUP2로 리네임하고

BACKUP1에 백업할 파일들 TAR로 백업하고

ESATA 언마운트하고

ESATA 하드 빼고

END

 

중간중간에 시간출력...

 

 

 


<출력>

[root@host /]# ./mason_eBackup.sh
===========================================================================
BACKUP
===========================================================================
2013. 04. 05. (금) 13:07:08 KST
-- mount /mnt/sdf
-- Backup Time => 0[h] 0[m] 1[s] : rm -rf Backup2
-- Backup Time => 0[h] 7[m] 45[s] : mv Backup1 Backup2
-- Backup Time => 0[h] 7[m] 45[s] : eBackup pass,group,shadown
-- Backup Time => 0[h] 7[m] 46[s] : eBackup etc
-- Backup Time => 0[h] 7[m] 46[s] : eBackup SQL
-- Backup Time => 0[h] 7[m] 47[s] : eBackup HTML
-- Backup Time => 0[h] 38[m] 54[s] : eBackup Project
-- Backup Time => 0[h] 59[m] 47[s] : eBackup SAJIN
-- Backup Time => 2[h] 24[m] 53[s] : umount /mnt/sdf
-- Backup Time => 2[h] 24[m] 54[s] : END sleep 2 m
-- Backup Time => 2[h] 25[m] 25[s] : 0.5m
-- Backup Time => 2[h] 25[m] 55[s] : 1.0m
-- Backup Time => 2[h] 26[m] 25[s] : 1.5m
-- Backup Time => 2[h] 26[m] 56[s] : 2.0m
===========================================================================
================================  END  ====================================
===========================================================================
2013. 04. 05. (금) 15:34:06 KST

You have new mail in /var/spool/mail/root
[root@host /]#
You have new mail in /var/spool/mail/root
[root@host /]#

 

 

<소스>

 

#!/bin/sh
# Removing leading / from member names 에러아님
forg=/mnt/sdb/MysqlBackup
fn=$forg/new
fd=/mnt/sdf/Backup1
fd2=/mnt/sdf/Backup2
stringdisp=''

timed()
{
  end=$(date +"%s")
  diff=$(($end - $start))
  hh=$(($diff / 3600))
  sec1=$(($diff % 3600))
  mm=$(($sec1 / 60))
  sec=$(($sec1 % 60))
  echo "-- Backup Time => $hh[h] $mm[m] $sec[s] : $stringdisp"
}


echo "==========================================================================="
echo "BACKUP"
echo "==========================================================================="

date

start=$(date +"%s")

/beep

echo "-- mount /mnt/sdf"
mount -t ext3 /dev/sdf1 /mnt/sdf

if grep -qs '/mnt/sdf' /proc/mounts; then

  stringdisp='rm -rf Backup2'
  timed
  rm -rf $fd2/* 
 


  stringdisp='mv Backup1 Backup2'
  timed 
  mv $fd/* $fd2/
 

  stringdisp='eBackup pass,group,shadown'
  timed
  cp $fn/passwd $fd
  cp $fn/grub.conf $fd
  cp $fn/shadow $fd
 

  stringdisp='eBackup etc'
  timed
  cp $fn/.bash_profile $fd
  cp $fn/mason_backup.sh $fd
  cp $fn/mason_backup_sdb_sdc.sh $fd
  cp $fn/mason_restore.sh $fd
  cp $fn/mason_eBackup.sh $fd
  cp $fn/inittab $fd
  cp $fn/rc.local $fd
  cp $fn/profile $fd
  cp $fn/root $fd
  cp $fn/i18n $fd
  cp $fn/httpd.conf $fd
  cp $fn/issue.net $fd
  cp $fn/profile $fd
  cp $fn/motd $fd
  cp $fn/php.ini $fd
  cp $fn/config.ttyS0 $fd
  cp $fn/seqf $fd
 
  stringdisp='eBackup SQL'
  timed
  cp $fn/sqldata_xe.sql $fd
  cp $fn/sqldata_bbs.sql $fd
 

  stringdisp='eBackup HTML'
  timed
  cp $fn/html.tar $fd
 

  stringdisp='eBackup Project'
  timed
  cp /mnt/sdc/ProjectSajinBackup/Project.tar $fd
 

  stringdisp='eBackup SAJIN'
  timed
  cp /mnt/sdc/ProjectSajinBackup/sajin.tar $fd
 

  stringdisp='umount /mnt/sdf'
  timed
  /beep
  /beep
  /beep
  /beep
  /beep
  stringdisp='END sleep 2 m'
  timed
  sleep 30
  /beep
  stringdisp='0.5m'
  timed
  sleep 30
  /beep
  stringdisp='1.0m'
  timed
  sleep 30
  /beep
  stringdisp='1.5m'
  timed
  sleep 30
  /beep
  stringdisp='2.0m'
  timed
  /beep
  /beep
  fuser -ck /mnt/sdf
  umount /mnt/sdf
 

  /beep
  /beep
  /beep
  /beep
  /beep
  /beep

  echo "==========================================================================="
  echo "================================  END  ===================================="
  echo "==========================================================================="
else
  echo ""
  echo "======== not mount"
  echo ""
fi


date

/beep

echo ""