\r\n\r\n
データ消失のリスクを回避するLinuxのコマンドラインから大切なデータをバックアップする。このためにrsyncコマンドを使用する予定ですが、オプションで素敵なGUIも見つかりました。
バックアップファイルの導入には、さまざまな方法があります。私たちは、お客様のデータを保護するための堅牢で柔軟かつ信頼性の高い方法を示したいと考えています。rsyncを選んだのは、rsyncが送信元と送信先のディレクトリのファイルの差分を計算する、非常に立派なアルゴリズムを持っているからです。ファイルの2つのバージョン間の差分のみが転送され、ファイル全体は転送されません(回避できる場合)。
この効率性と、1990年代半ばからファイルコピーやディレクトリ同期を実行してきた実績が組み合わさると、rsyncはLinuxのコマンドラインからバックアップを作成するための完璧な候補となります。
さらに、rsyncのフロントエンドとして機能するスタンドアロン・ソフトウェアが多数存在します。彼らはrsyncのグラフィカル・ユーザー・インターフェース(gui)を提供しており、人によってはこちらの方が使いやすいと感じるかもしれません。
バックアップがシンプルで高速であればあるほど、その可能性は高くなります。
外付けドライブにデータをバックアップするには、そのドライブをインストールし、アクセスする必要があります。書き込みができれば、rsyncもできる。この例では、SILVERXHD(「silverexternalhardwire」の略)というUSB外付けハードディスクをLinuxコンピュータに***挿入しています。オペレーティングシステムによって自動的にインストールされています。
GNOMEでは、Nautilusファイルブラウザを開き、サイドバーでドライブの名前を見つけます。
外付けドライブの名前にマウスポインタを合わせると、ツールチップにドライブへのパスが表示されます。
この例では、外付けドライブのファイルシステムのマウントポイントが "/media/dave/SILVERXHD" であることがツールチップに表示されています。
ファイルブラウザでこの操作ができない場合は、外付けドライブを参照し、その場所でターミナルウィンドウを開いてください。pwd コマンドを使用して、ターミナルウィンドウにパスを表示します。
rsyncを使用してディレクトリの内容をバックアップ対象にコピーするには、以下のコマンドを使用します。
r (recursive) オプションを使用すると、rsync はネストされたすべてのサブディレクトリとその内容をコピーします。なお、「SILVERXHD」の語尾にフォワードスラッシュ「/」がありますが、これはすでにスクリーンショットの次の行に回り込んでいます。
rsync -r /home/dave/Documents/ /media/dave/SILVERXHD/ファイルがコピーされると、コマンドラインプロンプトに戻ります。
外付けUSBドライブを見ると、Documentsディレクトリのディレクトリが外付けドライブのルートにコピーされていることがわかります。
lsDocumentsディレクトリとその内容を外部ドライブにコピーするには、以下のようにコマンドラインから「/home/dave/Documents」の末尾にある「/」を削除します。
rsync -r /home/dave/Documents /media/dave/SILVERXHD/混乱を避けるため、2番目のコマンドを実行する前に、先にコピーした2つのディレクトリを外付けドライブから削除しました。
2回目のコピーを完了させて外付けドライブを見ると、「ドキュメント」ディレクトリがコピーされていることがわかります。その内容は、そのディレクトリの中にあります。外付けドライブのルートディレクトリにない。
ターゲットドライブ上の特定のディレクトリにコピーする場合は、そのディレクトリ名をコピー先のパスに追加します。例えば、「/home/dave/Documents」ディレクトリの内容を、外付けドライブの「backups」というディレクトリにコピーしたいとします。
以下のコマンドで実現できます。
rsync -r /home/dave/Documents/ /media/dave/SILVERXHD/backups/外付けドライブを確認すると、backupsディレクトリが作成され、その中に「/home/dave/Documents」ディレクトリの内容があることが確認できます。
ls ls backupsコピーされたファイル、シンボリックリンク、特殊ブロックファイルに対して、変更日、ファイル所有者、アクセス権などのファイル属性を保持するには、-a(archive)オプションを使用します。
rsync -ra /home/dave/Documents/ /media/dave/SILVERXHD/backups/v (冗長) オプションは、rsync がこれらのファイルをコピーするときに一覧を表示するように強制します。
rsync -rav /home/dave/Documents/ /media/dave/SILVERXHD/backups/コピーが完了すると、バックアップの概要が表示されます。
P (progress) オプションは、各ファイルがコピーされた後、rsync が小さな進捗報告書を生成するようにします。
rsync -raP /home/dave/Documents/ /media/dave/SILVERXHD/backups/提供される情報は、コピーされた各ファイルの間で確認することができます。
提供する情報です。
転送を高速化するには、-z(compress)オプションを使用します。これは転送時にファイルを圧縮しますが、転送先のディレクトリにはファイルは圧縮されずに保存されます。
小さなファイルが多数含まれる転送の場合、圧縮オプションは大きな効果をもたらしません。大きなファイルの集合体であれば、転送時間を大幅に短縮することができます。
ここでは、-partialオプションも使用しています。rsyncは、ネットワーク障害やその他の中断により、部分的に転送されたファイルを削除します。-partialオプションは、rsyncが部分的に転送されたファイルをターゲットに残すことを強制します。rsyncが実行されているときは、部分的に転送されたファイルを再転送する必要はありません。
ただし、部分的に転送されたファイルを完全に転送されたファイルと勘違いする人がいる場合は、このオプションを使用しない方がよいでしょう。
rsync -ravz --partial /home/dave/Documents/ /media/dave/SILVERXHD/backups/私たちの場合、利益はわずかでした。
加速度比は200%アップ!実戦ではさらにスピードアップを実感できるはずです。
今のところ、ターゲットは外付けのUSBメモリです。ネットワーク上の場所をバックアップのターゲットとして使用するには、その場所へのパスをコマンドラインで使用します。今回調査したネットワークには、NAS(Network Attached Storage Device)が搭載されています。
Nautilusでそのデバイスへの接続にカーソルを合わせることで、先ほどと同じトリックを使ってNASのパスを特定することができるのです。
クロスネットワークバックアップのための特別なオプションはなく、これらはすでに使用されているオプションです。
rsync -ravz --partial /home/dave/Documents/ /media/dave/NAS/dave/backups/出力形式に違いはありません。
当然のことながら、バイト/秒の数値は大幅に向上しています。
もう一度rsyncを実行すると、何も変わっていないので転送するファイルがないことがわかりますが、まだいくつかのバイトが往復転送されていることがわかります。ターゲット上のファイル一覧とソース上のファイル一覧を比較したときに転送が必要なデータ量です。
この場合、加速度比は一桁高くなります。事実上、性能比はこの2つの擬似マニュアルの中間に位置することになります。
rsyncは、SSH接続でのバックアップをサポートしています。コマンドラインでユーザーアカウント名とSSHの場所を指定する必要があります。ここではネットワーク名を使用していますが、IPアドレスを使用することも可能です。
SSH接続の詳細とリモートターゲット上のネットワークパスの開始位置の間に": "があることに注意してください。
rsync -ravz --partial /home/dave/Documents/ [email protected]:/home/dave/Backups/リモートコンピュータのユーザーアカウントのパスワード(コピー元コンピュータのパスワードではない)を入力するよう求められます。
暗号化と復号化は安全なシェル接続で行われるため、スループットは通常のネットワーク接続ほど速くはありません。
crontabファイルにエントリーを追加することで、簡単に自動バックアップを作成することができます。
crontab -e毎日04:30に実行される自動バックアップを設定します(もちろん、その時間にコンピュータの電源が入っていればですが)。 rsyncコマンドの構文は全く変わっていません。
Ctrl+Oで変更内容をファイルに書き込み、Ctrl+Xでnanoエディタを終了します。
関連:Linuxでタスクをスケジュールする方法:Crontabファイル入門
コマンドラインに慣れていない人は、rsyncにグラフィカル・ユーザー・インターフェース(GUI)を配置する多くのプログラムのうちの1つを使用することができます。2つの良い例がluckyBackupとGrsyncで、どちらもGUIで多くのrsyncオプションを選択することができます。
Grsyncプログラムは、rsyncのビジュアルラッパーになることを目指しています。rsyncのオプションに簡単にアクセスでき、限られた新機能を追加するだけです。
luckyBackup プログラムは、単なる rsync のラッパーではありません。バックグランドでrsyncを使用するバックアッププログラムです。例えば、luckyBackupはバックアップの「スナップショット」を複数作成することができます。そして、スナップショット内のファイルの任意のバージョンに「ロールバック」することができます。
UbuntuにGrsyncをインストールするには、次のコマンドを使用します。
sudo apt-get install grsyncFedoraにGrsyncをインストールするには、次のコマンドを使用します。
sudo dnf install grsyncManaroにGrsyncをインストールするには、次のコマンドを使用します。
sudo pacman -Syu grsyncUbuntuにluckyBackupをインストールするには、次のコマンドを使用します。
sudo apt-get install luckybackupFedoraにluckyBackupをインストールするには、次のコマンドを使用します。
sudo dnf install luckybackupManjaro では、luckyBackup は Arch User Repository (AUR) からインストールする必要があります。これを行うには pamac パッケージマネージャを使うことができます。
バックアップは絶対に必要です。こまめなバックアップ、複数の場所へのバックアップ、異なるメディアへのバックアップ。一度セットアップすれば、rsyncはこのすべてをやってくれる。