1:   #!/bin/sh 
  2:    
  3:   # AdvancedCopy Manager 
  4:   # All Rights Reserved, Copyright FUJITSU LIMITED, 2002-2007 
  5:   # 
  6:   #   Postprocessing of restoration processing 
  7:   # 
  8:   #Argument: $1 Device name of transaction disk 
  9:   #  $2 Mount point of transaction disk 
 10:  # 
 11:  #Error number 
 12:  # 2: Argument error 
 13:  #11: mount error 
 14:   
 15:  # Argument check 
 16:  case $# in 
 17:  1) 
 18:  ;; 
 19:  2) 
 20:  ;; 
 21:  *) 
 22:  exit 2 
 23:  ;; 
 24:  esac 
 25:   
 26:  device="`echo $1`" 
 27:  mount_point="`echo $2`" 
 28:   
 29:  # Determination of postprocessing file name 
 30:   
 31:  if [ "$SWSTGNODE" != "" ] 
 32:  then 
 33:  swstg_node="/`echo $SWSTGNODE`" 
 34:  else 
 35:  swstg_node="" 
 36:  fi 
 37:   
 38:  err_log_path="/var/opt/FJSVswsts"$swstg_node"/log" 
 39:   
 40:  if [ "`echo $device | /bin/grep "/dev/sd"`" != "" ] 
 41:  then 
 42:  # /dev/sd? -> sd? 
 43:  dev="`echo $device | /bin/sed "s/\/dev\///"`" 
 44:  elif [ "`echo $device | /bin/grep "/dev/FJSV"`" != "" ] 
 45:  then 
 46:  # /dev/FJSVmphd/dsk/mplb?s? -> mplb?s? 
 47:  # /dev/FJSVmphd/dsk/mphd?s? -> mphd?s? 
 48:  dev="`echo $device | /bin/cut -d/ -f5`" 
 49:  elif [ "`echo $device | /bin/grep "/dev/sfdsk/"`" != "" ] 
 50:  then 
 51:  if [ "`echo $device | /bin/grep ":"`" != ""   ] 
 52:  then 
 53:  # /dev/sfdsk/class/dsk/volume:sd? -> class_volume_sd? 
 54:  dev="`echo $device | /bin/sed "s/\/dev\/sfdsk\///"`" 
 55:  dev="`echo $dev | /bin/sed "s/\/dsk\//_/"`" 
 56:  dev="`echo $dev | /bin/sed "s/:/_/"`" 
 57:  device="`echo $device | /bin/cut -d: -f1`" 
 58:  else 
 59:  # /dev/sfdsk/class/dsk/volume -> _gds_class_volume 
 60:  dev="_gds_`echo $device | /bin/sed "s/\/dev\/sfdsk\///"`" 
 61:  dev="`echo $dev | /bin/sed "s/\/dsk\//_/"`" 
 62:  fi 
 63:  elif [ "`echo $device | /bin/grep "/dev/disk/by-id/"`" != "" ] 
 64:  then 
 65:  # "/dev/disk/by-id/<device>" -> "_by-id_<device>" 
 66:  dev="_by-id_`echo $device | /bin/sed "s/\/dev\/disk\/by-id\///"`" 
 67:  elif [ "`echo $device | /bin/grep "/dev/disk/by-path/"`" != "" ] 
 68:  then 
 69:  # "/dev/disk/by-path/<device>" -> "_by-path_<device>" 
 70:  dev="_by-path_`echo $device | /bin/sed "s/\/dev\/disk\/by-path\///"`" 
 71:  else 
 72:  exit 0 
 73:  fi 
 74:  post_file="/etc/opt/FJSVswsts"$swstg_node"/data/DEFAULT/"$dev".pre" 
 75:  fstype_file="/etc/opt/FJSVswsts"$swstg_node"/data/DEFAULT/"$dev".fstype" 
 76:   
 77:  # Confirmation of postprocessing 
 78:  if [ ! -r $post_file ] 
 79:  then 
 80:  exit 0 
 81:  fi 
 82:  post="`/bin/cat $post_file`" 
 83:   
 84:  # Confirmation of FStype 
 85:  if [ ! -r $fstype_file ] 
 86:  then 
 87:  fs="" 
 88:  else 
 89:  fs="`/bin/cat $fstype_file`" 
 90:  fi 
 91:   
 92:  # No processing 
 93:  if [ "$post" = "none" ] 
 94:  then 
 95:  /bin/rm -rf $post_file 2> /dev/null 
 96:  /bin/rm -rf $fstype_file 2> /dev/null 
 97:  exit 0 
 98:  fi 
 99:   
100: # mount processing 
101: if [ "$post" = "mount" ] 
102: then 
103: if [ "`echo $device | /bin/grep "/dev/disk/by-id/"`" != "" \ 
104: -o "`echo $device | /bin/grep "/dev/disk/by-path/"`" != "" ] 
105: then 
106: cdevice="/dev/`/usr/bin/readlink $device | /bin/sed "s/..\/..\///"`" 
107: Result="`/bin/df -l | /bin/grep "$cdevice " | /bin/awk 'END {print NR}'`"
108: else 
109: Result="`/bin/df -l | /bin/grep "$device " | /bin/awk 'END {print NR}'`"
110: fi 
111:       if [ "$Result" != "1" ] 
112: then 
113: if [ ! -r $fstype_file ] 
114: then 
115: /bin/mount $device $mount_point 2> /dev/null 
116: else 
117: Result1="`echo $fs | /bin/awk 'END {print NR}'`"
118:                         if [ "$Result1" != "1" ] 
119: then 
120: /bin/mount $device $mount_point 2> /dev/null 
121: else 
122: /bin/mount -t $fs $device $mount_point 2> /dev/null 
123: fi 
124: fi 
125: if [ $? != 0 ] 
126: then 
127: retry_count=3 
128: sleep_time=1 
129: result_flag=1 
130:  
131: while [ $retry_count -gt 0 ] 
132: do 
133: if [ ! -r $fstype_file ] 
134: then 
135: /bin/mount $device $mount_point > $err_log_path/$dev.mount 2>&1 
136: else 
137: Result1="`echo $fs | /bin/awk 'END {print NR}'`"
138: if [ "$Result1" != "1" ] 
139: then 
140: /bin/mount $device $mount_point > $err_log_path/$dev.mount 2>&1 
141: else 
142: /bin/mount -t $fs $device $mount_point > $err_log_path/$dev.mount 2>&1 
143: fi 
144: fi 
145: if [ $? != 0 ] 
146: then 
147: retry_count=`expr $retry_count - 1` 
148: /bin/sleep $sleep_time 
149: else 
150: /bin/rm -f $err_log_path/$dev.mount 
151: result_flag=0 
152: break 
153: fi 
154: done 
155:  
156: if [ $result_flag != 0 ] 
157: then 
158: exit 11 
159: fi 
160: fi 
161: fi 
162: /bin/rm -rf $post_file 2> /dev/null 
163: /bin/rm -rf $fstype_file 2> /dev/null 
164: exit 0 
165: fi 
166:  
167: exit 0  |