PRIMECLUSTER Global File Services 説明書 4.1 (Solaris(TM) オペレーティング環境版)
目次 索引 前ページ次ページ

付録B リファレンスマニュアル> B.2 GFSローカルファイルシステム専用コマンド

B.2.8 sfxmkbkup(1M),sfxmkrstr(1M) GFSローカルファイルシステムのバックアップ用シェルスクリプトの生成

◆形式

sfxmkbkup [ -a ] [ -c ] [ -b n ] [ -o filename ] special | mount_point backup_dev

sfxmkbkup -e [ -c ] [ -b n ] special | mount_point

sfxmkrstr [ -a ] [ -c ] [ -b n ] [ -o filename ] special | mount_point backup_dev

◆機能説明

 代表デバイス名 special またはマウントポイント mount_point によって指定された GFS ローカルファイルシステムのバックアップを取るためのシェルスクリプトを生成します。sfxmkbkupdd(1M) を使ってボリュームごとにバックアップを取るバックアップ・スクリプトと、sfxddr(1M) を使ってボリュームごとにリストアを行うリストア・スクリプトの2種類を生成します。sfxmkrstr は、リストア・スクリプトだけを生成します。

 本コマンドおよび、本コマンドで生成されるスクリプトは、スーパーユーザ権限 (root) で実行する必要があります。

◆オプション

 以下のオプションが指定できます。

-a

 バックアップ時に1つの媒体に連結して出力するように指定します。このとき、backup_dev として no-rewind のデバイスを指定しなければなりません。

-c

 compress(1) によって、バックアップ時にデータ圧縮を行い、リストア時には圧縮解除を行うスクリプトを生成します。

-b n

 バックアップ媒体のブロックサイズを n バイトに指定します。ここで指定した文字列はシェルスクリプトでそのまま dd(1M), sfxddr(1M) のバックアップ時の obs リストア時の ibs として指定されるので、dd(1M)ibs の指定と同じように、数値の後ろに kb をつけたり、x で乗算を表したりすることができます。デフォルトは 256 キロバイトです。

-o filename

 生成するシェルスクリプトのファイル名を指定します。バックアップ・スクリプトとリストア・スクリプトは、ここで指定した名前にそれぞれ、".bkup"、".rstr" というサフィックスをつけたパス名で生成されます。デフォルトは "sfxfs" です。

-e

 バックアップに必要な容量を表示します。シェルスクリプトは生成しません。

special

 GFS ローカルファイルシステムの代表パーティションの特殊ファイル名を指定します。

mount_point

 GFS ローカルファイルシステムのマウントポイントを指定します。

backup_dev

 バックアップ先のデバイスを指定します。

◆使用例

 特殊ファイル /dev/sfdsk/gfs/dsk/vol1301 を代表パーティションとする GFS ローカルファイルシステムのバックアップをテープデバイスに取るときには、以下のコマンドを実行します。


# sfxmkbkup /dev/sfdsk/gfs/dsk/vol1301 /dev/rmt/0


 これによって、次のようなバックアップ・スクリプト sfxfs.bkup が現在の作業用ディレクトリに生成されます。


#!/bin/sh

IBS=1024k

OBS=256k

TAPE=/dev/rmt/0

SPECS="/dev/sfdsk/gfs/rdsk/vol1301 /dev/sfdsk/gfs/rdsk/vol1401 /dev/sfdsk/gfs/rdsk/vol1501"

n=`echo $SPECS | /usr/bin/wc -w`

echo "It will need $n volume(s) to backup."

i=1

for s in $SPECS

do

    echo "Backup $s"

    echo "Prepare volume #$i/$n for $TAPE and press RETURN:\c"

    read yes

    until /usr/bin/dd if=$s of=$TAPE ibs=$IBS obs=$OBS

    do

        echo "Press RETURN and retry:\c"

        read yes

    done

    i = `/usr/bin/expr $i + 1`

done

echo "Backup done."


 リストア・スクリプト sfxfs.rstr は次のようになります。


#!/bin/sh

IBS=256k

OBS=1024k

TAPE=/dev/rmt/0

SPECS="/dev/sfdsk/gfs/rdsk/vol1301 /dev/sfdsk/gfs/rdsk/vol1401 /dev/sfdsk/gfs/rdsk/vol1501"

n=`echo $SPECS | /usr/bin/wc -w`

echo "It will need $n volume(s) to restore."

i=1

for s in $SPECS

do

    if echo $s | /usr/bin/grep "^!"; then

  s=`echo $s | /usr/bin/cut -c2-`

  opt="-f"

    else

  opt=""

    fi

    echo "Restore $s"

    echo "Prepare volume #$i/$n for $TAPE and press RETURN:\c"

    read yes

    until /usr/lib/fs/sfxfs/sfxddr $opt if=$TAPE of=$s ibs=$IBS obs=$OBS

    do

        echo "Change to CORRECT volume #$i/$n and press RETURN:\c"

        read yes

    done

    i = `/usr/bin/expr $i + 1`

done

echo "Restore done."


 複数のテープドライブを使ってバックアップ、リストアを行う場合には、次のように sfxmkbkup をテープドライブの数だけ実行した後で、シェルスクリプトの変数 SPECS の値を編集し、それぞれのシェルスクリプトにパーティションを分担させて実行します。


# sfxmkbkup -o ex1 /dev/sfdsk/gfs/dsk/vol1301 /dev/rmt/0

# sfxmkbkup -o ex2 /dev/sfdsk/gfs/dsk/vol1301 /dev/rmt/1


 いくつかのパーティションについて、バックアップ時とは異なるディスクにリストアを行いたい場合には、リストア・スクリプトの変数 SPECS の値を編集することによって行います。このとき、編集した特殊ファイル名の直前に、ボリューム情報のチェックを行わないことを示す ! を置きます。


SPECS="/dev/sfdsk/gfs/rdsk/vol1301 !/dev/sfdsk/gfs/rdsk/vol2101 /dev/sfdsk/gfs/rdsk/vol1501"


◆注意事項

 バックアップ元とは異なったディスクにリストアを行う場合、リストア先のディスクが、バックアップ元と同じ構成である必要があります。

 また、ディスクの先頭シリンダを含むパーティションを、それ以外のパーティションからのリストア先として指定しないでください。誤って、この操作を行うと、ディスクの構成情報を破壊し、ディスクを現在の構成で使用できなくなります。

 バックアップ元とは異なったディスクにリストアを行った場合、sfxadm(1M) によってパーティション情報を変更する必要があります。GFS ローカルファイルシステムを構成するすべてのパーティションを指定して、sfxadm(1M) を実行してください。

◆関連項目

sfxddr(1M).


目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2004