White Paper
Please understand my incorrect and poor korean expression
리눅스 서버로 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 ""