データ損失の危険を冒さないでください。 Linux コマンド ラインから貴重なデータをバックアップします。これには
rsync
コマンドを使用します。また、そのための優れたオプションのグラフィカル インターフェイスもいくつか見つけました。
rsync はバックアップに最適です
ファイルのバックアップ コピーを作成するには、さまざまな方法があります。私たちは、データを保護するための堅牢かつ柔軟で信頼性の高い方法を示したいと考えました。
rsync
を選択したのは、ソース ディレクトリとターゲット ディレクトリ内のファイル間の差異を計算する
アルゴリズムが高く評価されている
ためです。回避できる場合は、ファイル全体ではなく、ファイルの 2 つのバージョン間の差異のみが転送されます。
この効率性と、1990 年代半ば以来のファイル コピーおよびディレクトリ同期の実行における確かな実績を組み合わせると、
rsync
Linux コマンド ラインからバックアップを作成するための最適な候補となります。
さらに、
rsync
のフロントエンドとして機能する独立したソフトウェア プログラムもあります。これらは
rsync
にグラフィカル ユーザー インターフェイス (GUI) を提供しており、人によっては使いやすいと思われるかもしれません。
バックアップの作成が簡単かつ迅速であるほど、バックアップを作成する可能性が高くなります。
外付けハードドライブでの rsync の使用
データのバックアップ コピーを外付けハード ドライブに作成するには、ハード ドライブがマウントされ、アクセスできる必要があります。書き込みができる場合は、
rsync
も可能です。この例では、SILVERXHD (「Silver eXternal Hard Drive」の略) と呼ばれる外付け USB ハード ドライブが Linux コンピュータに接続されています。オペレーティング システムによって自動マウントされています。
ドライブへのパスを知っておく必要があります。 GNOME で Nautilus ファイル ブラウザを開き、サイドバーでドライブの名前を見つけます。
外部ドライブの名前の上にマウス ポインタを置くと、ツールチップにドライブへのパスが表示されます。
この例では、ツールチップは、外部ドライブ上のファイルシステムのマウント ポイントが「/media/dave/SILVERXHD」であることを示しています。
ファイル ブラウザでこれが行われない場合は、外部ドライブを参照し、その場所でターミナル ウィンドウを開きます。 pwd コマンドを使用して、ターミナル ウィンドウへのパスを出力します。
ソースディレクトリからのコンテンツのコピー
rsync
を使用してディレクトリの内容をバックアップ先にコピーするには、次のコマンドを使用します。 -r (再帰) オプションを使用すると、
rsync
すべてのネストされたサブディレクトリとその内容をコピーします。 「SILVERXHD」という単語の末尾にスラッシュ「/」がありますが、スクリーンショットでは次の行に折り返されていることに注意してください。
rsync -r /home/dave/Documents/ /media/dave/SILVERXHD/
ファイルのコピーが実行され、コマンド ライン プロンプトに戻ります。
外部 USB ドライブを見ると、Documents ディレクトリ内のディレクトリが外部ドライブのルートにコピーされていることがわかります。
ls
ソースディレクトリとその内容のコピー
Documents ディレクトリとその内容を外部ドライブにコピーしたい場合は、次のようにコマンド ラインの「/home/dave/Documents」の末尾から「/」を削除します。
rsync -r /home/dave/Documents /media/dave/SILVERXHD/
混乱を避けるため、この 2 番目のコマンドを実行する前に、以前にコピーした 2 つのディレクトリを外部ドライブから削除しました。
2 番目のコピーが完了した後、外部ドライブをもう一度見てみると、Documents ディレクトリがコピーされていることがわかります。その内容はそのディレクトリ内にあります。これらは外部ドライブのルートにはありません。
特定のターゲットディレクトリへのコピー
ターゲット ハード ドライブ上の特定のディレクトリにコピーするには、ディレクトリの名前をターゲット パスに追加します。 「/home/dave/Documents」ディレクトリの内容を、外部ドライブの「backups」というディレクトリにコピーするとします。
これは次のコマンドで行います。
rsync -r /home/dave/Documents/ /media/dave/SILVERXHD/backups/
外部ドライブを確認すると、バックアップ ディレクトリが作成されており、そのディレクトリ内に「/home/dave/Documents」ディレクトリの内容があることがわかります。
ls
ls バックアップ
ファイルの所有権と権限の保持
-a
(アーカイブ) オプションを使用すると、コピーされたファイル、シンボリックリンク、特殊ブロック ファイルの変更日、ファイルの所有権、アクセス許可などのファイル属性を保存できます。
rsync -ra /home/dave/Documents/ /media/dave/SILVERXHD/backups/
詳細モードの使用
-v
(冗長) オプションを使用すると、
rsync
コピー中のファイルを強制的にリストします。
rsync -rav /home/dave/Documents/ /media/dave/SILVERXHD/backups/
コピーが完了すると、バックアップの概要が表示されます。
- 送信済み: ターゲットに転送されたバイト数。
- 受信: ホストで受信されたバイト数。
- バイト/秒: 実効転送速度です。
-
合計サイズ:
rsyncを使用しなかった場合に送信されるデータのサイズを表します。以降のrsyncの実行では、ファイルの差分のみが転送されます。この数字は、転送する必要がなかったデータを表します。 -
スピードアップ: これは、送信する必要があったデータ量と、存在するデータの総量との比率です。
rsyncすべてのファイルを完全にコピーする必要がある場合 (たとえば、初めて実行するとき)、速度向上は 1.0 になります。次にrsyncを使用すると、転送が最適化されます。ファイル全体ではなく、ファイル間の差分のみが送信されます。変更のないファイルは無視されます。高速化の数値は、転送に必要な少量のデータとファイルの合計サイズの比率を表します。
「進行状況」オプションの使用
-P
(進行状況) オプションを使用すると、
rsync
各ファイルがコピーされた後に小さな進行状況レポートを生成します。
rsync -raP /home/dave/Documents/ /media/dave/SILVERXHD/backups/
提供された情報は、コピーされた各ファイル間で確認できます。
提供される情報は次のとおりです。
- バイト サイズ: このファイルに対して転送されたデータ。
- パーセンテージ: 転送されたファイルのパーセンテージ。
- B/s: データ転送速度。
- 残り時間: このファイルを転送するまでの推定残り時間。
- xfr#: これまでに転送されたファイルの数。
- to-chk: 最適化アルゴリズムによるチェックと検証が必要なファイルの数。
スピードをさらに高める
転送を高速化するには、
-z
(圧縮) オプションを使用します。これにより、転送時にファイルが圧縮されますが、ファイルは圧縮されずにターゲット ディレクトリに保存されます。
圧縮オプションは、多数の小さなファイルが含まれる転送には大きな利点はありません。大きなファイルのコレクションの場合、転送時間を有意義な方法で短縮できます。
ここでは
--partial
オプションも使用しています。
rsync
、ネットワークの不具合やその他の中断によって部分的に転送されたファイルを削除します。
--partial
オプションを指定すると、
rsync
部分的に転送されたファイルをターゲット上に残します。
rsync
が実行される正味時間では、部分的に転送されたファイルの一部を再転送する必要はありません。
誰かが部分的に転送されたファイルを完全に転送されたファイルと間違えるリスクがある場合は、このオプションを使用したくない場合があることに注意してください。
rsync -ravz --partial /home/dave/Documents/ /media/dave/SILVERXHD/backups/
この例では、メリットはわずかです。
速度向上率は 100 分の 2 パーセント向上しました。実際のシナリオでは、速度の向上はさらに顕著になります。
ネットワーク経由での rsync の使用
これまでのところ、外部 USB ドライブをターゲットにしてきました。ネットワークの場所をバックアップのターゲットとして使用するには、コマンド ラインでその場所へのパスを使用します。この記事の調査対象となったネットワーク上には 、ネットワーク接続ストレージ デバイス (NAS) があります。
Nautilus のデバイスへの接続の上にマウスを置くことで、以前に NAS へのパスを特定するために使用したのと同じトリックを使用できます。
ネットワーク経由でバックアップするための特別なオプションはありません。これらはすべて、すでに使用したオプションです。
rsync -ravz --partial /home/dave/Documents/ /media/dave/NAS/dave/backups/
出力形式に違いはありません。
当然のことながら、バイト/秒の数値は大幅に向上しています。
もう一度
rsync
を実行すると、変更がないため転送するファイルがないことがわかりますが、依然としていくつかのバイトが送受信されています。これは、ターゲット上のファイル リストとソース上のファイル リストを比較するために転送する必要があるデータの量です。
この例では、速度向上率が 1 桁向上しています。実際には、パフォーマンス比は 2 つの疑似人工測定値の間のどこかになります。
SSH 経由での rsync の使用
rsync
SSH 接続を介したバックアップをサポートします。コマンドラインでユーザーアカウント名と SSH の場所を指定する必要があります。ここではネットワーク名を使用していますが、IP アドレスを使用することもできます。
SSH 接続の詳細とリモート ターゲット上のネットワーク パスの開始点の間にある「:」に注意してください。
rsync -ravz --partial /home/dave/Documents/ dave@sulaco.local:/home/dave/Backups/
リモート マシンのユーザー アカウントのパスワードを求められます。これはソース マシンのパスワードではありません。
バックアップは通常どおり完了します。セキュア シェル接続で暗号化と復号化が行われるため、スループットは通常のネットワーク接続ほど高速ではありません。
バックアップを自動化する
crontab ファイルにエントリを追加することで、自動バックアップを簡単に作成できます。
crontab -e
毎日 04:30 に自動バックアップが実行されるように設定します (もちろん、その時点でコンピューターの電源が入っている場合)。
rsync
コマンドの構文はまったく変わりません。
Ctrl+O で変更をファイルに書き込み、Ctrl+X で
nano
エディタを閉じます。
Rsync に友好的な態度を与える
コマンド ラインに慣れていない人は、
rsync
にグラフィカル ユーザー インターフェイス (GUI) を搭載した多数のプログラムの 1 つを使用できます。 2 つの良い例は、
luckyBackup
と
Grsync
です。これらのプログラムでは両方とも、多くの
rsync
オプションをユーザー インターフェイスから選択できます。
Grsync
プログラムは、
rync
の視覚的なラッパーであることに重点を置いています。これにより、
rsync
オプションに簡単にアクセスでき、限られた一連の新機能のみが追加されます。
luckyBackup
プログラムは、
rsync
の単純なラッパーをはるかに超えています。これは、バックグラウンドで
rsync
を使用するバックアップ プログラムです。たとえば、
luckyBackup
バックアップの複数の「スナップショット」を作成できます。その後、任意のスナップショット内のファイルのバージョンに「ロールバック」できます。
Grsyncをインストールするには
Ubuntu に
Grsync
をインストールするには、次のコマンドを使用します。
sudo apt install grsync
Fedora に
Grsync
をインストールするには、次のコマンドを使用します。
sudo dnf grsync をインストールします
Manaro に
Grsync
をインストールするには、次のコマンドを使用します。
sudo pacman -Syu grsync
luckyBackup をインストールするには
Ubuntu に
luckyBackup
インストールするには、次のコマンドを使用します。
sudo apt install luckybackup
Fedora に
luckyBackup
インストールするには、次のコマンドを使用します。
sudo dnf インストール luckybackup
Manjaro では、
Arch User Repository
(AUR) から
luckyBackup
をインストールする必要があります。これは
pamac
パッケージ マネージャーを使用して行うことができます。
危険を冒さず、データを頻繁にバックアップしてください
バックアップは絶対に重要です。頻繁にバックアップし、多くの場所にバックアップし、さまざまなメディアにバックアップします。セットアップが完了すると、
rsync
すべての作業を行ってくれます。





