UbuntuでUSB HDDを接続するときの増分バックアップ

最後に、私は新しく到着した鉄片-500GbのUSBネジに取り組む時間を見つけました。 この投稿は、最小限の労力で済み、信頼性が高く便利なデータバックアップを考えている人にとって便利です。
それでは始めましょう。


指定: USB HDD、Ubuntu 7.10を搭載したラップトップ、多くの有用なデータ:)

特定のUSB HDDを接続するときの自動増分バックアップ。最後のバックアップから少なくともN分が経過していることを条件とします。

ツール:

  1. sbackupはPythonの優れたソフトインクであり、rdiff-backupを介して機能し、ローカルフォルダーおよびSSHセッションに書き込むことができます。 データをアーカイブします。 インストール済みパッケージのリストを保存します。
    udevルールファイル-ここで、ディスクを巧みに識別してマウントします
    いくつかのbashスクリプト-バックアップが必要かどうかを確認します


    続行:

    まず最初に、特定のネジを定義するためにudevを取得する必要があります。 とても簡単です。 ファイルを作成する
    /etc/udev/rules.d/94-usb-backup.rules番号94は95-hal.rules -1として選択されます。 これは重要です HALがデバイスを識別する前に、私たちの汚い行為を行う方が良いでしょう。

     -/ etc / udev / rules.d / 94-usb-backup.rules--
     SUBSYSTEM == "block"、ENV {DEVTYPE} == "partition"、SYSFS {idProduct} == "2339"、SYSFS {idVendor} == "152d"、NAME = "backup"、RUN + = "/ usr / local / bin / usb-backup "
    


    次に、どのパラメーターでデバイスを認識するかを決定する必要があります。 特定のネジのみにバックアップする必要がある場合は、最もユニークなパラメーターのセットを選択しますidProductとidVendorをいくつか用意しました。 忠実にするために、たとえばiSerialを追加できます(コメントについてはsmall_jamspiritedflowに感謝します)。 idProductおよびidVendor値は、コマンドを使用して特定のデバイスごとに学習する必要があります

     $ lsusb –v
    

    そしてそのようなものを手に入れる
     ...
    バス005デバイス089:ID 152d:2339 
    デバイス記述子:
      長さ18
       bDescriptorType 1
       bcdUSB 2.00
       bDeviceClass 0(インターフェイスレベルで定義)
       bDeviceSubClass 0
       bDeviceProtocol 0
       bMaxPacketSize0 64
       idVendor 0x152d
       idProduct 0x2339
       bcdDevice 1.00
       iManufacturer 1 JMicron
       iProduct 2 USB-ATA / ATAPIブリッジ
       iSerial 5 901EFFFFFFFF
       bNumConfigurations 1
      構成記述子:
        長さ9
         bDescriptorType 2
         wTotalLength 32
         bNumInterfaces 1
         bConfigurationValue 1
     ...
    

    NAME = "backup"は、ネジが/ dev / backupにマウントされることを意味します
    RUN + = "/ usr / local / bin / usb-backup"-接続時に実行するスクリプトを示します。 重要! ここでは、コマンドではなくスクリプトの名前を記述します。たとえば、RUN + = "/ usr / local / bin / usb-backup&"と記述すると機能しません。
    少し後でスクリプトに戻ります。 とりあえずスタブを作成して、実行権を与えましょう。
     -/ usr / local / bin / usb-backup--
     #!/ bin / bash
    

    インストールを終了します。
    デバイスを自動的にマウントするには、/ etc / fstabに行を追加します
     -/ etc / fstab /-
     ...
     / dev / backup / media / ext3ユーザーのバックアップ、atime、noauto、rw、nodev、exec、nosuid 0 0
    

    これは、ext3ネジのファイルシステムが提供されます。

    次に、テストできます。 ネジをオフにします。 すべての構成を保存します。 /etc/init.d/udev restartを実行します
    ネジを接続します。 見ます。 /メディア/バックアップにマウントされている必要があります。

    次に、sbackupを構成します。 apt-get install sbackupを使用してリポジトリに配置できます
    /etc/sbackup.conf configに十分な構成情報があります。 以下のスクリプトと同じターゲットディレクトリを指定することが重要です。

    次に、スクリプト/ usr / local / bin / usb-backupに戻ります
    彼には1つの特徴があります。 完了するまで、マウントはそれ以上進みません。 したがって、回避策を使用します。
     -/ usr / local / bin / usb-backup--
     #!/ bin / bash
     / usr / local / bin / usb-backup-script&
    

    バックグラウンドで2番目のスクリプトを実行します。 彼はすべての仕事をするでしょう。
     -/ usr / local / bin / usb-backup-script--
     #!/ bin / bash
     BCPDIR = / media / backup / backup_storage /#はバックアップディレクトリです
     for i in `seq 1 10`;
    する
      if [-e $ BCPDIR]#マウントされているかどうかを確認しますか?
       #ディレクトリに入らずに180分以内にファイルを数えます
        if [`find $ BCPDIR -maxdepth 1 -mmin -180 |  grep -v ^ $ BCPDIR $ |  grep。  -c` -eq 0];
        それから
          sbackupd#バックアップを実行
         fi
    
    
        休憩#今すぐサイクルする必要はありません
      fi
      sleep 1#マウントされている間、1秒間待機します(通常、数秒かかります)
    やった
    

    出来上がり。 ネジを接続すると、自動増分バックアップを受け取りました。

Source: https://habr.com/ru/post/J27889/


All Articles