このガイドでは、Rsnapshotとは何か、LinuxにRsnapshotをインストールする方法、およびLinuxでRsnapshotを使用してバックアップサーバーをセットアップする方法について説明します。
1。はじめに
Rsnapshot rsyncに基づくファイルシステムスナップショットユーティリティです LinuxおよびUnixライクなオペレーティングシステム用。ローカルマシンとリモートマシンの定期的なスナップショットをssh経由で簡単に作成できます。
rsnapshotの良いところは、ハードリンクを多用していることです。 可能な限り、必要なディスク容量を大幅に削減します。
rsnapshotは固定数のスナップショットしか保持しないため、使用されるディスク容量が継続的に増加することはありません。
Rnapshotは、増分バックアップをサポートする無料のオープンソースバックアップアプリケーションです。それは完全にperlで書かれています 、そしてほとんどのUnixライクなシステムで動作するはずです。
さらに面倒なことはせずに、LinuxでRsnapshotを使用してバックアップサーバーをインストール、構成、およびセットアップする方法を見てみましょう。
2。 LinuxにRsnapshotをインストールする
Rsnapshotは、多くのLinuxディストリビューション用にパッケージ化されています。
Alpine LinuxにRsnaphotをインストールする:
$ sudo apk add rsnapshot rsync
RsnapshotのインストールはArchLinux、EndeavourOS、Manjaro Linuxです:
$ sudo pacman -S rsnapshot rsync
RsnapshotをDebian、Ubuntu、Linux Mint、Pop_OSにインストールしてください!:
$ sudo apt install rsnapshot rsync
CentOS、Fedora、RHEL、AlmaLinux、Rocky LinuxにRsnapshotをインストールします:
Rsnapshotは、CentOS、RHEL、AlmaLinux、RockyLinuxなどのエンタープライズオペレーティングシステムのデフォルトのリポジトリでは使用できません。 [EPEL]を有効にする必要があります Rsnapshotをインストールするためのリポジトリ。
$ sudo dnf install epel-release
次に、次のコマンドを使用してRsnapshotをインストールします。
$ sudo dnf install rsnapshot rsync
openSUSEにRsnapshotをインストールします:
$ sudo zypper install rsnapshot rsync
3。 LinuxでRsnapshotを使用してバックアップサーバーをセットアップする
このガイドでは、2つのテストシステムを使用します。
1つはAlmaLinux8で実行されているバックアップサーバーで、もう1つはクライアントシステムとして機能します。クライアントはFedora34デスクトップで実行されています。
バックアップサーバーとクライアントの詳細を以下に示します。
バックアップサーバー:
- OS :AlmaLinux864ビット最小システム
- IPアドレス :192.168.122.25 / 24
- Rsnapshotルートディレクトリ :/ rsnapbackup
- バックアップするディレクトリ :/ home / ostechnix / data /
クライアント:
- OS :Fedoraワークステーション34
- IPアドレス :192.168.225.37 / 24
- バックアップするディレクトリ :/ home / sk / data /
3.1。バックアップサーバーでパスワードなしのSSH認証を設定する
SSH経由でリモートクライアントシステムのファイルをバックアップするには、パスワードなしのSSH認証を設定する必要があります リモートクライアントシステムの場合、バックアップはパスワードなしでクライアントシステムに自動的に接続し、クライアントデータをバックアップします。
root
としてログインします ユーザーを作成し、バックアップサーバーシステムでSSHキーペアを作成します。
# ssh-keygen
パスフレーズを入力しないでください 、ユーザーの介入なしにこれらのシステムを相互に接続できるようにするため:
Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: SHA256:k/yIpwuk2lqEVxW4O0/6evTjquxCcGffQU0Kgm1ZvPk [email protected] The key's randomart image is: +---[RSA 3072]----+ | o.==. o. | | . =o..... | | ... +. | |....+ o... | |.ooo.o oS. | | o.oo +.E+ | | .o .*..o . | | +....ooo | |o..o===+.. | +----[SHA256]-----+
次に、SSH公開鍵をすべてのリモートクライアントシステムにコピーします。
# ssh-copy-id [email protected]
sk
を置き換えます および192.168.225.37
上記のコマンドで、リモートシステムのユーザー名とIPアドレスを使用します。クライアントシステムのユーザーパスワードを入力して、公開鍵ファイルをコピーします。
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub" /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys [email protected]'s password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh '[email protected]'" and check to make sure that only the key(s) you wanted were added.
ここでは、 192.168.225.37 リモートクライアントシステム(Fedoraデスクトップなど)のIPアドレスです。
これで、パスワードなしでクライアントシステムにSSH接続できます。
上記のコマンドを繰り返して、ssh公開鍵をすべてのクライアントシステムにコピーし、パスワードなしの認証を設定します。
次に、バックアップサーバーを構成する必要があります。
3.2。 Rsnapshotバックアップサーバーの構成
ルートバックアップディレクトリを作成します サーバーとクライアントシステムのすべてのバックアップを保存します。
このガイドでは、/rsnapbackup/
ルートバックアップディレクトリとして。これは、すべてのバックアップを保存するディレクトリです。
バックアップを保存するために、選択した独自の場所を定義できます。
次のコマンドを使用して、バックアップサーバーにルートバックアップディレクトリを作成しましょう。
# mkdir /rsnapbackup
次に、ルートバックアップディレクトリ、バックアップするディレクトリ、およびRsnapshotデフォルト構成ファイル /etc/rsnapshot.conf
のバックアップ間隔を編集および更新する必要があります。 。
rsnapshotを再構成する必要がある場合に備えて、構成を編集する前に、デフォルトの構成ファイルのバックアップを作成することを常にお勧めします。
# cp /etc/rsnapshot.conf /etc/rsnapshot.conf.bak
次に、コマンドを使用してrsnapshot構成ファイルを編集します。
# nano /etc/rsnapshot.conf
デフォルトの構成で問題なく動作するはずです。バックアップディレクトリとバックアップ間隔を定義するだけです。
ヘッズアップ: 末尾のスラッシュを指定する必要があることに注意してください /etc/rsnapshot.conf
のディレクトリ名の最後にあります ファイル。たとえば、ディレクトリ名を /rsnapbackup/
として指定する必要があるとします。 、ただし/rsnapbackup
。また、要素/フィールド間で(スペースではなく)タブを使用する必要があります 。
まず、ルートバックアップディレクトリを設定します。つまり、ファイルシステムのバックアップを保存するディレクトリを定義します。この場合、バックアップを /rsnapbackup/
に保存します ディレクトリ。
# All snapshots will be stored under this root directory. # snapshot_root /rsnapbackup/
繰り返しになりますが、Tabキーを使用する必要があります snapshot_rootの間 要素とバックアップディレクトリ。
注: Rsnapshotはしません SSH経由のリモートスナップショットルートをサポートします。
少し下にスクロールして、次の行(太字でマークされている)のコメントが外されていることを確認します。
[...] ################################# # EXTERNAL PROGRAM DEPENDENCIES # ################################# # LINUX USERS: Be sure to uncomment "cmd_cp". This gives you extra features. # EVERYONE ELSE: Leave "cmd_cp" commented out for compatibility. # # See the README file or the man page for more details. # cmd_cp /usr/bin/cp # uncomment this to use the rm program instead of the built-in perl routine. # cmd_rm /usr/bin/rm # rsync must be enabled for anything to work. This is the only command that # must be enabled. # cmd_rsync /usr/bin/rsync # Uncomment this to enable remote ssh backups over rsync. # cmd_ssh /usr/bin/ssh # Comment this out to disable syslog support. # cmd_logger /usr/bin/logger # Uncomment this to specify the path to "du" for disk usage checks. # If you have an older version of "du", you may also want to check the # "du_args" parameter below. # cmd_du /usr/bin/du [...]
次に、バックアップ間隔を定義する必要があります:
######################################### # BACKUP LEVELS / INTERVALS # # Must be unique and in ascending order # # e.g. alpha, beta, gamma, etc. # ######################################### retain alpha 6 retain beta 7 retain gamma 4 #retain delta 3
ここで、アルファ6を保持 毎回rsnapshotalpha 実行すると、新しいスナップショットが作成され、古いスナップショットがローテーションされ、alpha.0
という名前のディレクトリに最新の6つのバックアップが保持されます。 、alpha.1
、... alpha.5
Rsnapshotルートディレクトリにあります。次にコマンドを実行すると、alpha.5
ディレクトリが削除されます。
同様に、rsnapshot beta
を呼び出すと 毎回、新しいスナップショットを作成し、古いスナップショットをローテーションし、最新の7つのバックアップ(delta.0〜delta.6)を保持します
alpha
に注意してください 、beta
、gamma
、およびdelta
バックアップ間隔を定義するための単なる名前です。独自の間隔を定義することもできます。
たとえば、デフォルトのバックアップレベルを、次のような意味のある名前に置き換えることができます。
retain hourly 24 retain daily 7 retain weekly 4 retain monthly 12
rnsapshot hourly
を呼び出すとき 、<rsnapshot-root>/hourly.0/
に新しいバックアップを作成します ディレクトリ。このコマンドを毎回実行すると、最大<rsnapshot-root>/hourly.23/
まで新しいディレクトリが作成され続けます。 。
これは、日次、週次、月次のバックアップでも同じです。
次に、Rsnapshotのログファイルを設定する場合は、次の行を削除します。
logfile /var/log/rsnapshot
SSHのデフォルトポートを変更した場合 、この行のコメントを解除し、ここに有効なポート番号を記載する必要があります:
ssh_args -p 2222
最後に、バックアップするディレクトリを定義する必要があります。 rsnapshot構成ファイルで次のディレクティブを見つけて、バックアップディレクトリの場所を設定します。
############################### ### BACKUP POINTS / SCRIPTS ### ############################### # LOCALHOST backup /home/ostechnix/data/ myserverbackup/
ここでは、/home/ostechnix/data/
ディレクトリを作成し、 /rsnapbackup/myserverbackup/
に保存します ディレクトリ。
ヘッズアップ: フルパス(/rsnapbackup/myserverbackup/
など)を指定しなかったことに注意してください )上記の構成で。なぜなら、ルートバックアップディレクトリについてはすでに説明しました。したがって、ここでRsnapshotルートディレクトリを指定する必要はありません。
同様に、リモートクライアントシステムのバックアップ場所を定義します。
# REMOTEHOST backup [email protected]:/home/sk/data/ myclientbackup/
ここでは、リモートクライアントシステムの /home/sk/data/
の内容をバックアップします。 ディレクトリを作成し、 /rsnapbackup/myclientbackup/
に保存します バックアップサーバーのディレクトリ。
繰り返しになりますが、フルパス(/rsnapbackup/myclientbackup/
)を指定しなかったことに注意してください )上記の構成で。なぜなら、ルートバックアップディレクトリはすでに定義されているからです。
/etc/rsnapshot.conf
を保存して閉じます ファイル。
すべての変更を行ったら、次のコマンドを実行して、構成ファイルが構文的に有効であることを確認します。
$ rsnapshot configtest
すべてが順調であれば、次の出力が表示されます。
Syntax OK
3.3。バックアップを開始する
次のコマンドを実行して、Rsnapshotを使用して手動でバックアップを開始します。
# rsnapshot alpha
最初のバックアップは、バックアップのサイズに応じて、数分から数時間かかります。 Rsnapshotは差異のみをバックアップするため、後続のバックアップははるかに高速になります。
同様に、他のバックアップレベルを開始できます:
# rsnapshot beta
# rsnapshot gamma
# rsnapshot daily
3.4。バックアップの確認と表示
バックアップが実際にバックアップサーバーのルートバックアップディレクトリに保存されているかどうかを確認しましょう。
# ls /rsnapbackup/
次の出力が表示されます:
alpha.0
alpha.0
の内容を確認してください ディレクトリ:
# ls /rsnapbackup/alpha.0/
自動的に作成された2つのディレクトリがあります。1つはローカルバックアップ用(myserverbackup)、もう1つはリモートシステム用(myclientbackup)です。
myclientbackup myserverbackup
クライアントシステムのバックアップを確認するには、次を実行します。
# ls /rsnapbackup/alpha.0/myclientbackup/
サーバーシステム(ローカルシステム)のバックアップを確認します:
# ls /rsnapbackup/alpha.0/myserverbackup/
それぞれRnaspshotを実行すると、alpha.0
などの新しいディレクトリが作成されます。 、alpha.1
設定した保持レベルの数に応じて、以下同様に続きます。
# ls /rsnapbackup/ alpha.0 alpha.1
alpha.0
ディレクトリには最新のバックアップが含まれます。
3.5。バックアップをスケジュールする
毎回バックアップを作成するためにrsnapshotコマンドを実行する必要はありません。 cronジョブを定義するだけです 定期的にバックアップジョブを自動化する。
これを行うには、rsnapshot用の新しいcronジョブファイルを作成します。
# nano /etc/cron.d/rsnapshot
次の行を追加します:
0 */4 * * * /usr/bin/rsnapshot alpha 50 23 * * * /usr/bin/rsnapshot beta 00 22 1 * * /usr/bin/rsnapshot delta
最初の行は、6つのアルファがあることを示しています 毎日(0、4、8、12、16、および20時間)撮影されたスナップショット、ベータ 毎晩午後11時50分に撮影されたスナップショット、およびデルタ スナップショットは、毎月1日の午後10時に取得されます。必要に応じてタイミングを調整できます。ファイルを保存して閉じます。
終わり!今後、Rsnapshotは定義された時間にデータを自動的にバックアップします。
詳細については、manページを参照してください。
# man rsnapshot
4。ファイルを復元する
ファイルの復元は簡単です! sudo
をお持ちの場合 またはroot
バックアップサーバーにアクセスするには、Rsnapshotルートディレクトリからファイルをコピーするだけです。つまり、/rsnapbackup/
。
5。結論
LinuxでRsnapshotを使用してバックアップサーバーを設定することはそれほど難しくありません。初期設定は難しいように思われ、少し時間がかかる場合があります。ただし、Rsnapshotバックアップサーバーを正しくセットアップすると、ユーザーの介入なしに、箱から出してすぐに機能します。
リソース:
- RsnapshotのWebサイト
- RsnapshotGitHubリポジトリ
関連記事:
- Rsyncを使用してLinuxシステム全体をバックアップする方法
- LinuxでRsyncを使用してファイルとディレクトリをバックアップする方法
- LinuxでDejaDupを使用してファイルをバックアップおよび復元する方法
- タイムシフトを使用してLinuxシステムをバックアップおよび復元する方法
- LinuxでファイルをUnisonと同期する方法
- Linuxでローカルディレクトリとリモートディレクトリを同期する方法
- Zaloha.shを使用してファイルとディレクトリを同期する方法
- CYA –Linux用のシステムスナップショットおよび復元ユーティリティ
- Restic –高速で安全かつ効率的なバックアップアプリケーション