ウェブサイト検索

Rsnapshot (Rsync ベース) - Linux 用のローカル/リモート ファイル システム バックアップ ユーティリティ


rsnapshot は、Perl 言語で書かれたオープンソースのローカル/リモート ファイルシステム バックアップ ユーティリティです。Rsync および SSH プログラムは、Linux/Unix ファイルシステムのスケジュールされた増分バックアップを作成し、必要なスペースはわずかです。単一の完全バックアップと差分を追加し、それらのバックアップをローカルドライブに別のハード ドライブや外部USBスティックに保存します。 、NFS マウントされたドライブ、または単にネットワーク経由でSSH 経由で別のマシンに接続します。

この記事では、rsnapshot をインストール、設定し、使用して増分を 時間ごと 毎日 毎週 作成する方法を説明します。強力>毎月のローカル バックアップとリモート バックアップ。この記事のすべての手順を実行するには、root ユーザーである必要があります。

ステップ 1: Linux に Rsnapshot Backup をインストールする

Red Hat を使用している場合、YumAPT を使用した rsnapshot のインストールは若干異なる場合があります。 Debianベースのディストリビューション。

RHEL/CentOS の場合

まず、EPEL というサードパーティのリポジトリをインストールして有効にする必要があります。以下のリンクに従って、RHEL/CentOS システムにインストールして有効にしてください。 Fedora ユーザーは特別なリポジトリ設定を必要としません。

  1. RHEL/CentOS 6/5/4 で EPEL リポジトリをインストールして有効にする

セットアップが完了したら、次のようにコマンド ラインからrsnapshot をインストールします。

yum install rsnapshot
Debian/Ubuntu/Linux Mint の場合

デフォルトでは、rsnapshotUbuntu のリポジトリに含まれているため、示されているように apt-get コマンドを使用してインストールできます。

apt-get install rsnapshot

ステップ 2: SSH パスワードなしログインのセットアップ

リモート Linux サーバーをバックアップするには、rsnapshot バックアップ サーバー がパスワードなしでSSH 経由で接続できるようになります。これを実現するには、rsnapshot サーバーで認証するためのSSH 公開キーと秘密キーを作成する必要があります。以下のリンクに従って、rsnapshot バックアップ サーバーで公開キーと秘密キーを生成してください。

  1. SSH Keygen を使用して SSH パスワードレス ログインを作成する

ステップ 3: Rsnapshot の構成

ここで、rsnapshot 構成ファイルを編集していくつかのパラメータを追加する必要があります。 vi または nano エディタで rsnapshot.conf ファイルを開きます。

vi /etc/rsnapshot.conf

次に、すべてのバックアップを保存するバックアップ ディレクトリを作成します。私の場合、バックアップ ディレクトリの場所は「/data/backup/ 」です。次のパラメータを検索して編集し、バックアップの場所を設定します。

snapshot_root			 /data/backup/

また、「cmd_ssh」行のコメントを解除して、SSH 経由でリモート バックアップを実行できるようにします。行のコメントを解除するには、rsnapshot がデータをバックアップ サーバーに安全に転送できるように、次の行の前にある「#」を削除します。

cmd_ssh			/usr/bin/ssh

次に、保持する古いバックアップの数を決定する必要があります。これは、rsnapshot ではスナップショットをどのくらいの頻度で作成する必要があるかが分からないためです。保存するデータの量、保持する間隔の追加、およびそれぞれの数を指定する必要があります。

まあ、デフォルト設定でも十分ですが、それでも「毎月」間隔を有効にして、長期間のバックアップも行えるようにしてください。このセクションを編集して、以下の設定のようにしてください。

#########################################
          BACKUP INTERVALS            #
Must be unique and in ascending order #
i.e. hourly, daily, weekly, etc.      #
#########################################

interval        hourly  6
interval        daily   7
interval        weekly  4
interval        monthly 3

もう 1 つ編集する必要があるのは、「ssh_args」変数です。デフォルトのSSH ポート (22) を別のポートに変更した場合は、リモート バックアップ サーバーのそのポート番号を指定する必要があります。

ssh_args		-p 7851

最後に、バックアップするローカルおよびリモートのバックアップ ディレクトリを追加します。

ローカルディレクトリのバックアップ

ディレクトリを同じマシンにローカルにバックアップすることにした場合、バックアップ エントリは次のようになります。たとえば、/tecmint ディレクトリと /etc ディレクトリのバックアップを作成しています。

backup		/tecmint/		localhost/
backup		/etc/			localhost/
リモートディレクトリのバックアップ

リモート サーバーのディレクトリをバックアップしたい場合は、サーバーの場所とバックアップするディレクトリを rsnapshot に伝える必要があります。ここでは、rsnapshot サーバーの「/data/backup」ディレクトリの下にあるリモート サーバー「/home」ディレクトリのバックアップを作成しています。

backup		 [email :/home/ 		/data/backup/

こちらもお読みください:

  1. Rsync (リモート同期) ツールを使用してディレクトリをバックアップ/同期する方法
  2. SCPコマンドを使用してファイル/フォルダーを転送する方法
ファイルとディレクトリを除外する

ここではすべてを除外し、バックアップするもののみを具体的に定義します。これを行うには、除外ファイルを作成する必要があります。

vi /data/backup/tecmint.exclude

まず、バックアップするディレクトリのリストを取得し、追加 ( – * ) して他のすべてを除外します。これにより、ファイルにリストした内容のみがバックアップされます。私の除外ファイルは以下のようになります。

+ /boot
+ /data
+ /tecmint
+ /etc
+ /home
+ /opt
+ /root
+ /usr
- /usr/*
- /var/cache
+ /var
- /*

rsync 再帰を使用するため、除外ファイル オプションの使用は非常に難しい場合があります。したがって、上記の例はあなたが探しているものではないかもしれません。次に、除外ファイルをrsnapshot.conf ファイルに追加します。

exclude_file    /data/backup/tecmint.exclude

最後に、初期構成がほぼ完了しました。次に進む前に、「/etc/rsnapshot.conf」設定ファイルを保存します。説明するには多くのオプションがありますが、ここでは私のサンプル構成ファイルを示します。

config_version  1.2
snapshot_root   /data/backup/
cmd_cp  /bin/cp
cmd_rm  /bin/rm
cmd_rsync       /usr/bin/rsync
cmd_ssh /usr/bin/ssh
cmd_logger      /usr/bin/logger
cmd_du  /usr/bin/du
interval        hourly  6
interval        daily   7
interval        weekly  4
interval        monthly 3
ssh_args	-p 25000
verbose 	2
loglevel        4
logfile /var/log/rsnapshot/
exclude_file    /data/backup/tecmint.exclude
rsync_long_args --delete        --numeric-ids   --delete-excluded
lockfile        /var/run/rsnapshot.pid
backup		/tecmint/		localhost/
backup		/etc/			localhost/
backup		[email :/home/ 		/data/backup/

上記のすべてのオプションと引数の説明は次のとおりです。

  1. config_version 1.2=設定ファイルのバージョン
  2. snapshot_root=スナップショットを保存するバックアップ先
  3. cmd_cp=コピー コマンドへのパス
  4. cmd_rm=コマンドを削除するパス
  5. cmd_rsync=rsync へのパス
  6. cmd_ssh=SSH へのパス
  7. cmd_logger=syslog へのシェル コマンド インターフェイスへのパス
  8. cmd_du=ディスク使用量コマンドへのパス
  9. 間隔 1 時間=保持する 1 時間ごとのバックアップの数。
  10. 毎日の間隔=保持する毎日のバックアップの数。
  11. 毎週の間隔=毎週保持するバックアップの数。
  12. 毎月の間隔=毎月保持するバックアップの数。
  13. ssh_args=別のポート (-p ) などのオプションの SSH 引数
  14. 冗長=一目瞭然
  15. ログレベル=一目瞭然
  16. ログファイル=ログファイルへのパス
  17. exclude_file=除外ファイルへのパス (詳しく説明します)
  18. rsync_long_args=rsync に渡す長い引数
  19. ロックファイル=説明不要
  20. バックアップ=バックアップ対象への完全なパスと、その後に配置される相対パス。

ステップ 4: Rsnapshot 構成を確認する

すべての構成が完了したら、すべてが期待どおりに動作することを確認します。次のコマンドを実行して、構成の構文が正しいことを確認します。

rsnapshot configtest

Syntax OK

すべてが正しく設定されている場合は、「構文 OK」というメッセージが表示されます。エラー メッセージが表示された場合は、rsnapshot を実行する前にそれらのエラーを修正する必要があることを意味します。

次に、スナップショットの 1 つでテスト実行を実行し、正しい結果が生成されていることを確認します。 「時間」パラメータを取得し、-t (テスト) 引数を使用してテスト実行を実行します。以下のコマンドは、実行する内容の詳細なリストを、実際には実行せずに表示します。

rsnapshot -t hourly
サンプル出力
echo 2028 > /var/run/rsnapshot.pid 
mkdir -m 0700 -p /data/backup/ 
mkdir -m 0755 -p /data/backup/hourly.0/ 
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded /home \
    /backup/hourly.0/localhost/ 
mkdir -m 0755 -p /backup/hourly.0/ 
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded /etc \
    /backup/hourly.0/localhost/ 
mkdir -m 0755 -p /data/backup/hourly.0/ 
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded \
    /usr/local /data/backup/hourly.0/localhost/ 
touch /data/backup/hourly.0/

: 上記のコマンドは、 rsnapshot に「 時間ごと」のバックアップを作成するように指示します。実際に実行すると、実行されるコマンドが実際に出力されます。

ステップ 5: Rsnapshot を手動で実行する

結果を確認した後、「-t 」オプションを削除してコマンドを実際に実行できます。

rsnapshot hourly

上記のコマンドは、rsnapshot.conf ファイルに追加したすべての設定を使用してバックアップ スクリプトを実行し、「backup」ディレクトリを作成し、その下にディレクトリ構造を作成します。ファイルを整理します。上記のコマンドを実行した後、バックアップ ディレクトリに移動し、示されているように ls -l コマンドを使用してディレクトリ構造を一覧表示することで結果を確認できます。

cd /data/backup
ls -l

total 4
drwxr-xr-x 3 root root 4096 Oct 28 09:11 hourly.0

ステップ 6: プロセスの自動化

プロセスを自動化するには、Cron から一定の間隔で実行されるように rsnapshot をスケジュールする必要があります。デフォルトでは、rsnapshot には「/etc/cron.d/rsnapshot」の下に cron ファイルが付属しています。存在しない場合は作成してください。それに次の行を追加します。

デフォルトではルールはコメント化されているため、これらの値を有効にするには、スケジュール セクションの前にある「# 」を削除する必要があります。

This is a sample cron file for rsnapshot.
The values used correspond to the examples in /etc/rsnapshot.conf.
There you can also set the backup points and many other things.
#
To activate this cron file you have to uncomment the lines below.
Feel free to adapt it to your needs.

0     */4    * * *    root    /usr/bin/rsnapshot hourly
30     3     * * *    root    /usr/bin/rsnapshot daily
0      3     * * 1    root    /usr/bin/rsnapshot weekly
30     2     1 * *    root    /usr/bin/rsnapshot monthly

上記の cron ルールが何を行うかを正確に説明しましょう。

  1. 4 時間ごとに実行され、/backup ディレクトリの下に 1 時間ごと のディレクトリが作成されます。
  2. 毎日午前 3 時 30 分に実行され、/backup ディレクトリの下に 毎日 ディレクトリが作成されます。
  3. 毎週毎週月曜日午前3時に実行し、 /backup毎週ディレクトリを作成します。 Strong> ディレクトリ。
  4. 毎週毎月 午前 2 時 30 分 に実行し、/backup ディレクトリの下に 毎月 ディレクトリを作成します。

cron ルール の仕組みをより深く理解するには、説明した記事を読むことをお勧めします。

  1. 11 Cron スケジュールの例

ステップ 7: Rsnapshot レポート

rsnapshot は、データ バックアップ中に発生したすべての詳細を含む 電子メール アラート を送信する、気の利いた小さなレポート Perl スクリプト を提供します。このスクリプトを設定するには、スクリプトを「/usr/local/bin」の下のどこかにコピーし、実行可能にする必要があります。

cp /usr/share/doc/rsnapshot-1.3.1/utils/rsnapreport.pl /usr/local/bin
chmod +x /usr/local/bin/rsnapreport.pl

次に、「rsnapshot.conf」ファイルの「–stats」パラメータを rsync の長い引数セクションに追加します。

vi /etc/rsnapshot.conf
rsync_long_args --stats	--delete        --numeric-ids   --delete-excluded

次に、前に追加したcrontab ルールを編集し、rsnapreport.pl スクリプトを呼び出して、指定した電子メール アドレスにレポートを渡します。

This is a sample cron file for rsnapshot.
The values used correspond to the examples in /etc/rsnapshot.conf.
There you can also set the backup points and many other things.
#
To activate this cron file you have to uncomment the lines below.
Feel free to adapt it to your needs.

0     */4    * * *    root    /usr/bin/rsnapshot hourly 2>&1  | \/usr/local/bin/rsnapreport.pl | mail -s "Hourly Backup" [email 
30     3     * * *    root    /usr/bin/rsnapshot daily 2>&1  | \/usr/local/bin/rsnapreport.pl | mail -s "Daily Backup" [email 
0      3     * * 1    root    /usr/bin/rsnapshot weekly 2>&1  | \/usr/local/bin/rsnapreport.pl | mail -s "Weekly Backup" [email 
30     2     1 * *    root    /usr/bin/rsnapshot monthly 2>&1  | \/usr/local/bin/rsnapreport.pl | mail -s "Montly Backup" [email 

上記のエントリを正しく追加すると、次のようなレポートが電子メール アドレスに届きます。

SOURCE           TOTAL FILES	FILES TRANS	TOTAL MB    MB TRANS   LIST GEN TIME  FILE XFER TIME
--------------------------------------------------------------------------------------------------------
localhost/          185734	   11853   	 2889.45    6179.18    40.661 second   0.000 seconds

参考リンク

  1. RSスナップショットのホームページ

現時点ではこれで終わりです。インストール中に問題が発生した場合は、コメントしてください。それまでは、 オープンソースの世界に関するさらに興味深い記事をTecMint でご覧ください。