GNU/Linux >> Linux の 問題 >  >> Linux

rsnapshot rsync ユーティリティを使用してローカル Unix ホストをバックアップする方法

rsnapshot は素晴らしい無料の Linux バックアップ ユーティリティです。 ローカルとリモートの両方のファイル システムの rsync バックアップを実行します。

これは 2 つの記事のシリーズです。この記事では、rsnapshot ユーティリティをインストールして構成し、rsync バックアップ を作成する方法を確認します。 ローカル ファイル システムの。次の記事では、rsnapshot ユーティリティをセットアップしてリモート ファイル システムの rsync バックアップを作成する方法を確認しましょう。

rsnapshot rsync とハード リンクの組み合わせを使用して、完全バックアップと増分バックアップを維持します。 rsnapshot のセットアップと構成が完了したら、メンテナンスはまったく必要ありません。 rsnapshot は、古いバックアップの削除とローテーションを自動的に処理します。

また、必要なディスク容量も非常に少なくなります。最初の完全バックアップは、元のファイルとディレクトリと同じサイズになります。後続の rsnapshot フル バックアップは、以前のフル バックアップから変更されたファイルのみをバックアップするため、少ないスペースしか必要としません。

1. rsnapshot Linux バックアップ ユーティリティをダウンロード

以下に示すように、rsnapshot.org から rsnapshot ユーティリティをダウンロードします。

# cd /usr/src
# wget http://www.rsnapshot.org/downloads/rsnapshot-1.3.1.tar.gz

# tar xvfz rsnapshot-1.3.1.tar.gz
# cd rsnapshot-1.3.1

2. rsnapshot をインストールして、Linux ディレクトリをバックアップします

./configure を使用して rsnapshot Linux バックアップ ユーティリティをインストールし、以下に示すように make install します。

# ./configure --sysconfdir=/etc

checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
config.status: creating t/rsync.t
config.status: creating t/gnu_cp.t
config.status: creating t/relative_delete_bugfix.t
Type "make install" to install the program.
After rsnapshot is installed, don't forget to copy
/etc/rsnapshot.conf.default to /etc/rsnapshot.conf

# make install

/usr/bin/pod2man -c '' -n 'rsnapshot' -r '' rsnapshot > rsnapshot.1
/usr/bin/pod2man -c '' -n 'rsnapshot-diff' -r '' rsnapshot-diff > rsnapshot-diff.1
make[1]: Entering directory `/usr/src/rsnapshot-1.3.1'
test -z "/usr/local/bin" || mkdir -p -- "/usr/local/bin"
/usr/bin/install -c 'rsnapshot' '/usr/local/bin/rsnapshot'
/usr/bin/install -c 'rsnapshot-diff' '/usr/local/bin/rsnapshot-diff'
test -z "/etc" || mkdir -p -- "/etc"
/usr/bin/install -c -m 644 'rsnapshot.conf.default' '/etc/rsnapshot.conf.default'
test -z "/usr/local/man/man1" || mkdir -p -- "/usr/local/man/man1"
/usr/bin/install -c -m 644 './rsnapshot.1' '/usr/local/man/man1/rsnapshot.1'
/usr/bin/install -c -m 644 './rsnapshot-diff.1' '/usr/local/man/man1/rsnapshot-diff.1'
make[1]: Leaving directory `/usr/src/rsnapshot-1.3.1'

ここで、rsnapshot Linux バックアップ ユーティリティに付属するデフォルトの構成ファイルに基づいて、新しい rsnapshot.conf を作成します。

# cp /etc/rsnapshot.conf.default /etc/rsnapshot.conf

3. rsnapshot を構成し、バックアップ ソース ディレクトリを指定する

/etc/rsnapshot.conf を開き、次の行のコメントを外します。

# vi /etc/rsnapshot.conf

cmd_cp          /bin/cp
cmd_ssh /usr/bin/ssh
cmd_du          /usr/bin/du
cmd_rsnapshot_diff      /usr/local/bin/rsnapshot-diff
logfile /var/log/rsnapshot

コピー先のバックアップ ディレクトリを定義します 以下に示すように、/etc/rsnapshot.conf で。この例では、

  • /etc – バックアップするソース ディレクトリ
  • localhost/ – バックアップが保存される宛先ディレクトリ。最後の手順で示したように、このディレクトリは /.snapshots/{internal.n}/ ディレクトリの下に作成されることに注意してください。
# vi /etc/rsnapshot.conf

backup  /etc/           localhost/

注: /etc/ を、バックアップしたい適切なディレクトリに変更します。

4. rsnapshot 構成のテスト

構成テストを実行して、rsnapshot が適切にセットアップされ、Linux rsync バックアップを実行する準備ができていることを確認します。

# rsnapshot configtest
Syntax OK

5. rsnapshot の 1 時間ごとのバックアップ構成を確認する

Linux ディレクトリまたはファイルをさまざまな間隔でバックアップできます。デフォルトでは、毎時および毎日のバックアップが構成されています。

時間単位のバックアップ構成を確認してください。

# rsnapshot -t hourly
echo 6490 > /var/run/rsnapshot.pid
mkdir -m 0700 -p /.snapshots/
mkdir -m 0755 -p /.snapshots/hourly.0/
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded /home \
/.snapshots/hourly.0/localhost/
mkdir -m 0755 -p /.snapshots/hourly.0/
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded /etc \
/.snapshots/hourly.0/localhost/
mkdir -m 0755 -p /.snapshots/hourly.0/
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded \
/usr/local /.snapshots/hourly.0/localhost/
touch /.snapshots/hourly.0/

6. rsnapshot の日次バックアップ構成の確認

毎日の rsnapshot cwrsync バックアップ プロセスが適切に構成されていることを確認します。

# rsnapshot -t daily
echo 6493 > /var/run/rsnapshot.pid
mkdir -m 0700 -p /.snapshots/
/.snapshots/hourly.5 not present (yet), nothing to copy

7.無効な rsnapshot バックアップ間隔

毎月のバックアップ間隔はありません。そのため、毎月のバックアップ構成を確認しようとすると、次のようなメッセージが表示される場合があります — ERROR:Interval "monthly" unknown, check /etc/rsnapshot.conf

# rsnapshot -t weekly
echo 6495 > /var/run/rsnapshot.pid
mkdir -m 0700 -p /.snapshots/
/.snapshots/daily.6 not present (yet), nothing to copy

# rsnapshot -t monthly
echo 6496 > /var/run/rsnapshot.pid
mkdir -m 0700 -p /.snapshots/
----------------------------------------------------------------------------
rsnapshot encountered an error! The program was invoked with these options:
/usr/local/bin/rsnapshot -t monthly
----------------------------------------------------------------------------
ERROR: Interval "monthly" unknown, check /etc/rsnapshot.conf

8. rsnapshot の Crontab エントリを追加

rsync の毎時および毎日のバックアップ構成が rsnapshot cwrsync ユーティリティで適切にセットアップされていることを確認したら、次に示すように、この子犬を crontab にセットアップします。

# crontab -e
0 */4 * * * /usr/local/bin/rsnapshot hourly
30 23 * * * /usr/local/bin/rsnapshot daily

crontab のセットアップと構成方法については、Unix crontab の例の記事をご覧ください。

9. rsnapshot ジョブを手動で検証する (1 回限りのチェックアップ)

初めて、rsnapshot バックアップを手動で実行して、期待どおりに機能していることを確認することをお勧めします。

デフォルトでは、rnspashot ユーティリティによって作成されたすべての rsync バックアップは、/.snapshots ディレクトリに保存されます。

rsnapshot が実行されていないため、以下に示すように、このディレクトリは存在しない可能性があります。

# ls -al /.snapshots/
ls: /.snapshots/: No such file or directory

以下に示すように、rsnapshot バックアップ ユーティリティを手動で実行して、時間単位の構成を行います。

# /usr/local/bin/rsnapshot hourly

毎時バックアップを実行したので、rsnapshot Linux バックアップ ユーティリティは、hourly.0 ディレクトリを含む次の /.snapshots ディレクトリを作成します

/.snapshots/hourly.0/ ディレクトリをブラウズして、手順 3 で構成したファイルとディレクトリが適切にバックアップされていることを確認します。

# ls -al /.snapshots/
total 16
drwx------  3 root root 4096 Jul 13 05:07 .s
drwxr-xr-x 25 root root 4096 Jul 13 05:07 ..
drwxr-xr-x  3 root root 4096 Jul 13 05:07 hourly.0

# ls -al /.snapshots/hourly.0/localhost/etc/
total 2516
drwxr-xr-x 93 root root   12288 Jul 13 05:05 .
drwxr-xr-x  3 root root    4096 Jul 13 05:07 ..
-rw-r--r--  1 root root   15288 Mar 13  2008 a2ps.cfg
-rw-r--r--  1 root root    2562 Mar 13  2008 a2ps-site.cfg
drwxr-xr-x  4 root root    4096 Oct 31  2008 acpi
-rw-r--r--  1 root root      44 Jan 16 10:43 adjtime
drwxr-xr-x  4 root root    4096 Jan 16 10:36 alchemist
-rw-r--r--  1 root root    2155 Mar 19 08:22 aliases
-rw-r-----  1 root smmsp  12288 Mar 19 08:22 aliases.db

次の記事では、rsnapshot ユーティリティを使用して複数のリモート ホストをバックアップする方法を確認しましょう。


Linux
  1. Rsyncを使用してLinuxシステム全体をバックアップする方法

  2. Linux / UNIX :fdisk を使用して拡張パーティションを作成する方法

  3. ssh コマンドを使用してリモート ホストに接続する方法

  1. WordPressを新しいホストに手動で移行する方法

  2. rsync/ssh/rsnapshot バックアップ -- リモート スクリプトの実行

  3. tcpkill ユーティリティを使用して TCP 接続を強制終了する方法

  1. Ansibleを使用してリモートWindowsホストを管理する方法

  2. LCNバックアップユーティリティを使用してWebサイトをバックアップおよび復元する方法

  3. 増分バックアップ用の Linux バックアップ ユーティリティ