The name of a script file for post-processing of a backup is as follows.
/etc/opt/FJSVswsts/sh/OpcBackup.post
/etc/opt/FJSVswsts/<logic node name>/sh/OpcBackup.post 1: #!/bin/sh
2:
3: # AdvancedCopy Manager
4: # Copyright FUJITSU LIMITED, 2002-2012
5:
6: #
7: # Postprocessing of backup 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: # 11: mount error
15: # 12: fsck error
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 | /bin/grep "/dev/sd"`" != "" ]
43: then
44: # /dev/sd? -> sd?
45: dev="`echo $device | /bin/sed "s/\/dev\///"`"
46: elif [ "`echo $device | /bin/grep "/dev/vd"`" != "" ]
47: then
48: # /dev/vd? -> vd?
49: dev="`echo $device | /bin/sed "s/\/dev\///"`"
50: elif [ "`echo $device | /bin/grep "/dev/FJSV"`" != "" ]
51: then
52: # /dev/FJSVmphd/dsk/mplb?s? -> mplb?s?
53: # /dev/FJSVmphd/dsk/mphd?s? -> mphd?s?
54: dev="`echo $device | /bin/cut -d/ -f5`"
55: elif [ "`echo $device | /bin/grep "/dev/sfdsk/"`" != "" ]
56: then
57: if [ "`echo $device | /bin/grep ":"`" != "" ]
58: then
59: devnam="`echo $device | /bin/cut -d: -f2-`"
60: # /dev/sfdsk/class/dsk/volume:sd? -> class_volume_sd?
61: dev="`echo $device | /bin/sed "s/\/dev\/sfdsk\///"`"
62: dev="`echo $dev | /bin/sed "s/\/dsk\//_/"`"
63: dev="`echo $dev | /bin/sed "s/:/_/"`"
64: device="`echo $device | /bin/cut -d: -f1`"
65: if [ "`echo $devnam | /bin/grep "/dev/disk/by-id/"`" != "" ]
66: then
67: # /dev/sfdsk/class/dsk/volume:/dev/disk/by-id/<device> -> class_volume__by_id_<device>
68: dev="`echo $dev | /bin/sed "s/\/dev\/disk\/by-id\//_by-id_/"`"
69: elif [ "`echo $devnam | /bin/grep "/dev/disk/by-path/"`" != "" ]
70: then
71: # /dev/sfdsk/class/dsk/volume:/dev/disk/by-path/<device> -> class_volume__by_path_<device>
72: dev="`echo $dev | /bin/sed "s/\/dev\/disk\/by-path\//_by-path_/"`"
73: fi
74: else
75: # /dev/sfdsk/class/dsk/volume -> _gds_class_volume
76: dev="_gds_`echo $device | /bin/sed "s/\/dev\/sfdsk\///"`"
77: dev="`echo $dev | /bin/sed "s/\/dsk\//_/"`"
78: fi
79: elif [ "`echo $device | /bin/grep "/dev/vx/dmp/"`" != "" ]
80: then
81: # /dev/vx/dmp/device -> _vx_pv_device
82: dev="_vx_pv_`echo $device | /bin/sed "s/\/dev\/vx\/dmp\///"`"
83: elif [ "`echo $device | /bin/grep "/dev/mapper/"`" != "" ]
84: then
85: # "/dev/mapper/<device>" -> "_mapper_<device>"
86: dev="_mapper_`echo $device | /bin/sed "s/\/dev\/mapper\///"`"
87: elif [ "`echo $device | /bin/grep "/dev/disk/by-id/"`" != "" ]
88: then
89: # "/dev/disk/by-id/<device>" -> "_by-id_<device>"
90: dev="_by-id_`echo $device | /bin/sed "s/\/dev\/disk\/by-id\///"`"
91: elif [ "`echo $device | /bin/grep "/dev/disk/by-path/"`" != "" ]
92: then
93: # "/dev/disk/by-path/<device>" -> "_by-path_<device>"
94: dev="_by-path_`echo $device | /bin/sed "s/\/dev\/disk\/by-path\///"`"
95: else
96: exit 0
97: fi
98: post_file="/etc/opt/FJSVswsts"$swstg_node"/data/DEFAULT/"$dev".pre"
99: fstype_file="/etc/opt/FJSVswsts"$swstg_node"/data/DEFAULT/"$dev".fstype"
100: bd_file="/etc/opt/FJSVswsts"$swstg_node"/data/DEFAULT/"$dev".bd"
101:
102: # Confirmation of postprocessing
103: if [ ! -r $post_file ]
104: then
105: exit 0
106: fi
107: post="`/bin/cat $post_file`"
108:
109: # Confirmation of FStype
110: if [ ! -r $fstype_file ]
111: then
112: fs=""
113: else
114: fs="`/bin/cat $fstype_file`"
115: fi
116:
117: # No processing
118: if [ "$post" = "none" ]
119: then
120: /bin/rm -rf $post_file 2> /dev/null
121: /bin/rm -rf $fstype_file 2> /dev/null
122: exit 0
123: fi
124:
125: # mount processing
126: if [ "$post" = "mount" ]
127: then
128: if [ "`echo $device | /bin/grep "/dev/disk/by-id/"`" != "" \
129: -o "`echo $device | /bin/grep "/dev/disk/by-path/"`" != "" ]
130: then
131: cdevice="/dev/`/usr/bin/readlink $device | /bin/sed "s/..\/..\///"`"
132: Result="`/bin/df -l | /bin/grep "$cdevice " | /bin/awk 'END {print NR}'`"
133: else
134: Result="`/bin/df -l | /bin/grep "$device " | /bin/awk 'END {print NR}'`"
135: fi
136: if [ "$Result" != "1" ]
137: then
138: if [ ! -r $fstype_file ]
139: then
140: /bin/mount $device $mount_point 2> /dev/null
141: else
142: Result1="`echo $fs | /bin/awk 'END {print NR}'`"
143: if [ "$Result1" != "1" ]
144: then
145: /bin/mount $device $mount_point 2> /dev/null
146: else
147: /bin/mount -t $fs $device $mount_point 2> /dev/null
148: fi
149: fi
150: if [ $? != 0 ]
151: then
152: retry_count=3
153: sleep_time=1
154: result_flag=1
155:
156: while [ $retry_count -gt 0 ]
157: do
158: if [ ! -r $fstype_file ]
159: then
160: /bin/mount $device $mount_point > $err_log_path/$dev.mount 2>&1
161: else
162: Result1="`echo $fs | /bin/awk 'END {print NR}'`"
163: if [ "$Result1" != "1" ]
164: then
165: /bin/mount $device $mount_point > $err_log_path/$dev.mount 2>&1
166: else
167: /bin/mount -t $fs $device $mount_point > $err_log_path/$dev.mount 2>&1
168: fi
169: fi
170: if [ $? != 0 ]
171: then
172: retry_count=`expr $retry_count - 1`
173: /bin/sleep $sleep_time
174: else
175: /bin/rm -f $err_log_path/$dev.mount
176: result_flag=0
177: break
178: fi
179: done
180:
181: if [ $result_flag != 0 ]
182: then
183: exit 11
184: fi
185: fi
186: fi
187: /bin/rm -rf $post_file 2> /dev/null
188: /bin/rm -rf $fstype_file 2> /dev/null
189: exit 0
190: fi
191:
192: # fsck processing
193: if [ "$post" = "fsck" ]
194: then
195: if [ -r $bd_file ]
196: then
197: bk_device="`/bin/cat $bd_file`"
198: fsck_dev="`echo $bk_device `"
199: if [ ! -r $fstype_file ]
200: then
201: /sbin/fsck -c $fsck_dev > /dev/null 2>&1
202: else
203: if [ "$fs" = "" ]
204: then
205: /sbin/fsck -c $fsck_dev > /dev/null 2>&1
206: else
207: if [ "$fs" = "sfxfs" ]
208: then
209: /sbin/sfxadm $fsck_dev > /dev/null 2>&1
210: /sbin/fsck -p -t $fs $fsck_dev > /dev/null 2>&1
211: else
212: /sbin/fsck -p -t $fs $fsck_dev > /dev/null 2>&1
213: fi
214: fi
215: fi
216: if [ $? != 0 ]
217: then
218: if [ "$fs" = "" ]
219: then
220: result="`/sbin/fsck -p $fsck_dev `"
221: else
222: result="`/sbin/fsck -p -t $fs $fsck_dev `"
223: fi
224: fsck_rc=$?
225: if [ $fsck_rc != 0 ] && [ $fsck_rc != 1 ]
226: then
227: echo "$result" > $err_log_path/$dev.fsck
228: exit 12
229: fi
230: fi
231: fi
232: /bin/rm -rf $post_file 2> /dev/null
233: /bin/rm -rf $fstype_file 2> /dev/null
234: /bin/rm -rf $bd_file 2> /dev/null
235: exit 0
236: fi
237:
238: exit 0