http://www.rsnapshot.org/ から

rsnapshot is a filesystem snapshot utility for making backups of local and remote systems.
Using rsync and hard links, it is possible to keep multiple, full backups instantly available.
The disk space required is just a little more than the space of one full backup, plus incrementals.

ということらしい。btrfsやらzfsを用意しなくても使えるそうな感じ。

インストール

[root@c ~]# yum --enablerepo=epel list |grep rsnapshot
rsnapshot.noarch                           1.4.2-2.el7            epel
 
[root@c ~]# yum --enablerepo=epel install rsnapshot

っでどんなファイルがどこにインストールされたかは、rpm -qali | less で見れる。

rsnapshot設定

ここではバックアップ対象を「/var/log/」と「/etc/」として、
格納先を「/opt/rsnapshot/」配下としている。

設定ファイル
*スペースはタブ(\t)です

[root@c ~]# vi /etc/rsnapshot.conf
snapshot_root   /opt/rsnapshot/        #バックアップファイルは/opt/rsnapshot/に置かれる。
 
interval        hourly  24             # hourly(1時間ごと)のバックアップを24個保持する
interval        daily   7              # daily(1日毎)のバックアップを7個保持する
interval        weekly  4              # weekly(1週単位)のバックアップを4個保持する
 
backup  /var/log/    localhost/log/
backup  /etc/        localhost/etc/

最後の「backup」行の「localhost」はバックアップ対象のマシンが自分自身であることを意味します。

*最近は「interval」の代わりに「retain」を使います. 「interval」は非推奨みたい

crontab設定

rsnapshotのinterval設定を意識した設定が必要。上記ではhourly,daily,weeklyと分かりやすいような名称だが実際はなんでもいい。ただcrontabの設定時に引数として使うだけだから。

ここでのcron設定は下記になる。

[root@c ~]# crontab -e
00  *  *  *  *    /usr/bin/rsnapshot hourly
10  23  *  *  *    /usr/bin/rsnapshot daily
20  23  *  *  4    /usr/bin/rsnapshot weekly

リモートからファイルバックアップ

rsyncでバックアップしているので、複数台のリモートサーバの内容を一つのマシンに集約できる。
2013y10m10d_220201855.png
こんな感じで

複数の場所をそれぞれ専用の場所で保存したい

現状はバックアップ元は1つのバックアップ先、「snapshot_root」に集約される。それはそれでいいが、特定のフォルダはこれとは関係のない場所にバックアップしたいなら。

 /home/     --+
 /opt/data/ --+------------> 「/backup」(snapshot_root)
 /etc/      --+
 
 /data/     +--------------> 「/data-backup」

rsnapshotのhelpを見ると、[-c]で設定ファイルが指定できるみたい。

[root@centos7 ~]# rsnapshot help
rsnapshot
Usage: rsnapshot [-vtxqVD] [-c cfgfile] [command] [args]
Type "man rsnapshot" for more information.
 
rsnapshot is a filesystem snapshot utility. It can take incremental
snapshots of local and remote filesystems for any number of machines.
 
rsnapshot comes with ABSOLUTELY NO WARRANTY.  This is free software,
and you are welcome to redistribute it under certain conditions.
See the GNU General Public License for details.
 
Options:
    -v verbose       - Show equivalent shell commands being executed.
    -t test          - Show verbose output, but don't touch anything.
                       This will be similar, but not always exactly the same
                       as the real output from a live run.
    -c [file]        - Specify alternate config file (-c /path/to/file)
    -q quiet         - Suppress non-fatal warnings.
    -V extra verbose - The same as -v, but with more detail.
    -D debug         - A firehose of diagnostic information.
    -x one_fs        - Don't cross filesystems (same as -x option to rsync).
 
Commands:
    [backuplevel]    - A backup level as defined in rsnapshot.conf.
    configtest       - Syntax check the config file.
    sync [dest]      - Sync files, without rotating. "sync_first" must be
                       enabled for this to work. If a full backup point
                       destination is given as an optional argument, only
                       those files will be synced.
    diff             - Front-end interface to the rsnapshot-diff program.
                       Accepts two optional arguments which can be either
                       filesystem paths or backup directories within the
                       snapshot_root (e.g., /etc/ beta.0/etc/). The default
                       is to compare the two most recent snapshots.
    du               - Show disk usage in the snapshot_root.
                       Accepts an optional destination path for comparison
                       across snapshots (e.g., localhost/home/user/foo).
    version          - Show the version number for rsnapshot.
    help             - Show this help message.
[root@centos7 ~]#

なので「/data」向けのrsnapshot設定ファイルを作ってそれを起動させればいいみたい。

[root@centos7 ~]# cp /etc/rsnapshot.conf /etc/rsnapshot.data.conf
[root@centos7 ~]# vi /etc/rsnapshot.data.conf
 :
snapshot_root   /data-backup/
logfile         /var/log/rsnapshot.data
lockfile        /var/run/rsnapshot.data.pid
backup          /data/          localhost/
 :
[root@centos7 ~]#

* 「logfile」と「lockfile」の名称は既存のと被らないようにします

っでcronは下記のようにする

00  *  *  *  *    /usr/bin/rsnapshot hourly
10  23  *  *  *    /usr/bin/rsnapshot daily
20  23  *  *  4    /usr/bin/rsnapshot weekly
 
00  *  *  *  *    /usr/bin/rsnapshot -c /etc/rsnapshot.data.conf hourly
10  23  *  *  *    /usr/bin/rsnapshot -c /etc/rsnapshot.data.conf daily
20  23  *  *  4    /usr/bin/rsnapshot -c /etc/rsnapshot.data.conf weekly

トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS
Last-modified: 2022-03-18 (金) 20:07:24 (100d)