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

LinuxでResticを使用してデータをバックアップおよび復元する方法

このガイドでは、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は、バックアップを保存するために次のバックエンドをサポートしています。

  1. ローカルディレクトリ
  2. sftpサーバー(SSH経由)
  3. HTTPRESTサーバー
  4. AWS S3、
  5. OpenStack Swift、
  6. BackBlaze B2、
  7. Microsoft Azure Blob Storage、
  8. Google Cloud Storage、
  9. および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の公式ドキュメントも確認することをお勧めします 詳細な使用法については。


Linux
  1. MySQL:mysqldumpを使用してデータベースをバックアップ(ダンプ)および復元する方法

  2. 新しくインストールしたLinuxシステムでMackupを使用してアプリケーション設定をバックアップおよび復元する方法

  3. LinuxでSVNリポジトリをバックアップおよび復元する方法

  1. LinuxにAnsibleをインストールしてテストする方法

  2. LinuxでFlatpakをインストールして使用する方法

  3. RabbitMQデータと構成をバックアップおよび復元する方法

  1. LinuxにElasticsearchとKibanaをインストールする方法

  2. Linux でソースから (および YUM を使用して) MongoDB をインストールする方法

  3. GLFW 3 をビルドしてインストールし、Linux プロジェクトで使用する方法