2016年4月8日金曜日

システムバックアップその11

今回は、ファイルシステムのメタ情報の取得だ。
特にリストア処理の中で使うわけではないが、念の為に取得している。
(実は、ext系ファイルシステムを使う上で、気をつけないといけない情報が、このメタ情報に記載されている。リストア処理の中で、この値をチェックしていないため、リストア時にこの値を見ておく必要があるかもしれない。)

例によって、先にスクリプトだ。(毎回書いているが、sudo su - を…)

# cd
# cd backup/bin
# vi 0070_get_fsmetadata


--内容ココから--
#!/bin/sh

BINDIR=`/usr/bin/dirname $0`
BINDIR=`/usr/bin/realpath ${BINDIR}`
ETCDIR=`/usr/bin/realpath ${BINDIR}/../etc`

. ${ETCDIR}/config

# Get Filesystem Metadata
for FSCONFIG in ${ETCDIR}/fsconfig/*
do
  VOLNAME=""
  USELVM=""

  . ${FSCONFIG}

  . ${BACKUPPOINT}/current/config/blkid/${VOLNAME}

  if [    x${TYPE} = "xext2" \
       -o x${TYPE} = "xext3" \
       -o x${TYPE} = "xext4" ]
  then
    if [ x${USELVM} = "xNo" ]
    then
      /sbin/tune2fs -l /dev/${VOLNAME} > ${BACKUPPOINT}/current/config/tune2fs/${VOLNAME}
    fi

    if [ x${USELVM} = "xYes" ]
    then
      /sbin/tune2fs -l /dev/${ROOTVG}/${VOLNAME} > ${BACKUPPOINT}/current/config/tune2fs/${VOLNAME}
    fi
  fi
done


--中身ココまで--
中身は大したことはしていない。
ファイルシステムが ext2/ext3/ext4 の場合に、対象のデバイスに対してtune2fs -lを実行しているだけだ。
実際に実行してみると分かるが、ファイルシステムの細かいパラメータが記載されている。
が、あまり気にしなくていい。

気にしておきたいのは、以下の2つのパラメータだ。
  • Maximum mount count:
    前回fsckを実行してから、マウント回数(Mount count:)がこの値を超えるてマウントする場合、自動的にfsckを実行する。
  • Check interval:
    前回fsckを実行してから、この日数を経過してからマウントする場合、自動的にfsckを実行する。
おそらく、前者は -1 、後者は 0 になっていると思う。
ext2/3/4系でファイルシステムを作成する場合は、この値に気をつけておいた方がいいだろう。
ちなみに、値を変更する場合は、前者は tune2fs -c 回数 デバイスファイル名(ex. tune2fs -c 20 /dev/vg-root/lv-root)、後者は tune2fs -i 日数 デバイスファイル名(ex. tune2fs -i 180 /dev/vg-root/lv-root)のようだ。

では実行してみよう。

# chmod +x 0070_get_fsmetadata
# ./0010_mount
# ./0020_mkdir
# ./0030_create_config
# ./0040_create_snapshot
# ./0050_create_archive
# ./0060_remove_snapshot
# ./0070_get_fsmetadata


問題なく動いたら、ファイルが作成されているか見てみよう。

# ls -l /media/backup/current/config/tune2fs

ぞろぞろとファイルが出てきたかと思う。
中身を見てみると、どのような感じか分かる。

# cat /media/backup/current/config/tune2fs/lv-root

こんな感じで、ext2/ext3/ext4 のメタ情報を取得している。
リストア等で何か問題があったら参照するようにしよう。

じゃぁ、いつも通りゴミ掃除をしてしまおう。

# rm -rf /media/backup/current
# umount /media/backup


次は、バックアップ取得先である current ディレクトリを、日付ディレクトリ(YYYYMMDDhhmmss)に変更する処理だ。
今回は以上。

0 件のコメント:

コメントを投稿