UNIX(solaris)のコマンド実行例集(バックアップリカバリー)

スポンサードリンク
  1. ディスク編


  2. ファイルの編集など、ファイルのバックアップを作成する時に使用します。

    1. バックアップ
    2. 例1)file_Aという名前のファイルをfile_Bという名前でバックアップをとります。
      cp -p file_A file_B

      例2)dir_Aというディレクトリを丸ごとdir_Bという名前でバックアップをとります。
      cp -pr dir_A dir_B

    3. リカバリー(リストア)
    4. 例1)上記1で取得したファイルのリカバリー法
      cp -p file_B file_A

      例2)上記2で取得したディレクトリのリカバリー法
      cp -pr dir_B dir_A

  3. テープ編


  4. ごっそりとスライスやディレクトリ単位で取得するときに使用します。

    方法は、tarとufsdumpの2種類があります。
    tarはファイル単位でバックアップを取得するため、オンラインでもそのままバックアップがとれます。また、ファイル数が多くなると極端に時間がかかる欠点があります。
    ufsdumpはパーティションをイメージとして取得するため、不整合があるファイルもバックアップできます。他に差分バックアップを取得できるのも特徴です。しかし、ファイルの更新が行われない状態で取得する必要があります。シングルユーザーモードで実行するかfssnapを利用する必要があります。

    1. バックアップ
    2. 例1)dir_Aという名前のファイルをテープ(/dev/rmt/0)にバックアップをとります。
      tar -cvf /dev/rmt/0 dir_A

      例2)c0t0d0s0というスライスをテープ(/dev/rmt/0)にバックアップをとります。
      ufsdump 0f /dev/rmt/0 /dev/rdsk/c0t0d0s0

      例3)マルチユーザーモードで / というスライスをテープ(/dev/rmt/0)にバックアップを取得する。
      効率的な方法を模索中

      ===================================================
      (1) ファイルシステムのufsスナップショットを作成します。
      # fssnap -F ufs -o maxsize=500m,bs=/work/root.back.file /
      /dev/fssnap/0

        -F:ファイルシステムのタイプを指定。
        -o:オプションをいろいろ指定
          maxsize:バッキングストアファイルの最大サイズを指定する。
          bs   :バッキングストアファイル名を指定する。
      (2) 作成状況を確認する。
      # fssnap -i
      0 /
      で確認可能です。
      (3) 上で作成したデバイスをバックアップする。
        # ufsdump 0uf /dev/rmt/0cbn /dev/rfssnap/0
        *注:デバイス名を指定する際は、rawデバイスで指定すること!


      (4) 上記のスナップショットを削除する。
      # fssnap -d /
      削除されたことを確認
      # fssnap -i
      (5) スナップショットの実ファイルを削除する。
      # rm /work/root.back.file

      (番外)私の場合は事前に/tmpの他にもう1つテンポラリー(/work)を作成して次のようにバックアップしています。

      ・ntpデーモンを停止させます。(やらないと 「snapshot error: File system could not be write locked」 というエラーがでます。)
      # /etc/init.d/xntpd stop
      ・一気にテンポラリー以外のディスクのスナップショットを作成します。
      # fssnap -F ufs -o maxsize=50m,bs=/work/root.back.file /
      /dev/fssnap/0
      # fssnap -F ufs -o maxsize=50m,bs=/work/var.back.file /var
      /dev/fssnap/1
      # fssnap -F ufs -o maxsize=50m,bs=/work/opt.back.file /export/home
      /dev/fssnap/2

      ・作成状況を確認します。
      # fssnap -i
      0 /
      1 /var
      2 /export/home2
      ・バックアップを取得します。
      # ufsdump 0uf /dev/rmt/0cbn /dev/rfssnap/0
      # ufsdump 0uf /dev/rmt/0cbn /dev/rfssnap/1
      # ufsdump 0uf /dev/rmt/0cbn /dev/rfssnap/2

      ・スナップショットを削除します。
      # fssnap -d /
      Deleted snapshot 0.
      # fssnap -d /var
      Deleted snapshot 0.
      # fssnap -d /export/home
      Deleted snapshot 0.
      # fssnap -i

      ・スナップショットの実ファイルを削除します。
      # rm /work/*file

      ・ntpデーモンを起動させます。
      # /etc/init.d/xntpd start

    3. リカバリー(リストア)
    4. 例1)上記1で取得したファイルを/mntにフルリカバリーする方法
      cd /mnt
      tar -xvf /dev/rmt/0

      例2−1)上記2で取得したファイルを/mntにフルリカバリーする方法
      cd /mnt
      ufsrestore xf /dev/rmt/0


      例2−2)上記2で取得したファイルの一部(osada/pfile)を/tmpにリカバリーする方法
      cd /tmp
      ufsrestore -i
      ufsrestore > ls
      ./osada:
      kigen osada/ pfile
      ufsrestore > add pfile  ←add でリストアするファイルを指定する。
      ufsrestore > ls
      kigen osada/ *pfile
      ufsrestore > extract  ←extractでリストア開始
      You have not read any volumes yet.
      Unless you know which volume your file(s) are on you should start
      with the last volume and work towards the first.
      Specify next volume #: 1
      set owner/mode for '.'? [yn] y
      Directories already exist, set modes anyway? [yn] y
      ufsrestore > quit



ちゃんと勉強したい人はこちらがお勧めです。 間違い、修正、追加は恐れ入りますがご連絡ください。

もどる


solarisコマンド関連ページ
unixコマンド関連ページ
oracleコマンド関連ページ