show log include yuh

勉強したことの復習を兼ねて、IT関係(ネットワーク/サーバ/アプリケーション)についてまとめてます。たまに趣味のこと

スポンサーリンク

rsyncを用いてLinuxの自動バックアップ

概要

サーバを運用していくと壊れた時のリスクを考えるとバックアップを考えるようになります。
さすがに手動で定期的にバックアップをとるのは大変なので"rsync"を用いて定期的なバックアップを行います。

rsyncとは

rsync コマンドは、コピー元ディレクトリと、コピー先ディレクトリを同期させることができます。
rsync -av {{ コピー元 }} {{ コピー先 }}
cd /root
vi rsync.sh

#!/bin/bash
 
# バックアップ先ディレクトリ名
BACKUPDIR=/{{ ここにバックアップの場所}}  
mkdir -p $BACKUPDIR  
 
# バックアップログファイル名
BACKUPLOG=/var/log/backup.log  
rm -f $BACKUPLOG
touch $BACKUPLOG
chmod 400 $BACKUPLOG
 
# 異常終了処理関数定義
error_exit () {
exit 1
}
 
# バックアップ実行
echo "`date` backup start" >> $BACKUPLOG
LASTBACKUP=`ls -t $BACKUPDIR | grep backup | head -1`
NEWBACKUP=`date +%Y%m%d`backup
 
mkdir $BACKUPDIR/$NEWBACKUP
rsync -av --delete --link-dest=../$LASTBACKUP /home $BACKUPDIR/$NEWBACKUP >> $BACKUPLOG 2>&1
code=$?
if [ $code -ne 0 ]; then
    cat $BACKUPLOG | mail -s "BACKUP NG CODE IS $code" root
    rm -rf $BACKUPDIR/$NEWBACKUP
    error_exit
fi
echo "`date` backup end" >> $BACKUPLOG

自動起動(0時に起動)

crontab -e

0 0 * * * /root/rsync.sh

以下のサイトを参考にさせて頂きました、ありがとうございます。

参考リンク

rsync www.ikuwow.com