ETERNUS SF AdvancedCopy Manager 運用手引書 テープバックアップ連携編 13.3 -Microsoft(R) Windows(R) 2000/Microsoft(R) Windows Server(R) 2003/Microsoft(R) Windows Server(R) 2008-, -Solaris-, -HP-UX-, -Linux-, -AIX-
目次 索引 前ページ次ページ

付録A バックアップ/リストア/テープコピーの前後処理> A.4 テープコピーの前後処理

A.4.1 Solarisのテープコピー実行時の前処理

テープコピー実行時の前処理のシェルスクリプト名は、以下のとおりです。

シェルスクリプトの内容は、以下のとおりです。

     1    #!/bin/sh
     2    
     3    # AdvancedCopy Manager
     4    # All Rights Reserved, Copyright FUJITSU LIMITED, 2005-2006
     5    
     6    #
     7    #   Preprocessing of tape copy processing
     8    #
     9    #       Argument: $1 Device name of backup disk
    10    #                 $2 Reserve
    11    #
    12    #    Error number
    13    #         2: Argument error
    14    #        10: umount error
    15    
    16    
    17    # Argument check
    18    case $# in
    19    1)
    20        ;;
    21    2)
    22        ;;
    23    *)
    24        exit 2
    25        ;;
    26    esac
    27    
    28    device="`echo $1`"
    29    
    30    # Determination postprocessing file name
    31    
    32    if [ "$SWSTGNODE" != "" ]
    33    then
    34        swstg_node="/`echo $SWSTGNODE`"
    35    else
    36        swstg_node=""
    37    fi
    38    
    39    err_log_path="/var/opt/FJSVswsts"$swstg_node"/log"
    40    
    41    if [ "`echo $device | /usr/bin/grep "/dev/dsk/"`" != "" ]
    42    then
    43        # /dev/dsk/c?t?d?s? -> c?t?d?s?
    44        dev="`echo $device | /usr/bin/sed "s/\/dev\/dsk\///"`"
    45    elif [ "`echo $device | /usr/bin/grep "/dev/FJSV"`" != "" ]
    46    then
    47        # /dev/FJSVmphd/dsk/mplb?s? -> /dev/FJSVmphd/dsk/mplb?s?
    48        # /dev/FJSVmphd/dsk/mphd?s? -> /dev/FJSVmphd/dsk/mphd?s?
    49        dev="`echo $device | /usr/bin/cut -d/ -f5`"
    50    elif [ "`echo $device | /usr/bin/grep "/dev/sfdsk/"`" != "" ]
    51    then
    52        # /dev/sfdsk/class/dsk/volume -> _gds_class_volume
    53        dev="_gds_`echo $device | /usr/bin/sed "s/\/dev\/sfdsk\///"`"
    54        dev="`echo $dev | /usr/bin/sed "s/\/dsk\//_/"`"
    55    elif [ "`echo $device | /usr/bin/grep "/dev/vx/dsk/"`" != "" ]
    56    then
    57        # /dev/vx/dsk/volume -> _vx_rootdg_volume
    58        # /dev/vx/dsk/disk-group/volume -> _vx_disk-group_volume
    59        dev=_vx_"`echo $device | /usr/bin/awk -F\/ '{ if (NF == 6) { print $5"_"$6 } else print "rootdg_"$5 }'`"
    60    elif [ "`echo $device | /usr/bin/grep "/dev/vx/dmp/"`" != "" ]
    61    then
    62        # /dev/vx/dmp/device -> _vx_pv_device
    63        dev=_vx_pv_"`echo $device | /usr/bin/cut -d/ -f5`"
    64    else
    65        exit 0
    66    fi
    67    post_file="/etc/opt/FJSVswsts"$swstg_node"/data/DEFAULT/"$dev".pre"
    68    
    69    # Device unmount process.
    70    #
    71    cur_mount_point=`/usr/sbin/mount | grep "$device " | cut -f1 -d' '`
    72    if [ "$cur_mount_point" != "" ]
    73    then
    74        /usr/sbin/umount $cur_mount_point 2>/dev/null
    75        if [ $? != 0 ]
    76        then
    77            retry_count=3
    78            sleep_time=1
    79            result_flag=1
    80    
    81            while [ $retry_count -gt 0 ]
    82            do
    83                /usr/sbin/umount $cur_mount_point > $err_log_path/$dev.umount 2>&1
    84                if [ $? != 0 ]
    85                then
    86                    retry_count=`expr $retry_count - 1`
    87                    /usr/bin/sleep $sleep_time
    88                else
    89                    /usr/bin/rm -f $err_log_path/$dev.umount
    90                    result_flag=0
    91                    break
    92                fi
    93            done
    94    
    95            if [ $result_flag != 0 ]
    96            then
    97                /usr/sbin/fuser -cu $cur_mount_point> $err_log_path/$dev.fuser 2>&1 
    98                /usr/bin/ps -ef > $err_log_path/$dev.ps 2>&1 
    99    
   100                exit 10
   101            fi
   102        fi
   103        echo "mount" > $post_file
   104    
   105    # When device was not mounted
   106    #
   107    else
   108        echo "none" > $post_file
   109    fi
   110    exit 0

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

All Rights Reserved, Copyright(C) 富士通株式会社 2000-2008