概要
サーバを運用していくと壊れた時のリスクを考えるとバックアップを考えるようになります。
さすがに手動で定期的にバックアップをとるのは大変なので"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
以下のサイトを参考にさせて頂きました、ありがとうございます。