はじめに
自由にテスト出来るLinuxのサーバーがほしくて、さくらVPSで構築してみました。
順次手順をアップしていく予定です。
今回は、環境のバックアップです。
さくらVPSにはバックアップ機能が無いようなので、ツールをインストールしました。
バックアップツールは「MondoRescue」を、圧縮には「LZO」を使用します。
#目次
- 申し込み
- CentOS7インストール
- SSH接続
- Apache・PHPインストール
- MariaDBインストール
- FTP接続
- sftp接続
- phpMyAdminインストール
- 環境バックアップ
- Ruby On Railsインストール
- RailsプロジェクトをGitで共同開発
#9.環境のバックアップ
インストール
MondoRescueとLZOをインストール
$ cd /etc/yum.repos.d/
$ sudo wget http://www.mondorescue.org/ftp/centos/7/x86_64/mondorescue.repo
$ sudo yum -y install mondo lzop
このまま動かすとCentOS7では容量不足のエラーが出るようなので、以下の設定をしておきます。
エディタを起動し、/etc/mindi/mindi.confを開きます
$ sudo vi /etc/mindi/mindi.conf
以下を追加
EXTRA_SPACE=524288
BOOT_SIZE=131072
以上でインストールは完了です
バックアップ
バックアップ用のフォルダを作成
$ sudo mkdir /backup
バックアップ実行
$ sudo mondoarchive -Oi -L -N -s 5000m -d /backup -E /backup
使用したオプションは以下です
オプション | 内容 |
---|---|
-O | バックアップ実行 |
-i | バックアップデータをISOイメージで出力 |
-N | ローカルディスクのみバックアップ対象とする |
-s size | CD/DVD, ISOの最大サイズ |
-d path | バックアップイメージの出力パス |
-E path | 除外するディレクトリ(パイプ区切り) |
毎日バックアップしたいなら
私のサーバーはテスト用なので、アプリのインストール前とかにバックアップを作成し、FTPでローカルパソコンに転送して保存しています。
毎日バックアップするならば、スクリプトで自動化した方が良いと思います。
/etc/cron.daily/にスクリプトを置いておくと、毎日実行されます。
※ただし、/backupに貯めてもおいてもバックアップにはなりませんので、/backupを何処かのオンラインストレージ等にマウントして、データをサーバー外部に保存できるようにする必要があると思いますが、今回はそこまではしませんのであしからず。
$ sudo vi /etc/cron.daily/auto_backup.sh
以下の内容を打ち込みます
何日前まで残すかは、-mtime の引き数で決まります。
-mtime +3 だと、4日前~過去のデータが削除されます。
#!/bin/bash
today=$(date +%Y%m%d)
#Backup_日付.isoのファイル名でバックアップ
mondoarchive -O -i -N -L -s5000m -E"/backup" -d /var/tmp -p Backup_${today}
#バックアップイメージを移動
mv /var/tmp/Backup_${today}-1.iso /backup
#古いバックアップイメージを削除
find /backup -type f -mtime +3 -exec rm -f {} \;
実行権限を与えます
$ sudo chmod 755 /etc/cron.daily/auto_backup.sh
#次回