ウェブサイト検索

接続時にファイルを USB メディアに自動バックアップする方法


バックアップはデータ損失に対する最後の防御策であり、元のデータを復元する手段を提供します。データのバックアップには、外付けハード ドライブ、USB フラッシュ ディスク、共有ネットワーク フォルダなどのリムーバブル メディア、またはリモート ホストを使用できます。忘れずに重要なファイルを自動的にバックアップするのは非常に簡単です (そして同様に不可欠です)。

こちらもお読みください: 2018 年の Linux システム向けの優れたバックアップ ツール 24 選

この記事では、Linux マシンに接続した後、リムーバブル メディアにデータを自動バックアップする方法を学びます。外部ディスクを使用してテストします。これは、実際のソリューションで udev の使用を開始するための基本ガイドです。

この記事の目的のためには、以下を備えた最新の Linux システムが必要です。

  1. systemd システムおよびサービス マネージャー
  2. udevデバイスマネージャー
  3. rsyncバックアップツール

リムーバブルメディアの Udev ルールを設定する方法

Udev は、実行中のシステムにデバイスが追加または削除されたときに、デバイス イベント処理の一部としてプログラムやスクリプトの実行をトリガーできるルールを定義できるデバイス マネージャーです。 。この機能を使用すると、実行中のシステムにリムーバブル メディアを追加した後にバックアップ スクリプトを実行できます。

デバイスイベント処理の実際のルールを設定する前に、バックアップに使用されるリムーバブルメディアのいくつかの属性を udev に提供する必要があります。外部ディスクを実行中のシステムに接続し、次の lsusb コマンドを実行して、そのベンダーと製品 ID を特定します。

テスト目的では、 図に示すように1TBの外付けハードディスクを使用します。

lsusb

上記のコマンドの出力から、デバイス ベンダー ID は 125f であり、以下で説明するように udev ルールで指定します。

まず、接続されているメディアをシステムから取り外し、10.autobackup.rules という名前の新しい udev ルール ファイルをディレクトリ /etc/udev/rules.d/ に作成します。

ファイル名の 10 はルールの実行順序を指定します。ルールが解析される順序は重要です。デフォルトの前に解析されるカスタム ルールを常に作成する必要があります。

sudo vim /etc/udev/rules.d/10.autobackup.rules

次に、その中に次のルールを追加します。

SUBSYSTEM=="block", ACTION=="add", ATTRS{idVendor}=="125f" SYMLINK+="external%n", RUN+="/bin/autobackup.sh"

上記のルールを簡単に説明しましょう。

  • "==": 等しいかどうかを比較する演算子です。
  • "+=": エントリのリストを保持するキーに値を追加する演算子です。
  • サブシステム: イベント デバイスのサブシステムと一致します。
  • アクション: イベント アクションの名前と一致します。
  • ATTRS{idVendor}: イベント デバイスの sysfs 属性値 (デバイス ベンダー ID) と一致します。
  • RUN: イベント処理の一部として実行するプログラムまたはスクリプトを指定します。

ファイルを保存して閉じます。

自動バックアップスクリプトを作成する

ここで、システムに接続したときにファイルをリムーバブル USB に自動バックアップする自動バックアップ スクリプトを作成します。

sudo vim /bin/autobackup.sh 

次に、次のスクリプトをコピーして貼り付けます。スクリプト内の BACKUP_SOURCEBACKUP_DEVICE、、および MOUNT_POINT の値を必ず置き換えてください。

#!/usr/bin/bash
BACKUP_SOURCE="/home/admin/important"
BACKUP_DEVICE="/dev/external1"
MOUNT_POINT="/mnt/external"


#check if mount point directory exists, if not create it
if [ ! -d “MOUNT_POINT” ] ; then 
	/bin/mkdir  “$MOUNT_POINT”; 
fi

/bin/mount  -t  auto  “$BACKUP_DEVICE”  “$MOUNT_POINT”

#run a differential backup of files
/usr/bin/rsync -auz "$MOUNT_POINT" "$BACKUP_SOURCE" && /bin/umount "$BACKUP_DEVICE"
exit

次に、次のコマンドを使用してスクリプトを実行可能にします。

sudo chmod +x /bin/autobackup.sh

次に、次のコマンドを使用して udev ルールを再ロードします。

udevadm control --reload

次回、外付けハードディスクや設定したデバイスをシステムに接続すると、指定した場所にあるすべてのドキュメントが自動的にバックアップされます。

: これがどの程度効果的に機能するかは、リムーバブル メディア上のファイル システムと作成した udev ルール、特にデバイス属性のキャプチャに影響される可能性があります。

詳細については、udevmount、および rsync のマニュアル ページを参照してください。

man udev
man mount 
man rsync 

以下の Linux バックアップ関連記事もお読みください。

  1. rdiff-backup – Linux 用のリモート増分バックアップ ツール
  2. Tomb – Linux 用のファイル暗号化および個人バックアップ ツール
  3. システムの Tar と復元 – Linux 用の多用途なバックアップ スクリプト
  4. Linux で重複性を使用して帯域幅効率の高いバックアップを作成する方法
  5. Rsnapshot – Linux 用のローカル/リモート バックアップ ツール
  6. Rsync を使用して 2 つの Apache Web サーバー/Web サイトを同期する方法

それは今のところすべてです!この記事では、Linux マシンに接続した後、リムーバブル メディアにデータを自動バックアップする方法を説明しました。以下のフィードバック フォームからご意見をお待ちしております。