リストア実行時の後処理のシェルスクリプト名は、以下のとおりです。
非クラスタ運用の場合
/etc/opt/FJSVswsts/sh/OpcRestore.post
クラスタ運用の場合
/etc/opt/FJSVswsts/<論理ノード名>/sh/OpcRestore.post
シェルスクリプトの内容は、以下のとおりです。
1: #!/bin/sh
2:
3: # AdvancedCopy Manager
4: # All Rights Reserved, Copyright FUJITSU LIMITED, 2004-2007
5:
6: #
7: # Postprocessing of restoration processing
8: #
9: # Argument: $1 Device or VG name of transaction disk
10: # $2 Reserve
11: #
12: # Error number
13: # 2: Argument error
14: # 11: mount error
15: # 51: varyon error
16:
17: # Argument check
18: case $# in
19: 1)
20: ;;
21: 2)
22: ;;
23: *)
24: exit 2
25: ;;
26: esac
27:
28: device=$1
29:
30: if [ "$SWSTGNODE" != "" ]
31: then
32: swstg_node="/`echo $SWSTGNODE`"
33: else
34: swstg_node=""
35: fi
36:
37: err_log_path="/var/opt/FJSVswsts"$swstg_node"/log"
38:
39: # Determination of postprocessing file name
40: if [ "`echo $device | /usr/bin/grep "/dev/hdisk"`" != "" ]
41: then
42: dev_type="lvm_pv"
43: # /dev/hdisk? -> hdisk?
44: dev="`echo $device | /usr/bin/awk -F¥/ '{ print $3 }'`"
45:
46: elif [ "`echo $device | /usr/bin/grep "/dev/vx/dmp/"`" != "" ]
47: then
48: dev_type="vxvm_pv"
49: # /dev/vx/dmp/device -> device
50: dev="`echo $device | /usr/bin/awk -F¥/ '{ print $5 }'`"
51:
52: elif [ "`echo $device | /usr/bin/grep "/dev/"`" != "" ]
53: then
54: dev_type="lvm_vg"
55: # /dev/VG_Name -> VG_Name
56: dev="`echo $device | /usr/bin/awk -F¥/ '{ print $3 }'`"
57:
58: else
59: # Other Volume
60: exit 0
61: fi
62:
63: post_file="/etc/opt/FJSVswsts"$swstg_node"/data/DEFAULT/"$dev".pre"
64:
65: if [ "$dev_type" = "lvm_vg" ]
66: then
67: # varyon the transaction volume
68: /usr/sbin/varyonvg $dev 2> /dev/null
69: if [ $? != 0 ]
70: then
71: /usr/sbin/varyonvg $dev > $err_log_path/$dev.varyonvg 2>&1
72: if [ $? != 0 ]
73: then
74: exit 51
75: else
76: /usr/bin/rm -f $err_log_path/$dev.varyonvg
77: fi
78: fi
79: fi
80:
81: # Confirmation of postprocessing
82: if [ ! -r $post_file ]
83: then
84: exit 0
85: fi
86: post="`/usr/bin/cat $post_file`"
87:
88: # mount processing
89: if [ "$post" = "mount" ]
90: then
91:
92: # When devices of volume group was mounted
93: # Specify the name of volume group to mount
94:
95: if [ "$device" = "/dev/vgXX" ]
96: then
97: mount_error=0
98:
99: # Mount all logical volumes of the volume group
100: lvname="/dev/XXXXX"
101: lv_mount_point="/XX"
102: mount_status=`/usr/sbin/mount | /usr/bin/nawk -v lv=${lvname} 'lv==$1{flag=1; exit;} END{if(flag==1) print "mounted"; else print "not_mounted";}'`
103: if [ $mount_status = "not_mounted" ]
104: then
105: /usr/sbin/mount $lvname $lv_mount_point 2> /dev/null
106: if [ $? != 0 ]
107: then
108: retry_count=3
109: sleep_time=1
110: result_flag=1
111:
112: while [ $retry_count -gt 0 ]
113: do
114: /usr/sbin/mount $lvname $lv_mount_point > $err_log_path/$dev.mount 2>&1
115: if [ $? != 0 ]
116: then
117: retry_count=`expr $retry_count - 1`
118: /usr/bin/sleep $sleep_time
119: else
120: /usr/bin/rm -f $err_log_path/$dev.mount
121: result_flag=0
122: break
123: fi
124: done
125:
126: if [ $result_flag != 0 ]
127: then
128: mount_error=1
129: fi
130: fi
131: fi
132:
133: # lvname="/dev/XXXXX"
134: # lv_mount_point="/XX"
135: # mount_status=`/usr/sbin/mount | /usr/bin/nawk -v lv=${lvname} 'lv==$1{flag=1; exit;} END{if(flag==1) print "mounted"; else print "not_mounted";}'`
136: # if [ $mount_status = "not_mounted" ]
137: # then
138: # /usr/sbin/mount $lvname $lv_mount_point 2> /dev/null
139: # if [ $? != 0 ]
140: # then
141: # retry_count=3
142: # sleep_time=1
143: # result_flag=1
144: #
145: # while [ $retry_count -gt 0 ]
146: # do
147: # /usr/sbin/mount $lvname $lv_mount_point > $err_log_path/$dev.mount 2>&1
148: # if [ $? != 0 ]
149: # then
150: # retry_count=`expr $retry_count - 1`
151: # /usr/bin/sleep $sleep_time
152: # else
153: # rm -f $err_log_path/$dev.mount
154: # result_flag=0
155: # break
156: # fi
157: # done
158: #
159: # if [ $result_flag != 0 ]
160: # then
161: # mount_error=1
162: # fi
163: # fi
164: # fi
165:
166: if [ $mount_error != 0 ]
167: then
168: exit 11
169: fi
170: fi
171: fi
172:
173: /usr/bin/rm -rf $post_file 2> /dev/null
174: exit 0