このガイドでは、Resticとは何か、さまざまなLinuxディストリビューションにResticをインストールする方法、そして最後にLinuxオペレーティングシステムでResticを使用してデータをバックアップおよび復元する方法について説明します。
Restic-高速で安全かつ効率的なバックアップアプリケーション
静的 は、高速でオープンソースの安全なクロスプラットフォームバックアッププログラムです。さまざまなバックエンドに保存されている暗号化されたリポジトリに、ファイルとディレクトリの複数のリビジョンを保存できます。
Resticは暗号化を使用して、データの機密性と整合性を保証します。 AES-256を使用してデータを暗号化します カウンターモードで、 Poly1305-AESを使用して認証します 暗号化メッセージ認証コード。
Resticを使用したデータのバックアップと復元は簡単で、非常に高速です。 Rsync と同じように、変更されたファイル(増分バックアップ)のみを転送します 。
Resticを使用すると、ローカルディスクやリモートシステム、またはクラウドストレージ内のファイルやディレクトリを簡単にバックアップできます。 Resticは、AWS、Azure、BackBlaze、Google Cloud、OpenStackなどの一般的なクラウドストレージバックエンドをサポートしています。
ResticはGoを使用して記述されています プログラミング言語とそのソースコードは、GitHubで無料で入手できます。クロスプラットフォームのバックアップアプリケーションです。 GNU / Linux、macOS、FreeBSD、openBSD、MicrosoftWindowsをサポートしています。
LinuxにResticをインストールする
Resticは、一般的なLinuxオペレーティングシステム用にパッケージ化されています。
Alpine LinuxにResticをインストールする:
$ sudo apk add restic
Arch Linux、EndeavourOS、Manjaro LinuxにResticをインストールする:
Resticは、ArchLinuxのデフォルトのリポジトリで利用できます。 [Community]
を確認してください リポジトリが有効になっていて、 Pacman を使用してArchLinuxおよびEndeavourOS、ManjaroLinuxなどのバリアントにResticをインストールします。 以下に示すように。
$ sudo pacman -S restic
AURからResticをインストールする:
ResticはAURでも利用できます。したがって、パルなどのAURヘルパーを使用してインストールできます。 またはYay 、Archベースのシステム。
$ paru -S restic-git
または、
$ yay -S restic-git
Debian、Ubuntu、Linux Mint、Pop_OSにResticをインストールしてください!:
$ sudo apt-get install restic
FedoraにResticをインストールする:
$ sudo dnf install restic
RHEL、CentOS、AlmaLinux、Rocky LinuxにResticをインストールします:
$ sudo dnf copr enable copart/restic
$ sudo dnf install restic
SolusにResticをインストールする:
$ sudo eopkg install restic
Nix OSにResticをインストールする:
$ nix-env --install restic
openSUSEにResticをインストールする:
$ sudo zypper install restic
Linuxbrewを使用してresticをインストールします:
$ brew install restic
ソースからResticをインストールする:
その他のオペレーティングシステムの場合は、以下のようにコンパイルしてインストールできます。まず、 Goがインストールされていることを確認します システム上の言語。
- LinuxにGo言語をインストールする方法
Goをインストールしたら、git clone restic github respository:
$ git clone https://github.com/restic/restic
このコマンドは、現在の作業ディレクトリにあるresticリポジトリのすべてのコンテンツのクローンを作成します。
ResticディレクトリへのCd:
$ cd restic
そして、以下のようにResticをインストールします:
$ go run build.go
インストールされているResticのバージョンを確認します:
$ restic version restic 0.12.0 compiled with go1.14.12 on linux/amd64
Resticの更新
公式リポジトリからResticをインストールした場合は、少し古いバージョンである可能性があります。
Resticを最新バージョンに更新するには、次のコマンドを実行します。
$ sudo restic self-update
次に、コマンドでバージョンを確認します:
$ restic version restic 0.12.1 compiled with go1.16.6 on linux/amd64
LinuxでResticを使用してデータをバックアップおよび復元する
Resticは、バックアップを保存するために次のバックエンドをサポートしています。
- ローカルディレクトリ
- sftpサーバー(SSH経由)
- HTTPRESTサーバー
- AWS S3、
- OpenStack Swift、
- BackBlaze B2、
- Microsoft Azure Blob Storage、
- Google Cloud Storage、
- およびrcloneを介した他の多くのサービス 。
それでは、ローカルディレクトリのデータをバックアップおよび復元する方法を見てみましょう。
新しいローカルリポジトリを作成する
まず、バックアップを保存するためのリポジトリを作成しましょう。たとえば、 mybackupという名前のリポジトリを作成します $HOMEディレクトリにあります。
$ restic init --repo ~/mybackup
リポジトリのパスワードを2回入力します。後でこのリポジトリにアクセスするには、パスワードを覚えておく必要があります。そうしないと、リポジトリに保存されているデータが完全に失われます。警告されました!
enter password for new repository: enter password again: created restic repository c1c5bcfdb8 at /home/sk/mybackup Please note that knowledge of your password is required to access the repository. Losing your password means that your data is irrecoverably lost.
上記の出力にあるように、IDがc1c5bcfdb8
/home/sk/mybackup
場所。
次に、新しく作成したリポジトリにデータをバックアップします。
Resticを使用してデータをローカルディレクトリにバックアップする
~/mydata
全体をバックアップします ディレクトリ(ディレクトリ自体を含む)をリポジトリに ~/mybackup
コマンドの使用:
$ restic -r ~/mybackup backup ~/mydata
リポジトリのパスワードを入力してください:
出力例:
enter password for repository: repository c1c5bcfd opened successfully, password is correct no parent snapshot found, will read all files Files: 7 new, 0 changed, 0 unmodified Dirs: 4 new, 0 changed, 0 unmodified Added to the repo: 21.919 MiB processed 7 files, 21.913 MiB in 0:00 snapshot 7457d80e saved
ご覧のとおり、resticは指定されたディレクトリのバックアップを作成しました。つまり mydata 。さらに、現在のバックアップのスナップショットを一意の名前 7457d80eで作成しました 。
上記のコマンドを分解して、各オプションの機能を見てみましょう。
restic
:resticコマンド-
-r
:リポジトリを示します -
~/mybackup
:リポジトリ名 backup
-ファイル/フォルダをバックアップするためのResticサブコマンド-
~/mydata
-バックアップするディレクトリ。
バックアップディレクトリにファイル/フォルダを追加します。たとえば、 vi editor.pdf
という名前の新しいファイルを追加しました ~/mydata
内 ディレクトリ。ここで、同じresticコマンドをもう一度実行します:
$ restic -r ~/mybackup backup ~/mydata enter password for repository: repository c1c5bcfd opened successfully, password is correct using parent snapshot 7457d80e Files: 1 new, 0 changed, 7 unmodified Dirs: 0 new, 3 changed, 1 unmodified Added to the repo: 50.123 KiB processed 8 files, 21.957 MiB in 0:00 snapshot 963d4de3 saved
Resticは、実行するたびに一意の名前で新しいスナップショットを作成し続けます。
Resticは増分バックアップを行うため、後続のバックアップは前のバックアップよりもかなり高速になります。バックアップフォルダにデータを追加し続け、バックアップを実行して多くのスナップショットを作成できます。
Resticでは、ディレクトリだけでなく、個々のファイルもバックアップできます。
$ restic -r ~/mybackup backup ~/mydata/vi\ editor.pdf
出力例:
enter password for repository: repository c1c5bcfd opened successfully, password is correct no parent snapshot found, will read all files Files: 1 new, 0 changed, 0 unmodified Dirs: 3 new, 0 changed, 0 unmodified Added to the repo: 47.129 KiB processed 1 files, 45.139 KiB in 0:00 snapshot 59439d78 saved
ご覧のとおり、59439d78という名前の新しいスナップショットがリポジトリに作成されます。
スナップショットの一覧表示
ローカルリポジトリで使用可能なスナップショットを一覧表示するには、次のコマンドを実行します。
$ restic -r ~/mybackup snapshots
出力例:
enter password for repository: repository c1c5bcfd opened successfully, password is correct ID Time Host Tags Paths ---------------------------------------------------------------------- 7457d80e 2021-08-13 12:51:58 ostechnix /home/sk/mydata 963d4de3 2021-08-13 12:57:55 ostechnix /home/sk/mydata ---------------------------------------------------------------------- 2 snapshots>
ご覧のとおり、2つのスナップショット、つまり 7457d80e があります および963d4de3 。
2つのスナップショットの違いを確認する
2つのスナップショットの違いを確認するには、 diffを使用できます。 以下のようなオプション:
$ restic -r ~/mybackup diff 7457d80e 963d4de3
このコマンドは、指定された2つのスナップショットを比較し、違いを一覧表示します。つまり、追加されたファイル、リポジトリから削除されたファイルとディレクトリの数です。
enter password for repository: repository c1c5bcfd opened successfully, password is correct comparing snapshot 7457d80e to 963d4de3: + /home/sk/mydata/vi editor.pdf Files: 1 new, 0 removed, 0 changed Dirs: 0 new, 0 removed Others: 0 new, 0 removed Data Blobs: 1 new, 0 removed Tree Blobs: 4 new, 4 removed Added: 50.123 KiB Removed: 4.511 KiB
ご覧のとおり、バックアップに新しいpdfファイルを追加しました。
ファイルとフォルダを除外する
一部のファイルまたはディレクトリを除外することもできます。たとえば、次のコマンドはすべての .docを除外します タイプファイル:
$ restic -r ~/mybackup backup --exclude=*.doc ~/mydata
または、バックアップから除外するすべてのファイルとフォルダの実際の場所をファイルに入れ、バックアップコマンドでそのパスを指定することもできます。
たとえば、 excludeという名前のファイルを作成します :
$ vi exclude.txt
除外するファイルまたはフォルダを追加します:
*.txt ostechnix.zip mydata/movies
次に、コマンドを使用してバックアッププロセスを開始します:
$ restic -r ~/backup backup --exclude-file=exclude.txt ~/mydata
restic backup
の詳細については コマンドを実行してください:
$ restic help backup
これで、データのバックアップに成功しました。次に、ローカルバックアップからデータを復元する方法を説明します。
Resticを使用してデータを復元する
データの復元は簡単です!
まず、次のコマンドを使用して、リポジトリから利用可能なスナップショットを一覧表示します。
$ restic -r ~/mybackup snapshots
7457d80e
、実行:
$ restic -r ~/mybackup restore 7457d80e --target ~/mydata
出力例:
enter password for repository: repository c1c5bcfd opened successfully, password is correct restoring <Snapshot 7457d80e of [/home/sk/mydata] at 2021-08-13 12:51:58.592771333 +0530 IST by [email protected]> to /home/sk/mydata
スナップショットからデータを復元しました7457d80e 〜/ mydataへ ディレクトリ。
スナップショットから単一のファイルを復元するには、次のようにします。
$ restic -r ~/mybackup restore 7457d80e --target ~/mydata file.json
詳細については、restore
を確認してください コマンドヘルプセクション。
$ restic help restore
リポジトリをマウントしてバックアップデータを表示する
バックアップは通常のファイルシステムとして参照できます。これは、リポジトリのコンテンツを表示する場合に便利です。
まず、マウントポイントを作成します:
$ mkdir ostechnix
次に、リポジトリを ostechnixにマウントします 以下に示すマウントポイント。
$ restic -r ~/mybackup mount ostechnix/
このコマンドは、Resticリポジトリをローカルファイルシステムにマウントします。
enter password for repository: repository c1c5bcfd opened successfully, password is correct Now serving the repository at ostechnix/ When finished, quit with Ctrl-c or umount the mountpoint.
ここで、ファイルマネージャを開くと、リポジトリがそこにマウントされていることがわかります。スナップショットフォルダに移動し、データを確認します。
完了したら、 Ctrl-c
を押します。 ファイルマネージャからマウントポイントを終了またはアンマウントします。
詳細については、ヘルプセクションを確認してください:
$ restic help mount
スナップショットを削除する
まず、リポジトリ内の利用可能なすべてのスナップショットを一覧表示します。
$ restic -r ~/mybackup snapshots enter password for repository: repository c1c5bcfd opened successfully, password is correct ID Time Host Tags Paths ---------------------------------------------------------------------- 7457d80e 2021-08-13 12:51:58 ostechnix /home/sk/mydata 963d4de3 2021-08-13 12:57:55 ostechnix /home/sk/mydata ---------------------------------------------------------------------- 2 snapshots
スナップショットを削除するには、たとえば 963d4de3 、実行:
$ restic -r ~/mybackup forget 963d4de3
出力例:
enter password for repository: repository c1c5bcfd opened successfully, password is correct [0:00] 100.00% 1 / 1 files deleted
スナップショットが削除されているかどうかを確認します:
$ restic -r ~/mybackup snapshots enter password for repository: repository c1c5bcfd opened successfully, password is correct ID Time Host Tags Paths ---------------------------------------------------------------------- 7457d80e 2021-08-13 12:51:58 ostechnix /home/sk/mydata ---------------------------------------------------------------------- 1 snapshots
スナップショットがなくなりました!ただし、このスナップショットのファイルによって参照されたデータは、引き続きリポジトリに保存されます。
参照されていないデータをクリーンアップするには、次のコマンドを実行します:
$ restic -r ~/mybackup prune
出力例:
enter password for repository: repository c1c5bcfd opened successfully, password is correct loading indexes... loading all snapshots... finding data that is still in use for 1 snapshots [0:00] 100.00% 1 / 1 snapshots searching used packs... collecting packs for deletion and repacking [0:00] 100.00% 8 / 8 packs processed to repack: 0 blobs / 0 B this removes 0 blobs / 0 B to delete: 5 blobs / 50.279 KiB total prune: 5 blobs / 50.279 KiB remaining: 25 blobs / 21.919 MiB unused size after prune: 0 B (0.00% of remaining size) rebuilding index [0:00] 100.00% 6 / 6 packs processed deleting obsolete index files [0:00] 100.00% 3 / 3 files deleted removing 2 old packs [0:00] 100.00% 2 / 2 files deleted done
すべてのスナップショットと関連データを削除した後、リポジトリを削除できます。
$ rm -fr ~/mybackup/
結論
これで、Resticバックアッププログラムをインストールして使用し、重要なデータを保護する方法をマスターしました。 Resticを使用してファイルとフォルダをローカルディレクトリにベイクアップする方法についてのみ説明しました。もっとある!今後のガイドでは、データをリモートシステムとクラウドストレージにバックアップする方法を説明します。
Resticの公式ドキュメントも確認することをお勧めします 詳細な使用法については。