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

LinuxでRsyncを使用してファイルとディレクトリをバックアップする方法

Linuxでデータをバックアップするための信頼性が高く堅牢なソリューションをお探しですか? Rsync あなたをカバーしました!このガイドでは、LinuxでRsyncを使用してファイルとディレクトリをバックアップする手順について説明します。

1。はじめに

すべてが正常に機能することを考慮してデータをバックアップしない場合は、間違っていると言えます。

Linuxユーザーに聞いてみると、システム/データをバックアップしないという苦痛を共有するでしょう。初心者として、私は一度その間違いをし、バックアップの重要性を学びました。

LinuxおよびUnixプラットフォーム用のバックアップツールはたくさんあります。 Rsync (リモート同期)は、最も広く使用され、信頼されているバックアップツールの1つと見なされています。

2。 LinuxでRsyncを使用してファイルとディレクトリをバックアップする

Rsyncを使用すると、次のことができます。

  1. システム全体をバックアップする
  2. または個々のファイルとディレクトリをバックアップします。

最初のタイプでは、Linuxファイルシステム全体を外部デバイスまたはネットワーク共有にコピーします。このコピーを使用して、システム障害が発生した場合にマシンを元の状態に戻すことができます。

2番目のタイプは、選択したファイルとディレクトリのみをバックアップまたはコピーすることです。たとえば、重要な構成ファイルまたは$HOME全体をコピーできます。 ディレクトリを作成し、他のすべてを除外します。

Rsyncを使用してLinuxシステム全体をバックアップする方法についてはすでに説明しました。 。このガイドでは、LinuxでRsyncを使用する選択的なバックアップファイルとディレクトリに焦点を当てています。

2.1。記憶媒体の選択

最初のステップとして、データをバックアップする場所を決定します。それは非常に重要です!

データは、外付けハードディスク、クラウドストレージ、またはネットワーク接続ストレージ(NAS)にバックアップできます。シンプルで安価なオプションは、外付けハードディスクを使用することです。

マシンに2つの別々のドライブがある場合は、両方が同時に故障しないことを考慮して、いずれかのドライブを使用してデータをバックアップできます。

注:

バックアップを真剣に考えている場合は、バックアップを同じドライブ自体に配置しないでください。常に外付けドライブ、セカンダリドライブ、ネットワーク共有、クラウドストレージなどを使用してください。

デモンストレーションの目的で、 1 TBを使用します このガイド全体で外付けハードディスク。

2.3。 Rsyncを使用したファイルのバックアップ

ある場所から別の場所にデータをコピーするためのRsyncの一般的な構文は次のとおりです。

rsync [OPTION…] SRC… [DEST]

ここで

  • OPTION -Rsyncオプションのリスト
  • SRC -ソースファイル/ディレクトリ
  • DEST -目的地

これは、ローカルシステム自体のある場所から別の場所にファイルをバックアップまたはコピーするための簡単なRsyncコマンドです。

$ rsync src_file dest_file

例:

$ rsync -auv ostechnix.txt ostechnix-bak.txt

ここで

  • -a -アーカイブモードモード(ファイルプロパティとシンボリックリンクの維持)
  • -u -受信側で新しいファイルをスキップします。
  • -v -詳細モード

上記のコマンドは、バックアップファイルostechnix-bak.txtを保存します 現在のディレクトリ内のファイル。以下のように別の宛先ディレクトリを指定することもできます:

$ rsync -auv ostechnix.txt Downloads/ostechnix-bak.txt

ターゲットファイル名を指定しない場合、Rsyncはターゲットファイルと同じ名前のソースファイルを使用します。

同じディスクにバックアップファイルを保存することは、実際にはバックアップではありません。バックアップデータは、外付けドライブまたはネットワーク共有に保存するか、少なくとも別のパーティションに保存する必要があります。

たとえば、次のコマンドでファイルを外部ドライブにバックアップします。

$ rsync -auv ostechnix.txt /media/karthick/"My Passport"/

Rsyncには多くの高度なオプションがあります。次の例を見てください:

$ rsync -azvhP ostechnix.txt /media/karthick/"My Passport"/

このコマンドは、ファイルをアーカイブ(属性を保持するため)および圧縮(zip形式)モードで転送し、詳細で人間が読めるプログレスバーを使用します。

2.4。 Rsyncを使用してディレクトリをバックアップする

単一のファイルをバックアップする代わりに、すべてのファイルをディレクトリに配置し、Rsyncを使用してそのディレクトリをバックアップできます。これは、データのミラーリングと同期を行うときに便利です。

このガイドでは、Rsyncを使用してHOMEディレクトリをバックアップする方法を説明します。

2.4.1。 Rsyncを使用してHOMEディレクトリをバックアップする

Rsyncはインクリメンタルファイルコピーツールです。意味-ソースディレクトリ(つまり、/home内の新しいデータまたは変更されたデータのみを同期します この場合)すべてのデータを最初から再同期する代わりに。

$HOMEをバックアップするには ディレクトリを外部ドライブに追加するには、次のコマンドを使用しました:

$ rsync -avxP --delete --exclude-from=/home/karthick/Work/Backup/ignore_list.txt /home/karthick /media/karthick/"My Passport"/

上記のコマンドを分解して、各オプションの機能を見てみましょう。

  • フラグ-a 多くのオプションの組み合わせです。このフラグは、再帰的なコピーを処理し、ファイル/ディレクトリのアクセス許可、所有者などの属性を保持します。
  • フラグ-v rsyncコマンドを実行すると、ターミナルでより多くのログを提供する冗長モードが有効になります。
  • フラグ-x ファイルシステムの境界内でデータを同期するようにrsyncを制限します。同期操作中にスキップされるファイルシステムをホームディレクトリ内にマウントした場合。
  • フラグ-P 2つのフラグの組み合わせです。各同期の進行状況が表示され、部分的に転送されたファイルが保持されます。
  • フラグ--delete ソースでは使用できないが宛先では使用できるすべてのディレクトリとファイルを削除します。 非常に注意する必要があります フラグを使用している間。
  • フラグ--exclude-from=File 引数としてファイルを受け入れます。このファイルには、rsyncによって無視されるファイルとディレクトリのリストが含まれています。

ignore_list.txtという名前のファイルを作成しました これには、除外する必要のあるファイルとディレクトリが含まれています。

上記のコマンドで、この部分は--exclude-from=/home/karthick/Work/Backup/ignore_list.txt 除外リストを定義します。

ignore_list.txtの内容は次のとおりです ファイル:

上の画像から除外されるアイテムのリストは私の個人的な選択であり、あなたのために異なるかもしれません。環境に応じてパラメータを変更してください。

上記のRsyncコマンドの最後の2つの部分は、送信元と宛先の場所です。私の場合、ソースは$ HOMEディレクトリで、宛先は外付けドライブです。環境に応じてソースと宛先を置き換えます。

ヘッズアップ: 外付けドライブのマウントポイントを知りたい場合は、lsblkを実行してください コマンド。

$ lsblk

sdb             8:16   0 931.5G  0 disk  
└─sdb1          8:17   0 931.5G  0 part  /media/karthick/My Passport

rsyncを実行する前に 初めてコマンドを実行する場合は、常にドライランを実行することをお勧めします 。ドライランは、どのような変更が行われるかをシミュレートします。同じコマンドを使用しますが、-n フラグ。

$ rsync -avxP -n --delete --exclude-from=/home/karthick/Work/Backup/ignore_list.txt /home/karthick /media/karthick/"My Passport"/

出力例:

 sending incremental file list
 karthick/
 karthick/.bash_history
         20,527 100%    0.00kB/s    0:00:00 (xfr#1, ir-chk=1056/1060)
karthick/.shutter/
karthick/.shutter/drawingtool.xml
            228 100%    4.54kB/s    0:00:00 (xfr#2, ir-chk=1037/1060)
karthick/.shutter/profiles/
karthick/Pictures/
karthick/Pictures/Selection_001.png
         37,626 100%  349.94kB/s    0:00:00 (xfr#3, to-chk=47/3001)
karthick/Pictures/Selection_002.png
         25,815 100%  227.12kB/s    0:00:00 (xfr#4, to-chk=46/3001)
karthick/Pictures/Selection_003.png
         63,275 100%  532.69kB/s    0:00:00 (xfr#5, to-chk=45/3001)
karthick/Pictures/Selection_004.png
         77,965 100%  581.20kB/s    0:00:00 (xfr#6, to-chk=44/3001)
karthick/Pictures/Selection_005.png
         75,863 100%  532.99kB/s    0:00:00 (xfr#7, to-chk=43/3001)
karthick/Pictures/Selection_006.png
         11,628 100%   75.20kB/s    0:00:00 (xfr#8, to-chk=42/3001)
karthick/Pictures/Selection_007.png
         24,311 100%  150.26kB/s    0:00:00 (xfr#9, to-chk=41/3001)
karthick/Work/Backup/
karthick/Work/Backup/home_dir_backup.sh
            764 100%    4.34kB/s    0:00:00 (xfr#10, to-chk=20/3001)
karthick/Work/Backup/home_dir_backup.sh~
            796 100%    4.37kB/s    0:00:00 (xfr#11, to-chk=19/3001)
karthick/Work/Backup/ignore_list.txt
            182 100%    1.00kB/s    0:00:00 (xfr#12, to-chk=18/3001)
karthick/Work/Backup/ignore_list.txt~
            182 100%    1.00kB/s    0:00:00 (xfr#13, to-chk=17/3001)
...
...
...
sent 88,424 bytes  received 9,459 bytes  195,766.00 bytes/sectotal size is 3,028,935,519  speedup is 30,944.45 (DRY RUN)

すべてが意図したとおりに進んだ場合は、-nを削除します フラグを立ててコマンドを実行し、データをバックアップします。

$ rsync -avxP --delete --exclude-from=/home/karthick/Work/Backup/ignore_list.txt /home/karthick /media/karthick/"My Passport"/

サイズによっては、最初の実行に時間がかかります。

sending incremental file list
karthick/
karthick/.bash_history
         20,527 100%    0.00kB/s    0:00:00 (xfr#1, ir-chk=1056/1060)
karthick/.shutter/
karthick/.shutter/drawingtool.xml
            228 100%    4.54kB/s    0:00:00 (xfr#2, ir-chk=1037/1060)
karthick/.shutter/profiles/
karthick/Pictures/
karthick/Pictures/Selection_001.png
         37,626 100%  349.94kB/s    0:00:00 (xfr#3, to-chk=47/3001)
karthick/Pictures/Selection_002.png
         25,815 100%  227.12kB/s    0:00:00 (xfr#4, to-chk=46/3001)
karthick/Pictures/Selection_003.png
         63,275 100%  532.69kB/s    0:00:00 (xfr#5, to-chk=45/3001)
karthick/Pictures/Selection_004.png
         77,965 100%  581.20kB/s    0:00:00 (xfr#6, to-chk=44/3001)
karthick/Pictures/Selection_005.png
         75,863 100%  532.99kB/s    0:00:00 (xfr#7, to-chk=43/3001)
karthick/Pictures/Selection_006.png
         11,628 100%   75.20kB/s    0:00:00 (xfr#8, to-chk=42/3001)
karthick/Pictures/Selection_007.png
         24,311 100%  150.26kB/s    0:00:00 (xfr#9, to-chk=41/3001)
karthick/Work/Backup/
karthick/Work/Backup/home_dir_backup.sh
            764 100%    4.34kB/s    0:00:00 (xfr#10, to-chk=20/3001)
karthick/Work/Backup/home_dir_backup.sh~
            796 100%    4.37kB/s    0:00:00 (xfr#11, to-chk=19/3001)
karthick/Work/Backup/ignore_list.txt
            182 100%    1.00kB/s    0:00:00 (xfr#12, to-chk=18/3001)
karthick/Work/Backup/ignore_list.txt~
            182 100%    1.00kB/s    0:00:00 (xfr#13, to-chk=17/3001)…
…
…
sent 3,029,863,865 bytes  received 51,335 bytes  53,626,817.70 bytes/sec
total size is 3,028,934,994  speedup is 1.00

2.4.2。バックアップスクリプトを作成する

長いコマンドを覚えるのは難しいかもしれません。長いrsyncの入力を避けるため ターミナルでコマンドを実行すると、簡単なBASHスクリプトを作成して、バックアップを開始するときにいつでも呼び出すことができます。

home_dir_backup.shという名前のスクリプトを作成します :

$ nano home_dir_backup.sh

次の行を追加します:

#!/usr/bin/env bash

# PURPOSE : RSYNC COMMAND TO BACKUP MY HOME DIRECTORY TO EXTERNAL DEVICE..
# REPLACE SOURCE, DESTINATION AND EXCLUDE ACCORDING TO YOUR ENVIRONMENT.

rsync -avxP --delete --exclude-from=/home/karthick/Work/Backup/ignore_list.txt /home/karthick /media/karthick/"My Passport"/

要件に応じて、Rsyncオプションを追加、削除、または変更します。また、ソースパスと宛先パスを独自に変更します。ファイルを保存して閉じます。

スクリプトを実行可能にします:

$ chmod +x <path-to-home_dir_backup.sh>

次に、いつでもスクリプトを実行して、$HOMEディレクトリのバックアップを開始します。

$ ./path-to-home_dir_backup.sh

覚えやすいように、短いスクリプト名を使用してください。

ソフトリンクを作成することもできます /usr/binのスクリプトファイルの場合 または、 $PATHで使用可能なユーザー固有のディレクトリ 変数。

2.4.3。エイリアスを作成

長いコマンドの入力を回避するもう1つの方法は、エイリアスを使用することです。 。

~/.bashrcを編集します ファイルを作成し、最後に次の行を追加します:

alias backup="rsync -avxP --delete --exclude-from=/home/karthick/Work/Backup/ignore_list.txt /home/karthick /
media/karthick/"My Passport"/"

bashrcを調達する 変更をすぐに有効にするファイル:

$ source ~/.bashrc

次のコマンドを実行して、$HOMEディレクトリをバックアップします。

$ backup

何を使いたいかはあなた次第です。エイリアスを作成するか、スクリプトを作成してスクリプトをトリガーすることでrsyncを実行できます。私の場合、スクリプトを作成してから、そのスクリプトのエイリアスを作成しました。

3。バックアップのスケジュール

cronを使用できます 特定の日の特定の時間に実行するバックアップジョブをスケジュールするスケジューラ。

コマンドを使用して現在のユーザーのcronジョブを編集します

$ crontab -e

バックアップスケジュールを定義します。たとえば、毎日午前3時にバックアップを実行するとします。 、次の行を使用します:

0 3 * * * <rsync-command-to-execute>

要件に応じて、毎日、毎週、または毎月のジョブをスケジュールできます。

Cron Jobsを初めて使用する場合は、Linuxでタスクをスケジュールするのに役立つcronジョブの例のリストをまとめました。 cronの使用法の詳細については、次のガイドを参照してください。

  • cronジョブの初心者向けガイド

4。 Rsyncグラフィカルフロントエンド

Linuxを初めて使用する場合は、すべてのRsyncオプションとフラグを理解するのが難しい場合があります。心配ない!利用可能なRsync用のグラフィカルフロントエンドツールがいくつかあります。そのようなツールの1つがGrsyncです 。

Grsyncは、Rsync用のシンプルなグラフィカルユーザーインターフェイスです。 Rsyncコマンドとそのオプションを覚える必要はありません。使いやすいGUIを介してすべてを行うことができます。

詳細については、次のガイドを参照してください。

  • Grsync –Rsync用のシンプルなグラフィカルフロントエンド

5。結論

このガイドでは、LinuxでRsyncを使用してファイルとディレクトリをバックアップする方法について説明しました。ご覧のとおり、Rsyncを使用したファイルとディレクトリのコピーは非常に簡単です!

また、rsyncコマンドを使用してホームディレクトリをバックアップする方法と、それを実行およびスケジュールする方法のいくつかを示しました。

この方法は、データをバックアップするためにLinuxの任意のディレクトリまたはファイル構造に適用することもできます。より優れたバックアップソリューションがあると思われる場合は、以下のコメントセクションからご連絡ください。

関連記事:

  • Rsyncを使用してSSH経由で部分的に転送されたファイルを再開する
  • LinuxでDejaDupを使用してファイルをバックアップおよび復元する方法
  • Rsnapshotを使用してバックアップサーバーをセットアップする方法
  • LinuxでファイルをUnisonと同期する方法
  • Linuxでローカルディレクトリとリモートディレクトリを同期する方法
  • Zaloha.shを使用してファイルとディレクトリを同期する方法
  • CYA –Linux用のシステムスナップショットおよび復元ユーティリティ
  • Restic –高速で安全かつ効率的なバックアップアプリケーション

Linux
  1. Rsyncを使用してLinuxシステム全体をバックアップする方法

  2. Linux で gzip と bzip2 を使用してファイルとディレクトリを圧縮および抽出する方法

  3. Linux で空のディレクトリとファイルを見つけて削除する方法

  1. Linuxでファイルとディレクトリをコピーする方法

  2. Linuxでファイルとディレクトリをアーカイブする方法[パート2]

  3. Linuxでファイルとディレクトリをアーカイブする方法[パート1]

  1. Linuxを使用してディレクトリとファイルを削除する方法

  2. Linuxコマンドラインを使用してファイルとディレクトリを削除する方法

  3. Linuxでファイルとディレクトリの名前を変更する方法