Top
ETERNUS SF AdvancedCopy Manager V15.1 Operation Guide
ETERNUS

A.3.1 Pre-processing of restoration

The name of a script file for pre-processing of a restoration is as follows.

In the case of non-cluster operation
/etc/opt/FJSVswsts/sh/OpcRestore.pre
In the case of cluster operation
/etc/opt/FJSVswsts/<logic node name>/sh/OpcRestore.pre

A.3.1.1 Pre-processing script for restoration

  1: #!/bin/sh
  2: 
  3: # AdvancedCopy Manager
  4: # All Rights Reserved, Copyright FUJITSU LIMITED, 2002-2009
  5: 
  6: #
  7: #   Pre-processing of restoration processing
  8: #
  9: #Argument: $1 Device name of transaction disk
 10: #               $2 Mount point of transaction disk
 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: mount_point="`echo $2`"
 30: 
 31: # Determination of postprocessing file name
 32: 
 33: if [ "$SWSTGNODE" != "" ]
 34: then
 35:    swstg_node="/`echo $SWSTGNODE`"
 36: else
 37:    swstg_node=""
 38: fi
 39: 
 40: err_log_path="/var/opt/FJSVswsts"$swstg_node"/log"
 41: 
 42: if [ "`echo $device | /usr/bin/grep "/dev/dsk/"`" != "" ]
 43: then
 44:    # /dev/dsk/c?t?d?s? -> c?t?d?s?
 45:    dev="`echo $device | /usr/bin/sed "s/\/dev\/dsk\///"`"
 46: elif [ "`echo $device | /usr/bin/grep "/dev/FJSV"`" != "" ]
 47: then
 48:    # /dev/FJSVmphd/dsk/mplb?s? -> /dev/FJSVmphd/dsk/mplb?s?
 49:    # /dev/FJSVmphd/dsk/mphd?s? -> /dev/FJSVmphd/dsk/mphd?s?
 50:    dev="`echo $device | /usr/bin/cut -d/ -f5`"
 51: elif [ "`echo $device | /usr/bin/grep "/dev/sfdsk/"`" != "" ]
 52: then
 53:    if [ "`echo $device | /usr/bin/grep ":"`" != ""   ]
 54:    then
 55:       # /dev/sfdsk/class/dsk/volume:c?t?d? -> class_volume_c?t?d?
 56:       dev="`echo $device | /usr/bin/sed "s/\/dev\/sfdsk\///"`"
 57:       dev="`echo $dev | /usr/bin/sed "s/\/dsk\//_/"`"
 58:       dev="`echo $dev | /usr/bin/sed "s/:/_/"`"
 59:       device="`echo $device | /usr/bin/cut -d: -f1`"
 60:    else
 61:       # /dev/sfdsk/class/dsk/volume -> _gds_class_volume
 62:       dev="_gds_`echo $device | /usr/bin/sed "s/\/dev\/sfdsk\///"`"
 63:       dev="`echo $dev | /usr/bin/sed "s/\/dsk\//_/"`"
 64:    fi
 65: elif [ "`echo $device | /usr/bin/grep "/dev/vx/dsk/"`" != "" ]
 66: then
 67:    # /dev/vx/dsk/volume -> _vx_rootdg_volume
 68:    # /dev/vx/dsk/disk-group/volume -> _vx_disk-group_volume
 69:    dev=_vx_"`echo $device | /usr/bin/awk -F\/ '{ if (NF == 6) { print $5"_"$6 } else print "rootdg_"$5 }'`"
 70: elif [ "`echo $device | /usr/bin/grep "/dev/vx/dmp/"`" != "" ]
 71: then
 72:    # /dev/vx/dmp/device -> _vx_pv_device
 73:    dev=_vx_pv_"`echo $device | /usr/bin/cut -d/ -f5`"
 74: else
 75:    exit 0
 76: fi
 77: post_file="/etc/opt/FJSVswsts"$swstg_node"/data/DEFAULT/"$dev".pre"
 78: fstype_file="/etc/opt/FJSVswsts"$swstg_node"/data/DEFAULT/"$dev".fstype"
 79: bd_file="/etc/opt/FJSVswsts"$swstg_node"/data/DEFAULT/"$dev".bd"
 80: 
 81: if [ "$mount_point" != "" ]
 82: then
 83: 
 84:    # When device can be unmounted
 85:    #
 86:    /usr/bin/df -ln $mount_point | /usr/bin/cut -f2 -d: | /usr/bin/cut -f2 -d' ' > $fstype_file
 87:    /usr/sbin/umount $mount_point 2> /dev/null
 88:    if [ $? != 0 ]
 89:    then
 90:       retry_count=3
 91:       sleep_time=1
 92:       result_flag=1
 93: 
 94:       while [ $retry_count -gt 0 ]
 95:       do
 96:          /usr/sbin/umount $mount_point > $err_log_path/$dev.umount 2>&1
 97:          if [ $? != 0 ]
 98:          then
 99:             retry_count=`expr $retry_count - 1`
100:             /usr/bin/sleep $sleep_time
101:          else
102:             /usr/bin/rm -f $err_log_path/$dev.umount
103:             result_flag=0
104:             break
105:          fi
106:       done
107: 
108:       if [ $result_flag != 0 ]
109:       then
110:          /usr/sbin/fuser -cu $mount_point> $err_log_path/$dev.fuser 2>&1 
111:          /usr/bin/ps -ef > $err_log_path/$dev.ps 2>&1 
112: 
113:          exit 10
114:       fi
115:    fi
116:    echo "mount" > $post_file
117: 
118: # When device was not mounted
119: #
120: else
121:    echo "none" > $post_file
122: fi
123: 
124: exit 0

Restore processing is not possible on a mounted transaction volume that cannot be unmounted. Specify a device at the restore destination.