TimeMachineのように使用できるLinux向けのスナップショットアプリTimeshiftの使い方

はじめに
Macを使っていた頃はTimeMachineを使ってスナップショットを取っていました。TimeMachineでスナップショットを取っておけば万が一のことがあっても簡単に特定の日時の状態に復元することができるため必ず使っていました。Ubuntuを常用するようになってからは特にTimeMachineのようなアプリを知らなかったため使用していませんでしたが、スナップショットを取得して復元できるTimeshiftというアプリがあることを知りました。TimeshiftはLinux用のTimeMachineといったところです。この記事では、UbuntuにTimeshiftをインストールする手順とスナップショットを作成するまでの使い方をまとめます。
できるようになること
Linuxのスナップショットを保存できるようになります。なお、スナップショット対象とする、または除外するファイルやフォルダの指定やスナップショットの保存タイミングを細かく制御できます。
前提と環境
以下の通りです。
- OS : Ubuntu18.04
- バックアップ取得用の外付けストレージ: Samsung T5
Timeshiftについて
TimeshiftはWindowsの「システム復元」やMacOSのTimeMachineのような機能を持つアプリです。Timeshiftではユーザのデータ(ドキュメントや音楽、動画データ等)をバックアップすることよりもシステムを非常時の前の状態に戻すことを目的としているようで、公式サイトではユーザのデータをスナップショットの対象に含めないことをおすすめしています。ただし、ユーザのデータをスナップショット内に含めることももちろん可能となっており、またフィルタを作成してスナップショット対象とする範囲を細かく制御できるようになっています。 Timeshiftには以下のような特徴があります。
機能 | 内容 |
---|---|
差分のみ保存 | スナップショットは差分のみ保存するため、無駄にディスクを消費しません。 |
マルチレベルでのスナップショット保存 | スナップショットの保存タイミングと頻度、そして最新何代までを保存するかを指定できます。なお、よくあるバックアップソフトのように指定した曜日や時間にバックアップを作成するのではなく、時間、日、週、月単位でスナップショットを保存します。つまり、例えば時間単位の場合は、スナップショットを初めて作成した時点から1時間後に次のスナップショットを作成します。最新何代のスナップショットを保存するかも指定できます。 |
スナップショット保存・除外対象とするフィルタ | スナップショット対象に含めるまたは除外するフォルダ、ファイルをフィルタで細かく制御可能です。正規表現を使ったファイルの指定も可能です。 |
オンラインリストア | システムが稼働している状態でスナップショットからシステムをリストアできます。 |
クロスディストリビューションでのリストア | 例えばXubuntuで取得していたスナップショットをLinux Mint上でリストアすることも可能です。(ただし隠しファイルをスナップショットに含めるなどいくつか注意点もあるため公式ドキュメント参照) |
Timeshiftは以下の公式リポジトリで公開されています。使い方や特徴についても詳しく書かれています。
System restore tool for Linux. Creates filesystem snapshots using rsync+hardlinks, or BTRFS snapshots. Supports scheduled snapshots, multiple backup levels, and exclude filters. Snapshots can be restored while system is running or from Live CD/USB.
Timeshiftをインストールする
インストール方法は簡単で、以下のコマンドを順番に実行します。
最初のコマンドでTimeshiftのリポジトリを追加してインストールしています。
Timeshiftを起動して設定する
Timeshiftは以下のようにアクティビティから検索して起動できますし、端末からも起動できます。
Timeshiftを起動すると、以下のようなウィンドウが表示されます。「Help」と書かれた部分をクリックすると以下のように説明が表示されます。なお、以降の設定は全て後ほど設定し直すことができます。
上記ではスナップショットのタイプを選択する必要があります。選択肢は以下の2つになります。私の環境ではファイルシステムとしてBTRFSを使用していないため、RSYNCを選択します。
RSYNC | Linuxコマンドのrsync を使用してスナップショットを作成します。rsync でシステム上のファイルをコピーします。また、スナップショット間の差分については、差分がないファイルはハードリンクで管理されます。ハードリンクについて知りたい方は、ハードリンク (hard link)とは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典がイメージの理解とシンボリックリンクの違いを理解するのに参考になると思います。 |
---|---|
BTRFS | 全てのスナップショットはブロックレベルで作成されます。ここのブロックというのは、BTRFSというLinuxのファイルシステムにおけるブロックです。BTRFSについて知りたい方はBtrfs - archlinuxに詳しく書かれており参考になると思います。 |
なお、BTRFSに必要なパッケージがインストールされていない場合は以下のようにエラーが表示されます。
スナップショットのタイプを選択後、ウィンドウ下部にある「Next」をクリックすると、以下のようにシステムサイズの計算がはじまりますので少しだけ待機します。
続いて、「Select Snapshot Location」というウィンドウに移り、スナップショットの保存場所を指定するよう要求されます。
もし指定した場所のフォーマットがLinuxのフォーマットになっている場合は以下のようにメッセージが表示されますので、新しくExt4などでフォーマットするか、もしくはすでにフォーマットされている外部ストレージを使用する必要があります。
スナップショットの保存場所を選択して、「Next」をクリックすると、以下のように「Select Snapshot Levels」というウィンドウが表示されます。ここでは、スナップショットの保存レベルを選択します。ここでのレベルというのは、スナップショットの保存タイミングと頻度、そして最新何代までを保存するかを指します。
上記画像にあるように、レベルはMonthly(毎月)、Weekly(毎週)、Daily(毎日)、Hourly(毎時)、Boot(毎起動時)を選択できます。Dailyで数値を5に設定すると、1時間毎のスナップショットを5世代分保存します。なお、Bootを選択した場合は、Linuxが起動する度にスナップショットの作成が開始されますが、起動直後ではなく起動してから10分後に作成するようになっています。
レベルを選択後、「Next」をクリックすると最後に「User Home Directories」というウィンドウでユーザのホームディレクトリをスナップショットに含めるかを選択します。
冒頭でも書いたように、Timeshiftはスナップショットにユーザのデータを含めないことを推奨しており、デフォルトではルートユーザを含むユーザのホームディレクトリは「Exclude All」(全て除外)に選択されています。
もしユーザのホームディレクトリ内の隠しファイル(例えば、.bashrc
など)をスナップショットに含めたい場合は「Include Hidden」、ユーザのホームディレクトリ内の隠しファイル含む全てのファイルをスナップショットに含めたい場合は「Include All」を選択します。
選択後、「Next」をクリックすると以下のように「Setup Complete」というウィンドウが表示されるのでウィンドウ下部にある「Finish」をクリックして完了です。
Timeshiftでスナップショットを作成する
設定が完了すると、以下のようなダッシュボードが開きます。以下で「Create」をクリックするとスナップショットの作成が開始されます。
スナップショットの作成が開始すると、以下のように始まりますのでしばらく待機します。
スナップショットの作成が完了すると、以下のように作成日時とともにスナップショットの情報がリストに追加されます。
なお、スナップショットのファイル自体は、指定したロケーション直下に/timeshift
というディレクトリが作成されその中に保存されます。
スナップショットに含める、除外する対象をフィルタで指定する
Timeshiftではフィルタ機能も用意されています。フィルタを作成するには、以下のように「Settings」をクリックします。
その後、「Filters」タブをクリックするとフィルタが表示されます。
上記ウィンドウ内の下部にある「Add」をクリックすると、以下のように正規表現でのパターンを入力するためのダイアログが開きます。ここで自由に指定したいパターンを入力して、「OK」をクリックします。
もしくは、「Add Files」でファイル、「Add Folders」でフォルダを選択して指定できます。「Add Files」、「Add Folders」をクリックすると、ファイルやフォルダの選択ダイアログが表示されます。 選択すると、以下のようにフィルタが追加されます。追加されたフィルタにはそれぞれ「+」、「ー」を選択できるようになっており、「+」でスナップショット対象に含める、「ー」でスナップショット対象から除外するためのフィルタになります
ウィンドウ下部右端にある「Summary」をクリックすると、指定したフィルタによってどのファイル、フォルダが除外されるかを確認できます。
まとめ
Timeshiftを使用することで非常時にシステムを復元できるという安心感が得られます。まだ実際に復元をしてみてまとめれればと思います。
関連記事
- 公開日:2020/02/16 更新日:2020/02/16
圧縮、暗号化、リモート対応の差分バックアップを作成できる「Borg Backup」の使い方
圧縮、暗号化に対応し差分バックアップを作成できるソフトウェアである「Borg Backup」をUbuntuにインストールして使ってみたのでその手順をまとめます。「Borg Backup」はLinux、macOSに対応しています。
- 公開日:2020/02/14 更新日:2020/02/14
自分専用の後で読むサービスを構築できる「Wallabag」をUbuntu + Nginxで構築する手順
後で読むサービスのPocketにかなり近く、機能豊富なオープンソースのWallabagをUbuntuにインストールしたのでその手順をまとめます。
- 公開日:2020/02/12 更新日:2020/02/12
ファイル単位で暗号化して保存できるCryptomatorをインストールして使う手順
Cryptomatorは、ファイル単位での暗号化が可能なソフトウェアです。この記事では、UbuntuにCryptomatorをインストールする手順と使い方をまとめます。
- 公開日:2020/01/22 更新日:2020/01/22
WireGuardでVPNサーバーを構築してスマホやPCから接続する手順
WireGuardはOpenVPNよりもシンプルで高速、より安全なVPNとして開発が進められており、OpenVPNに代わるVPNとして期待されています。この記事ではWireGuardを使ってVPNサーバーを構築し、そのVPNサーバーにUbuntuやiPhoneから実際に接続してみるまでの手順をまとめます。
- 公開日:2020/01/17 更新日:2020/01/17
ディレクトリ表示や移動をインタラクティブに実行できるコマンドツール「Broot」
Linuxで端末を使っている時にディレクトリ構造をざっくり確認したり各ディレクトリにどのようなファイルが入っているかを確認したりしたい場合があると思います。Brootはディレクトリ構造を表示しつつさらにそこから各ディレクトリに移動したりファイルを検索したりできるコマンドラインツールです。
開発アプリ
