20081024 00:49(金) saito
バックアップについて。
PC・モバイルサイトなどの構築をしていると、必ずバックアップが必要になってくる。
これをしてないと、まれにHDDがクラッシュしたときに泣ける(T。T
そこで、バックアップについて考えてみる。
1.バックアップ方法
・tar/zipコマンドによる圧縮
2.転送方法
・rsyncによる転送
・scpによる転送
・SCPによる転送
・rsyncやSCPはパスワードをソースに書いたり空パスフレーズを作ったりなどちと面倒。。
本当はそっちのほうがいいのかもしれないが、今回はtar圧縮+FTP転送を選択
#!/bin/sh
# backup shell
#
# author Saito
################
# error
################
if [ $# -ne 4 ]; then
echo "Usage: backup.sh backupdir todir env" 1>&2
echo " logdir: /home/***/*"
echo " backupdir: /tmp/backup/"
echo " env: product/test/develop"
exit 1
fi
################
# setting
################
BACKUPDATE=2
BACKUPDIR=$1
TODIR=$2
CURDATE=`date +%Y%m%d`
LASTDATE=`date --date '1 day ago' +%Y%m%d`
FILE=`ls -t -1 `
BACKUPFILE="`basename ${BACKUPDIR}`_${LASTDATE}.tar.gz"
SITE=$3
ENV=$4
IP=192.168.1.10
USER=backup
PASSWORD=password
################
# backup
################
find ${TODIR} -type f -ctime +${BACKUPDATE} -print0 | xargs -0 echo
tar zcf ${TODIR}${BACKUPFILE} ${BACKUPDIR}
ftp -i -n -v ${IP} << EOF
user ${USER} ${PASSWORD}
binary
put ${TODIR}${BACKUPFILE} /BACKUP_CONTENTS/${SITE}/${ENV}/${BACKUPFILE}
quit
EOF
################
# rm(約10時間以前のバックアップは削除)
################
for oldFile in `find ${TODIR} -type f -mmin +1000`
do
rm -f $oldFile
done
■自動化
毎日、アクセスが少ない時間にバックアップ
・Help
/root/cron/backup.sh バックアップ元 バックアップ先 環境
・設定例
0 5 * * * sh /root/cron/backup.sh /home/********/product /home/*******/_backup/product/******* product > /dev/null 2>&amp;1




Comment[0]
Post Your Comment